A DOM-powered Turing Machine Simulator, Visualizer, and IDE

Binary programs available:

Program String Encoding:

Interactive Program Transition Table

State Name Alphabet:
Read sigma[0]Read sigma[1]
WriteMoveTo State WriteMoveTo State
Starting Tape:
History Buffer Size:
Steps: 0
Note: You may click the Run commands multiple times to speed it up.
State: start

Currently Supported Browsers:

Browsers that need to be tested: Browsers Not Supported:

Features that are planned or being considered:

These three basic binary programs operate on binary strings {0,1} and it interprets the two input arguments in unary (caveman-style), separated by a single zero. For exponentiation, the second value is the base. When the machine halts, the output value is also in unary.

The reason that they are referred to as binary programs is because the tape alphabet is binary. It is simply the encoding being used that is unary.

Even though many of these mathematical functions are defined on zero, it is not convenient to express or operate on zero in unary. Consequently, zero values may be interpreted incorrectly.

Be careful not to enter spurious characters (like space) in the input fields which will cause unexpected results.