next up previous
Next: Reflective Annotation Up: Extensions via Meta-Interpreters Previous: Extensions via Meta-Interpreters

Meta-level Arguments

On a method/function invocation, parameters can be transparently passed from the caller to the callee at the meta-level using the meta-level argument interface. When a method or function is invoked, a method meta-args of the evaluator is called. The return value of this method, which is a list of keywords and values, is passed onto the target's meta-object along with ordinary parameters of the base-level method or function. Eventually, these values are stored in the evaluation environment on the callee's side, and accessed by the function lookup-meta. An advantage of this mechanism is that the meta-level arguments are invisible from the base-level programs. As a result, we need not modify base-level programs in order to pass parameters that are used only at the meta-level. The use of meta-level arguments is presented in Section 5.3.

Matt Hurlbut
1998-07-14