Next: Extensions via Meta-Objects
Up: Extensions via Meta-Interpreters
Previous: Meta-level Arguments
In ABCL/R3, annotations can be used as directives to the meta-level
from base-level programs. An annotation to an expression consists of
a keyword and argument expressions; and it is written as follows:
body{keyword args. . .}
Our annotations, called reflective annotations, can be
customized how they are interpreted. In fact, an annotated expression
is evaluated by the following method at the meta-level:
- (eval-annotation keyword args body env):
- When an annotated
expression is to be evaluated, this method is called beforehand. By
default, a new evaluator object whose class is specified by the
keyword argument is created, and then the body expression is
evaluated by the created evaluator.
Since the method definition can be overridden by user-defined
methods, the above interpretation can be changed, as will be shown in
Sections 5.1 and 5.2.
Matt Hurlbut
1998-07-14