Next: Extensions via Meta-Interpreters
Up: Implementing Parallel Language Constructs
Previous: User-Level Scheduling
The Meta-Level Architecture
We designed the meta-level architecture of ABCL/R3 so that various language
constructs such as the ones shown in Section 3,
are straightforwardly implemented at the meta-level as language
extensions. Its major features are as follows:
- Meta-interpreters of base-level methods and functions
are represented as objects, providing an object-oriented programming
model of base-level execution. They can be customized to introduce
syntax and semantics extensions into the language.
- A meta-object gives the meta-level representation of an
object, including its class name, instance variables, method
definitions, and message queue, all of which can be manipulated as first
class data.
In addition to above two major features, there are mechanisms to
facilitate simple and modular meta-level programming:
- Meta-level arguments can be passed between meta-level
programs, which avoids modifying the structure of
base-level programs.
- A reflective annotation serves as a programmable
directive to the meta-level from the base-level programs. In
addition, the interpretation of annotations is also defined in the
meta-level interpreters.
Matt Hurlbut
1998-07-14