Previous page Table of Contents Next page
The language semantics are as if a residential environment is being used, i.e. the compiler coexists with the user program in the same object space. New code can be constructed at run time and compiled into the environment of the running program.
---TBD here is where I explain the eval and compile functions and the facilities for manipulating scopes.
However, separate compilation is possible. In this case, at least the parts of the user program executed by user written macros coexist with the compiler. However, the compiler outputs a "fasl file" consisting of instructions for loading the compiled user program into another environment. Previously compiled code can be loaded into a program at run time.
For the compiler to compile itself and the runtime, there can be a special compilation environment that uses module renaming to keep the currently executing compiler and runtime separate from the new compiler and runtime that are being compiled.
Previous page Table of Contents Next page