Module oxischeme::environment [-]  [+] [src]

The implementation of the Scheme environment binding symbols to values.

This is split into two pieces:

  1. The Environment associates symbol names with a concrete location where the symbol's value can be found at runime. This is static information used during the syntactic analysis.

  2. Activations are instances of lexical blocks (either a lambda invocation, or the global top level) at runtime. They only contain values and none of the metadata mapping names to these values. After syntactic analysis, we only deal with activations, and we no longer need the symbols nor the Environment.

Structs

Activation

An Activation represents a runtime instance of a lexical block (either a lambda or the global top-level).

Environment

The Environment represents what we know about bindings statically, during syntactic analysis.

Type Definitions

ActivationPtr

A pointer to an Activation on the heap.

RootedActivationPtr

A rooted pointer to an Activation on the heap.