; Explicit-control Evaluator with Harold (the magician (Y!)) ; Hal shortly emphasizes what has been done with Lisp until now. ; This section terminates in having the implicit and the explicit ; part of Lisp described. So to understand it from both perspectives. ; 9B:(7m44s) Constructing the evaluator machine ; REGISTERS: ; EXP expression to be evaluated ; ENV evaluation environment ; FUN procedure to be applied ; ARGL list of evaluated arguments ; ; CONTINUE ; place to go to next ; ; VAL result of evaluation ; UNEV temporary register for ; expressions ; SAMPLE EVALUATOR-MACHINE OPERATIONS: ; (assign val (fetch exp)) ; (branch ; (conditional? (fetch exp)) ; ev-cond) ; (assign exp (first-clause (fetch exp))) ; (assign val ; (lookup-variable-value (fetch exp) ; (fetch env))) ; 9B:(14m6s) Evaluator from the book ; see also TEXINFO node: 4-1-1 ; The contracts are as follows: ;;; EVAL-DISPATCH CONTRACT ;- The EXP register holds an expression to be evaluated. ;- The ENV register holds the environment in which the ; expression is to be evaluated. ;- The CONTINUE register holds a place to go to next. ; ;- The result will be left in the VAL register. Contents ; of all other registers may be destroyed. ;;; APPLY-DISPATCH CONTRACT ;- The ARGL register contains a list of arguments. ;- The FUN register contains a procedure to be applied. ;- The top of the STACK holds a place to go to next. ; ;- The result will be left in the VAL register. The ; stack will be popped. Contents of all other registers ; may be destroyed. ; 9B:(18m33s) BREAK ; 9B:(19m45s) Hal and Jay join to demonstrate a *running* program. ; 9B:(22m36s) Hal and Jay demonstrate EXAMPLE II (VARIABLE). ; 9B:(23m24s) Hal and Jay demonstrate EXAMPLE III (EXPRESSION). ; 9B:(33m32s) End of EXPERIMENT. ; 9B:(34m15s) Conclusion => QUESTIONS ; -> Reduction-Process of Functions and Procedures ; With reduction Hal means; there is nothing more on the stack. ; -> Reduction in general means expansion into some other ; form of underlying representation. ; -> Lisp uses an inductive programming paradigm in which one uses ; implicit recursive reduction to specify large parts of a program. ; BREAK ; 9B:(38m38s) Hal shows the last ingredient. ; The EVAL/APPLY loop. ; He shows the audience a recursively defined, iterative process. ; 9B:(51m41s) BREAK ; Now we see a recursively defined, recursive process. ; 9B:(1h3m) Summarizing ; 9B:(1h5m40s) The Lisp Machine Lisp in Hal's hands. ; Relax (END)