December 2021
Beginner
840 pages
47h 29m
English
The interplay of evaluating expressions in an environment and applying functions to arguments is integral to the operation of an interpreter:
Non-recursive and recursive, user-defined functions are implemented manually in Camille, with the implementation of a closure ADT.
We can alter (sometimes drastically) the semantics of the language defined by an interpreter (e.g., from static to dynamic scoping, or from deep to shallow to ad hoc binding) by changing as little as one or two lines of code of the interpreter. This typically involves just changing how and when we pass the environment.
The careful design ...
Read now
Unlock full access