home *** CD-ROM | disk | FTP | other *** search
-
- { [MARKOV.REC]
- [compile a Markov rule set into a REC program]
- [format: (antecedent, consequent)]
- [or (antecedent, consequent).]
- [Harold V. McIntosh, 5 December 1980]
- [Harold V. McIntosh, 22 February 1981]
-
- [A Markov algorithm is an attempt by the Russian mathematician
- A. A. Markov to make a rigorous algorithmic process out of the
- production schemes of E. L. Post. In a Post production, one is
- required to exhibit a sequence of transformation steps, or to
- prove that no such sequence can be found. This is a process
- which may depend upon a considerable amount of ingenuity, or
- involve non-constructive reasoning, which is unsatisfactory
- from the algorithmic point of view.]
-
- [A Markov algorithm consists of a sequence of pairs - antecedents
- and consequents - which constitute transformation rules. They are
- to be tried in the strict priority of the order in which they are
- listed, and each is marked according to whether the process is to
- be repeated again from the beginning or to be terminated forthwith.
- If no rule applies, the process also stops. Thus a quite definite
- sequence of events is described, with which to effect a calculation.]
-
- [Markov Algorithms can be modelled in REC with especial ease just
- because they were taken as the model for REC's workspace and its
- associated operators and predicates.]
-
- [Markov's own book, which spells out his scheme in minute detail,
- is still the best source to consult for a description of these
- algorithms. Paralleling the development of the theory of Turing
- machines, his treatment culminates in the enunciation of a Universal
- algorithm.
-
- A. A. Markov
- The Theory of Algorithms
- Academy of Sciences of the USSR
- Moscow 1954 Leningrad
-
- (also - NTIS-TT60-S1085
- Israeli Program for Scientific Translations
- Jerusalem, Israel, 1954.)]
-
- [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'MKV';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] (@D@$@::;) J
-
- [WS up to cursor to disk] (jJ<(@p:L;)Zz>;) P
-
- [read, place in workspace] (@$@::;) R
-
- [15-line window] (AB(10%EA:;)qL
- 15(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
-
- [Markov subroutines] ("{
- [cr,lf] (2573TL;)&
- [read phrase] (R13%='';T08%(=2080[sp,bs]TL)(@J|;L@J;);)J
- [sign-on line] ('[[]]'TL@&'Initial Axiom:'TL@&@JI;:)R
- [write workspace] (JZqt;)W
- [final statement] (@&'Production:'TL@&JZqt;)X
- "I;) s
-
- [Markov rule] ('('FD39%I
- ','FD39%I'FD'I39%I')'FD
- ('.'ED';';':';)39%I'I'II
- ;;) t
-
- [Markov preface] ("(@R(@&@WRL"I2573I;) u
-
- [Markov postscript] (";;)@X;;)}"I;) v
-
- [compile a MARKOV file] (Jj
- [change file extension] ('.MKV]'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;
- 96% [prime: up line] = (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] 'markov.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]
-