Higher-Order and Symbolic Computation, 14(1)7-34
A Generic Reification Technique for Object-Oriented Reflective Languages
Rémi Douence, École des Mines de Nantes, Département Informatique, 44307 Nantes cedex 3, France
Mario Südholt, École des Mines de Nantes, Département Informatique,
44307 Nantes cedex 3, France
Abstract: Computational reflection is gaining interest in
practical applications as witnessed by the use of reflection in the
Java programming environment and recent work on reflective
middleware. Reflective systems offer many different reflection
programming interfaces, the so-called Meta-Object Protocols
(MOPs). Their design is subject to a number of constraints relating
to, among others, expressive power, efficiency and security
properties. Since these constraints are different from one application
to another, it would be desirable to easily provide specially-tailored
MOPs.
In this paper, we present a generic reification technique based on
program transformation. It enables the selective reification of
arbitrary parts of object-oriented meta-circular interpreters. The
reification process is of fine granularity: individual objects of the
run-time system can be reified independently. Furthermore, the program
transformation can be applied to different interpreter
definitions. Each resulting reflective implementation provides a
different MOP directly derived from the original interpreter
definition.
Keywords: reflection, OO languages, program transformation,
language implementation
|
This article can be downloaded [here].
|
|