Common Lisp the Language, 2nd Edition
Next: Run-Time Evaluation of
Up: Common Lisp the Language
Previous: Other Aspects
of
The mechanism that executes Lisp programs is called the evaluator.
More precisely, the evaluator accepts a form and performs the
computation specified by the form. This mechanism is made available to
the user through the function eval
.
The evaluator is typically implemented as an interpreter that
traverses the given form recursively, performing each step of the
computation as it goes. An interpretive implementation is not required,
however. A permissible alternative approach is for the evaluator first
to completely compile the form into machine-executable code and then
invoke the resulting code. This technique virtually eliminates
incompatibilities between interpreted and compiled code but also renders
the evalhook
mechanism relatively useless. Various mixed
strategies are also possible. All of these approaches should produce the
same results when executing a correct program but may produce different
results for incorrect programs. For example, the approaches may differ
as to when macro calls are expanded; macro definitions should not depend
on the time at which they are expanded. Implementors should document the
evaluation strategy for each implementation.
AI.Repository@cs.cmu.edu