Double-click on vertex to toggle between normal, START, ACCEPT, and REJECT
Click on vertex to select
Shift+Drag between vertices to make edge
Click on edge to select
Edge label must be in format
'x1;x2;...xn'
where xi is in the format 'r/w,c'
and r, w in Σ, c in {+, -}
For example, a valid edge label might be, '0/1,+'
Press copy button to copy machine encoding
All missing transitions go to REJECT
Definitions and Usage
Turing Machine (TM): a simple computer comprised by
the tape alphabet Γ, a set of symbols that can be written on the tape
the input alphabet Σ, a set of symbols that can initialize input on the tape
the set of internal machine states Q, which contains START, ACCEPT, and REJECT
the blank symbol _
the transition function δ : Q x Γ → Q x Γ x {+, -}
Given its current state and the symbol currently being read,
the TM will write a symbol at its current position, proceed to
a new internal state, and move one to the right or to the
left along the tape according to this function
The TM stores its configuration as {q, x, y} for q in Q,
x,y in Σ* where x represents the tape to the left of and including
the TM's head and y represents the tape to the right of the TM's head without any trailing blanks
Machine Encoding: an encoding of a single-tape Turing Machine
Format: '[x1x2...xn]' where xi='[q*a|p*b*c]' for q, p in Q, a, b in Γ, and c in {+,-}
In other words, xi = '[{current}*{read}|{next}*{write}*{move}]'
Input: the input that populates the tape
Most alphanumeric and special characters are allowed in this simulation
Animation Speed: the number of updates per second
Examples
Recognize {0n1n0n | n > 0}
Encoding: [[v*_|ACCEPT*_*-][v*x|v*$*+][START*x|v*$*+][START*0|s1*$*+][s1*0|s1*0*+][s1*x|s1*x*+][s1*1|s0*x*+][s0*0|r*x*-][s0*1|s0*1*+][s0*x|s0*x*+][r*0|r*0*-][r*1|r*1*-][r*x|r*x*-][r*$|START*$*+]]