next up previous
Next: Reflective Architectures Up: Computational Reflection Previous: Computational Reflection

  
Reification

For the meta level to be able to reflect on several objects, specially if they are instances of different classes, it must be given information regarding the internal structure of objects. This meta-level object must be able to find out what are the methods implemented by an object, as well as the fields (attributes) defined by this object. Such base-level representation, that is available for the meta level, is called structural meta-information. The representation, in form of objects, of abstract language concepts, such as classes and methods, is called reification.

Base-level behavior, however, cannot be completely modeled by reifying only structural aspects of objects. Interactions between objects must also be materialized as objects, so that meta-level objects can inspect and possibly alter them. This is achieved by intercepting base-level operations such as method invocations, field value inquiries or assignments, creating operation objects that represent them, and transferring control to the meta level, as shown in Figure 2. In addition to receiving reified base-level operations from the reflective kernel, meta-level objects should also be able to create operation objects, and this should be reflected in the base level as the execution of such operations.


  
Figure 2: Reifying an operation
\begin{figure*}
\begin{center}
\par\setlength{\unitlength}{0.00083333in}
\be...
...ation is reified and presented to the meta-object.
\end{quote}
\end{figure*}


next up previous
Next: Reflective Architectures Up: Computational Reflection Previous: Computational Reflection
contact the authors