Markov algorithms: A universal model of computation |
 |
Markov algorithms are one of several universal models of computation. Computation is modeled as a deterministic transformation of an input string into an output string.
A Markov algorithm consists of
- An input alphabet, e.g.

- A marker alphabet, e.g.

- An ordered sequence of rewriting rules (productions) of two types:
continue, e.g.:

terminate, e.g.:

Execution
Always use the first rule that applies to the data string, apply it at the leftmost pattern match.
When a terminal rule is executed or no rule applies, execution stops.

How to use
- You choose between solving one of several exercises or making yourself familiar with Markov algorithms in the laboratory
- Define your alphabets and productions by using right-click and drag&drop in the panel on the left.
- You can check your grammar either by executing it visibly in the panel in the middle (stepwise or continuous, forward or backward) or hidden by using the checker on the right.
- You can have a look at the solution by pressing the button "Show solution" at the top right.
Another task is to reorder the rules after having used the button "Permute Rules".
- If you change your grammar or the input, the execution will terminate and be set back to the initial state.
- You can save or load your grammar or export the exercise text, the grammar and the execution trace to a GIF-image.