home *** CD-ROM | disk | FTP | other *** search
-
- { [TURING.REC]
- [compile a set of Turing quintuples into a REC program]
- [format: (state, symbol, new symbol, new state, direction)]
- [Harold V. McIntosh, 1 December 1980]
- [Harold V. McIntosh, 22 February 1981]
-
- [A Turing machine is a fundamental concept in the theory of computation.
- Although of little practical use, it forms a model of computation which
- is so simple and definite that theorems can be proven about its operation
- allowing rigorous conclusions to be drawn about what is computable and
- what is not. It is Church's thesis that anything which is computable is
- computable by a Turing machine; a statement which cannot be proven but
- which has not been refuted after very extensive analyses of what might
- be meant by computation and ways of performing it. According to Minsky,
- the thesis, in terms of his machine model, is Turing's; Church was
- interested in the general character of an effective computation.]
-
- [A Turing machine emulator is of great practical utility for courses in
- Computer Science, because of the concrete experience which it affords
- in understanding the underlying theoretical concepts. Such a program is
- never meant to be efficient; rather the emphasis is upon its pedagogical
- value, in being readily programmable and modifiable, and it the ease and
- clarity of its presentation of the working of a Turing machine.]
-
- [One of the best references to Turing machines and their operation is:
-
- Marvin Minsky
- Finite and Infinite Machines
- Prentice-Hall Inc.
- Englewood Cliffs, New Jersey
- (C) 1967.]
-
- [The orignal article, which is often cited for the definition of a
- Turing machine, is
-
- Alan M. Turing
- "On computable numbers, with an application
- to the Entscheidungsproblem,"
- Proc. London Math. Soc. (2) 42 230-265 (1936)]
-
- [30$ - input FCB]
- [31$ - output FCB]
-
- [display w/cursor] (248%I26%TLJZqt248%FD;;) D
-
- [erase cursors] (J(248%FD:JZ;);) E
-
- [zero file control block] ($m33cmpw0%(f:;)wnnS;) F
-
- [create input, output FCB's] ('5C'H12wA' 'Ew;B
- [generate file names] 9aQpG'REC'|m (Z3b' 'E'TNG';Q;)|m w
- [open input file] n30$rS 30@f
- [open output file] n31$rS 31@g31@e
- ;) G
-
- [close file] (
- [clear wkspace, inp file] @p:L@y:(@p:0=;e26%(f:;)@p;;)
- [close fil.REC] 31$r16k
- ;) H
-
- [initialize] (J@Wj@!;@!;) I
-
- [insert text as read] (R26%='';T127%(=)(@J|;L@J;);) J
-
- [WS up to cursor to disk] (jJ<(@p:L;)Zz>;) P
-
- [read, place in workspace] (@$@::;)R
-
- [17-line window] (AB(10%EA:;)qL
- 17(d(10%FA;L(26%Fj;Z;)):;)Y<;<) W
-
- [open file or create it] (@h$r15K(255=22K;;)LL;) e
-
- [open file or report absence] (@h$r15K(255='new file 'T;;)LL;) f
-
- [delete file if present] (@h$r19k;) g
-
- [CP/M's DMA address] ('80'H26k;) h
-
- [write one record] (@Ej((26%EZD0;128(a);))qL26k31$r21kD'.'TL;) p
-
- [Turing subroutines] ("{
- [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] ('[[]]'TL@&'Initial Tape:'TL@&@JJZDI'#'FD;:)R
- [write tape segment] (j(20b;J;)qtz' 'TABqtTLz(20a;LZ;)qtB;) W
- "I;) s
-
- [Turing quintuple] ('('F39%I
- ','FD39%I'@='I39%I
- ','FD39%I'E;)D'I39%I
- ','FD39%I'IL'I39%I
- ','FD39%I'@'I
- ')'FD':'I
- ;;) t
-
- [Turing preface] ("(@R'Q0'(@&@WRLT"I2573I;;) u
-
- [Turing postscript] (2573I"'H'=;);)}"I;) v
-
- [compile a TURING file] (Jj
- [change file extension] ('.TNG]'FD'.REC]'Iz;;)
- [find display message] ('[['F']]'UQD;'';)
- [look for code gap] ('('Ej;2573Ez2573Ez2573Ez2573Ej2bD;A:;)
- [insert preface; to disk] 's'TL@s<'[[]]'FDIZ>@uz@P
- [compile each function] ('t'TL@tz@P'('Fj:;)
- [insert postscript] 'u'TL@vz@P
- ;) w
-
- [append a record] (128(e)L;qL26k30$r20K0=L;DLL@h) y
-
- [back to line feed] (10%Ez;B:j;) 0
-
- [bracket a line] (@010%V;Z;) 1
-
- [back to preceding line] (@0BB@0;;) 2
-
- [cr,lf] (2573TL;) &
-
- [read w/error correction] (RT08%=127%;13%=2573;26%(=);) $
-
- [clear screen] (26%TL;) !
-
- [erase on ro, insert others] (127%=z(B;;)D;I;) :
-
- [form next window] (Zz>@W@!;) >
-
- [cancel line] (24%TL;) ^
-
- ( 'd' [delete] = (ABD;;);
- 'i' [insert] = @J@!;
- 'j' [beginning] = Jj;
- 'x' [exchange] = (ABD;;)RTI;
- 'z' [to end] = Z;
- 127%[delete] = @1D@!;
- 124%[ver bar: next] = (10%FA;J>(10%FA;;)@Wz@!;;);
- 13% [carr ret] = @0;
- 11% [up arrow] = (BA@2;J>@2@Wj@!;;);
- 95% [undrscore: back] = (Bj;;);
- 'n' [next record] = >(@p;L;)(@y;;)J(@W;;);
- 'p' [write 1 record] = >(@p;L;)J(@W;;);
- 'y' [read 1 record] = >(@y;'eof:'TL;)J(@W;;);
- ' ' [advance] = (A;;);
- '>' [next window] = (@>j;>@I;);
- '<' [beg window] = >@I;
- '.' [refresh screen] = @!;
- 's' = @s;
- 't' = @t;
- 'u' = @u;
- 'v' = @v;
- ) ?
-
- [main program] (
- [create FCB's, open file] 30@F 31@F @G
- [sign-on] 'turing.rec> 'TL
- [automatic compilation] ('5C'H12wAqt@&3b' 'E(w(@y:;)@w@H;);w);
- [wait, initialize, loop] RTL @I (@DR
- [exit at once] ';'=@!>;
- [close,exit] 'e'=>@H;
- [read menu] @?:
- [ignore unknown] L:);)}
-
- [end]
-