1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
# vim: ts=2 sw=2 et ft=ruby
# Call with a binary number on the tape:
# $ turing.rb prefix-equals-suffix-reversed-with-infix.stm 100101001
0. right goto: 1
1. cond if: '0', then: 2, else: 13
2. write symbol: 'O', goto: 3
3. right goto: 4
4. cond if: 'B', then: 21, else: 5
5. right goto: 6
6. cond if: 'B', then: 7, else: 5
7. left goto: 8
8. cond if: '0', then: 9, else: 21
9. write symbol: 'B', goto: 10
10. left goto: 11
11. cond if: '0', then: 10, else: 12
12. cond if: '1', then: 10, else: 0
13. cond if: '1', then: 14, else: 31
14. write symbol: 'I', goto: 15
15. right goto: 16
16. cond if: 'B', then: 21, else: 17
17. right goto: 18
18. cond if: 'B', then: 19, else: 17
19. left goto: 20
20. cond if: '1', then: 9, else: 21
21. write symbol: 'B', goto: 22
22. left goto: 23
23. cond if: '0', then: 21, else: 24
24. cond if: '1', then: 21, else: 25
25. write symbol: 'B', goto: 26
26. left goto: 27
27. cond if: 'O', then: 29, else: 28
28. cond if: 'I', then: 30, else: 32
29. write symbol: '0', goto: 26
30. write symbol: '1', goto: 26
31. halt
32. right goto: 33
33. cond if: 'B', then: 31, else: 32
|