Anonymous user
Universal Turing machine: Difference between revisions
Updated to work with Nim 1.4: replaced “split” with “splitWhiteSpace”. Also other minor changes. Added output.
Alextretyak (talk | contribs) (Added 11l) |
(Updated to work with Nim 1.4: replaced “split” with “splitWhiteSpace”. Also other minor changes. Added output.) |
||
Line 6,022:
pos = 0
tape = tape
rulesTable:
if tape.len == 0: tape = @[blank]
Line 6,033:
while true:
stdout.write st, '\t'
for i, v in tape:
stdout.write if i == pos:
echo()
if st == halt: break
Line 6,057 ⟶ 6,056:
tape = "1 1 1".split,
blank = "B",
rules = @["q0 1 1 right q0".
"q0 B 1 stay qf".
echo "\nbusy beaver\n"
Line 6,064 ⟶ 6,063:
state = "a",
blank = "0",
rules = @["a 0 1 right b".
"a 1 1 left c".
"b 0 1 left a".
"b 1 1 right b".
"c 0 1 left b".
"c 1 1 stay halt".
echo "\nsorting test\n"
Line 6,076 ⟶ 6,075:
blank = "0",
tape = "2 2 2 1 2 2 1 2 1 2 1 2 1 2".split,
rules = @["A 1 1 right A".
"A 2 3 right B".
"A 0 0 left E".
"B 1 1 right B".
"B 2 2 right B".
"B 0 0 left C".
"C 1 2 left D".
"C 2 2 left C".
"C 3 2 left E".
"D 1 1 left D".
"D 2 2 left D".
"D 3 1 right A".
"E 1 1 left E".
"E 0 0 right STOP".
{{out}}
<pre>incr machine
q0 [1] 1 1
q0 1 [1] 1
q0 1 1 [1]
q0 1 1 1 [B]
qf 1 1 1 [1]
busy beaver
a [0]
b 1 [0]
a [1] 1
c [0] 1 1
b [0] 1 1 1
a [0] 1 1 1 1
b 1 [1] 1 1 1
b 1 1 [1] 1 1
b 1 1 1 [1] 1
b 1 1 1 1 [1]
b 1 1 1 1 1 [0]
a 1 1 1 1 [1] 1
c 1 1 1 [1] 1 1
halt 1 1 1 [1] 1 1
sorting test
A [2] 2 2 1 2 2 1 2 1 2 1 2 1 2
B 3 [2] 2 1 2 2 1 2 1 2 1 2 1 2
B 3 2 [2] 1 2 2 1 2 1 2 1 2 1 2
B 3 2 2 [1] 2 2 1 2 1 2 1 2 1 2
B 3 2 2 1 [2] 2 1 2 1 2 1 2 1 2
B 3 2 2 1 2 [2] 1 2 1 2 1 2 1 2
B 3 2 2 1 2 2 [1] 2 1 2 1 2 1 2
B 3 2 2 1 2 2 1 [2] 1 2 1 2 1 2
B 3 2 2 1 2 2 1 2 [1] 2 1 2 1 2
B 3 2 2 1 2 2 1 2 1 [2] 1 2 1 2
B 3 2 2 1 2 2 1 2 1 2 [1] 2 1 2
B 3 2 2 1 2 2 1 2 1 2 1 [2] 1 2
B 3 2 2 1 2 2 1 2 1 2 1 2 [1] 2
B 3 2 2 1 2 2 1 2 1 2 1 2 1 [2]
B 3 2 2 1 2 2 1 2 1 2 1 2 1 2 [0]
C 3 2 2 1 2 2 1 2 1 2 1 2 1 [2] 0
C 3 2 2 1 2 2 1 2 1 2 1 2 [1] 2 0
D 3 2 2 1 2 2 1 2 1 2 1 [2] 2 2 0
D 3 2 2 1 2 2 1 2 1 2 [1] 2 2 2 0
D 3 2 2 1 2 2 1 2 1 [2] 1 2 2 2 0
D 3 2 2 1 2 2 1 2 [1] 2 1 2 2 2 0
D 3 2 2 1 2 2 1 [2] 1 2 1 2 2 2 0
D 3 2 2 1 2 2 [1] 2 1 2 1 2 2 2 0
D 3 2 2 1 2 [2] 1 2 1 2 1 2 2 2 0
D 3 2 2 1 [2] 2 1 2 1 2 1 2 2 2 0
D 3 2 2 [1] 2 2 1 2 1 2 1 2 2 2 0
D 3 2 [2] 1 2 2 1 2 1 2 1 2 2 2 0
D 3 [2] 2 1 2 2 1 2 1 2 1 2 2 2 0
D [3] 2 2 1 2 2 1 2 1 2 1 2 2 2 0
A 1 [2] 2 1 2 2 1 2 1 2 1 2 2 2 0
B 1 3 [2] 1 2 2 1 2 1 2 1 2 2 2 0
B 1 3 2 [1] 2 2 1 2 1 2 1 2 2 2 0
B 1 3 2 1 [2] 2 1 2 1 2 1 2 2 2 0
B 1 3 2 1 2 [2] 1 2 1 2 1 2 2 2 0
B 1 3 2 1 2 2 [1] 2 1 2 1 2 2 2 0
B 1 3 2 1 2 2 1 [2] 1 2 1 2 2 2 0
B 1 3 2 1 2 2 1 2 [1] 2 1 2 2 2 0
B 1 3 2 1 2 2 1 2 1 [2] 1 2 2 2 0
B 1 3 2 1 2 2 1 2 1 2 [1] 2 2 2 0
B 1 3 2 1 2 2 1 2 1 2 1 [2] 2 2 0
B 1 3 2 1 2 2 1 2 1 2 1 2 [2] 2 0
B 1 3 2 1 2 2 1 2 1 2 1 2 2 [2] 0
B 1 3 2 1 2 2 1 2 1 2 1 2 2 2 [0]
C 1 3 2 1 2 2 1 2 1 2 1 2 2 [2] 0
C 1 3 2 1 2 2 1 2 1 2 1 2 [2] 2 0
C 1 3 2 1 2 2 1 2 1 2 1 [2] 2 2 0
C 1 3 2 1 2 2 1 2 1 2 [1] 2 2 2 0
D 1 3 2 1 2 2 1 2 1 [2] 2 2 2 2 0
D 1 3 2 1 2 2 1 2 [1] 2 2 2 2 2 0
D 1 3 2 1 2 2 1 [2] 1 2 2 2 2 2 0
D 1 3 2 1 2 2 [1] 2 1 2 2 2 2 2 0
D 1 3 2 1 2 [2] 1 2 1 2 2 2 2 2 0
D 1 3 2 1 [2] 2 1 2 1 2 2 2 2 2 0
D 1 3 2 [1] 2 2 1 2 1 2 2 2 2 2 0
D 1 3 [2] 1 2 2 1 2 1 2 2 2 2 2 0
D 1 [3] 2 1 2 2 1 2 1 2 2 2 2 2 0
A 1 1 [2] 1 2 2 1 2 1 2 2 2 2 2 0
B 1 1 3 [1] 2 2 1 2 1 2 2 2 2 2 0
B 1 1 3 1 [2] 2 1 2 1 2 2 2 2 2 0
B 1 1 3 1 2 [2] 1 2 1 2 2 2 2 2 0
B 1 1 3 1 2 2 [1] 2 1 2 2 2 2 2 0
B 1 1 3 1 2 2 1 [2] 1 2 2 2 2 2 0
B 1 1 3 1 2 2 1 2 [1] 2 2 2 2 2 0
B 1 1 3 1 2 2 1 2 1 [2] 2 2 2 2 0
B 1 1 3 1 2 2 1 2 1 2 [2] 2 2 2 0
B 1 1 3 1 2 2 1 2 1 2 2 [2] 2 2 0
B 1 1 3 1 2 2 1 2 1 2 2 2 [2] 2 0
B 1 1 3 1 2 2 1 2 1 2 2 2 2 [2] 0
B 1 1 3 1 2 2 1 2 1 2 2 2 2 2 [0]
C 1 1 3 1 2 2 1 2 1 2 2 2 2 [2] 0
C 1 1 3 1 2 2 1 2 1 2 2 2 [2] 2 0
C 1 1 3 1 2 2 1 2 1 2 2 [2] 2 2 0
C 1 1 3 1 2 2 1 2 1 2 [2] 2 2 2 0
C 1 1 3 1 2 2 1 2 1 [2] 2 2 2 2 0
C 1 1 3 1 2 2 1 2 [1] 2 2 2 2 2 0
D 1 1 3 1 2 2 1 [2] 2 2 2 2 2 2 0
D 1 1 3 1 2 2 [1] 2 2 2 2 2 2 2 0
D 1 1 3 1 2 [2] 1 2 2 2 2 2 2 2 0
D 1 1 3 1 [2] 2 1 2 2 2 2 2 2 2 0
D 1 1 3 [1] 2 2 1 2 2 2 2 2 2 2 0
D 1 1 [3] 1 2 2 1 2 2 2 2 2 2 2 0
A 1 1 1 [1] 2 2 1 2 2 2 2 2 2 2 0
A 1 1 1 1 [2] 2 1 2 2 2 2 2 2 2 0
B 1 1 1 1 3 [2] 1 2 2 2 2 2 2 2 0
B 1 1 1 1 3 2 [1] 2 2 2 2 2 2 2 0
B 1 1 1 1 3 2 1 [2] 2 2 2 2 2 2 0
B 1 1 1 1 3 2 1 2 [2] 2 2 2 2 2 0
B 1 1 1 1 3 2 1 2 2 [2] 2 2 2 2 0
B 1 1 1 1 3 2 1 2 2 2 [2] 2 2 2 0
B 1 1 1 1 3 2 1 2 2 2 2 [2] 2 2 0
B 1 1 1 1 3 2 1 2 2 2 2 2 [2] 2 0
B 1 1 1 1 3 2 1 2 2 2 2 2 2 [2] 0
B 1 1 1 1 3 2 1 2 2 2 2 2 2 2 [0]
C 1 1 1 1 3 2 1 2 2 2 2 2 2 [2] 0
C 1 1 1 1 3 2 1 2 2 2 2 2 [2] 2 0
C 1 1 1 1 3 2 1 2 2 2 2 [2] 2 2 0
C 1 1 1 1 3 2 1 2 2 2 [2] 2 2 2 0
C 1 1 1 1 3 2 1 2 2 [2] 2 2 2 2 0
C 1 1 1 1 3 2 1 2 [2] 2 2 2 2 2 0
C 1 1 1 1 3 2 1 [2] 2 2 2 2 2 2 0
C 1 1 1 1 3 2 [1] 2 2 2 2 2 2 2 0
D 1 1 1 1 3 [2] 2 2 2 2 2 2 2 2 0
D 1 1 1 1 [3] 2 2 2 2 2 2 2 2 2 0
A 1 1 1 1 1 [2] 2 2 2 2 2 2 2 2 0
B 1 1 1 1 1 3 [2] 2 2 2 2 2 2 2 0
B 1 1 1 1 1 3 2 [2] 2 2 2 2 2 2 0
B 1 1 1 1 1 3 2 2 [2] 2 2 2 2 2 0
B 1 1 1 1 1 3 2 2 2 [2] 2 2 2 2 0
B 1 1 1 1 1 3 2 2 2 2 [2] 2 2 2 0
B 1 1 1 1 1 3 2 2 2 2 2 [2] 2 2 0
B 1 1 1 1 1 3 2 2 2 2 2 2 [2] 2 0
B 1 1 1 1 1 3 2 2 2 2 2 2 2 [2] 0
B 1 1 1 1 1 3 2 2 2 2 2 2 2 2 [0]
C 1 1 1 1 1 3 2 2 2 2 2 2 2 [2] 0
C 1 1 1 1 1 3 2 2 2 2 2 2 [2] 2 0
C 1 1 1 1 1 3 2 2 2 2 2 [2] 2 2 0
C 1 1 1 1 1 3 2 2 2 2 [2] 2 2 2 0
C 1 1 1 1 1 3 2 2 2 [2] 2 2 2 2 0
C 1 1 1 1 1 3 2 2 [2] 2 2 2 2 2 0
C 1 1 1 1 1 3 2 [2] 2 2 2 2 2 2 0
C 1 1 1 1 1 3 [2] 2 2 2 2 2 2 2 0
C 1 1 1 1 1 [3] 2 2 2 2 2 2 2 2 0
E 1 1 1 1 [1] 2 2 2 2 2 2 2 2 2 0
E 1 1 1 [1] 1 2 2 2 2 2 2 2 2 2 0
E 1 1 [1] 1 1 2 2 2 2 2 2 2 2 2 0
E 1 [1] 1 1 1 2 2 2 2 2 2 2 2 2 0
E [1] 1 1 1 1 2 2 2 2 2 2 2 2 2 0
E [0] 1 1 1 1 1 2 2 2 2 2 2 2 2 2 0
STOP 0 [1] 1 1 1 1 2 2 2 2 2 2 2 2 2 0 </pre>
=={{header|Pascal}}==
|