A Markov algorithm is a string rewriting system (well, not a set of rules but a list of rules since they need to be ordered) with a strategy for applying rules that ensures determinism. I think the usual definition (1) isFind the first rule that matches, and then replace its leftmost occurence. Another definition (2) could be  Find the leftmost position where any rule matches, and then apply the first of the matching rules. Does it matter? I think both should be equivalent w.r.t. the set of functions computed. Which one is more economical for teaching?E.g., for a simulation by a Turing machine, (2) seems better - less movements of the head, we can scan the tape once, by a finite automaton. But we need to overscan in case the left-hand sides of rules are not prefix-free. (Well this low-level programming is a mess any way you put it.)Simulation of Turing machine by Markov algorithm is not a problem since we can build the rules in such a way that there is at most one match (when starting from an initial configuration), so the strategy does not matter.
Markov algorithm: pick rule first, then position, or the other way around?
terminology;computation models;didactics