next up previous
Next: Extensions via Meta-Objects Up: Extensions via Meta-Interpreters Previous: Meta-level Arguments

Reflective Annotation

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