Execution of code can be accomplished by a variety of means ranging from direct interpretation of a form representing a program to invocation of compiled code produced by a compiler.
Evaluation is the process by which a program is executed in Common Lisp. The mechanism of evaluation is manifested both implicitly through the effect of the Lisp read-eval-print loop, and explicitly through the presence of the functions eval, compile, compile-file, and load. Any of these facilities might share the same execution strategy, or each might use a different one.
The behavior of a conforming program processed by eval and by compile-file might differ; see Semantic Constraints.
Evaluation can be understood in terms of a model in which an interpreter recursively traverses a form performing each step of the computation as it goes. This model, which describes the semantics of Common Lisp programs, is described in The Evaluation Model.
Introduction to Environments | ||
The Evaluation Model | ||
Lambda Expressions | ||
Closures and Lexical Binding | ||
Shadowing | ||
Extent | ||
Return Values |