home *** CD-ROM | disk | FTP | other *** search
-
- [BADD.REC]
- [Turing Machine which sums binary numbers]
-
- [[]]
-
- {
- [head right] (AAB;'.'I;;)+
- [head left] (B;j'.'I;;)-
- [head stationary] (;)0
- [test equality] (pGm=n;nL)=
- [cr.lf] (2573TL;)&
- [read phrase] (R13%='';08%(=)(T@J|;08%T' 'TLTLL@J;);)J
- [sign-on message] ('
- This Turing Machine will sum two binary numbers.
- Its initial tape should have the form =a+b=, with
- the head positioned at the right equal sign. For
- example,
-
- =111110+011#=
-
- Each keystroke will show one step in the Machine`s
- operation, until the sum has been completed and the
- extra symbols have been erased.
- 'TL@&'Initial Tape:'TL@&@JJZDI'#'FD;:)R
- [write tape segment] (j(20b;J;)qtz' 'TABqtTLz(20a;LZ;)qtB;) W
- (@R'Q0'(@&@WRLT
-
- ('Q0'@='='E;)D' 'IL'dig'@-:
- ('dig'@='0'E;)D'='IL'zle'@-:
- ('dig'@='1'E;)D'='IL'ole'@-:
- ('dig'@='+'E;)D'+'IL'lef'@-:
- ('zle'@='0'E;)D'0'IL'zle'@-:
- ('zle'@='1'E;)D'1'IL'zle'@-:
- ('zle'@='+'E;)D'+'IL'zad'@-:
- ('ole'@='0'E;)D'0'IL'ole'@-:
- ('ole'@='1'E;)D'1'IL'ole'@-:
- ('ole'@='+'E;)D'+'IL'oad'@-:
- ('zad'@='a'E;)D'a'IL'zad'@-:
- ('zad'@='b'E;)D'b'IL'zad'@-:
- ('zad'@='0'E;)D'a'IL'rig'@+:
- ('zad'@='1'E;)D'b'IL'rig'@+:
- ('zad'@='='E;)D'='IL'rig'@+:
- ('oad'@='a'E;)D'a'IL'oad'@-:
- ('oad'@='b'E;)D'b'IL'oad'@-:
- ('oad'@='0'E;)D'b'IL'rig'@+:
- ('oad'@='1'E;)D'a'IL'car'@-:
- ('oad'@='='E;)D'b'IL'new'@-:
- ('car'@='0'E;)D'1'IL'rig'@+:
- ('car'@='1'E;)D'0'IL'car'@-:
- ('car'@='='E;)D'1'IL'new'@-:
- ('new'@='.'E;)D'='IL'rig'@+:
- ('rig'@='0'E;)D'0'IL'rig'@+:
- ('rig'@='1'E;)D'1'IL'rig'@+:
- ('rig'@='a'E;)D'a'IL'rig'@+:
- ('rig'@='b'E;)D'b'IL'rig'@+:
- ('rig'@='+'E;)D'+'IL'rig'@+:
- ('rig'@='='E;)D' 'IL'dig'@-:
- ('lef'@='0'E;)D'0'IL'lef'@-:
- ('lef'@='1'E;)D'1'IL'lef'@-:
- ('lef'@='a'E;)D'a'IL'lef'@-:
- ('lef'@='b'E;)D'b'IL'lef'@-:
- ('lef'@='='E;)D' 'IL'fin'@+:
- ('fin'@='0'E;)D'0'IL'fin'@+:
- ('fin'@='1'E;)D'1'IL'fin'@+:
- ('fin'@='a'E;)D'0'IL'fin'@+:
- ('fin'@='b'E;)D'1'IL'fin'@+:
- ('fin'@='+'E;)D' 'IL'fin'@+:
- ('fin'@='='E;)D' 'IL'H'@-:
- 'H'=;);)}
-
- [end]
-