|
HTML |
PostScript |
Adobe PDF |
The efficient implementation of behaviorally reflective languages imposes a formidable challenge. By definition, behavioral reflection allows a program to modify, even at run-time, its own code as well as the semantics and the implementation of its own programming language. This late-binding of the language semantics favors interpretive techniques, but compilers are absolutely necessary to make reflective languages efficient and therefore of real interest. The goals of this tutorial are: (1) to give the picture of the state of the art in the efficient implementation of behavioral reflection, (2) to review the main issues in going from interpreter-based to compiler-based implementations and (3) to propose new avenues towards the realization of this objective. Our tutorial is aimed at a large audience of reflective language implementors, in either object-oriented, functional or even logic programming. To make our point widely applicable, we avoid fine-grain technicalities. Rather we emphasize the common denominator of all reflective languages, we propose a clear and general problem statement, and we set up a wide-ranging research agenda.
malenfan@iro.umontreal.ca
marcoj@iro.umontreal.ca
demers@iro.umontreal.ca