... Demers1
Authors' current address: DIRO, Université de Montréal, C.P. 6128, Succursale Centre-ville, Montréal, Québec, Canada H3C 3J7, phone: (514) 343-7479, fax: (514) 343-5834, e-mail: {malenfan,marcoj,demers}@iro.umontreal.ca This research has been supported by FCAR-Québec and NSERC-Canada.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...tex2html_comment_mark2
For example, in a language providing lists as an abstract data type, structural reflection calls for providing the programs with a complete reification of the implementation of the list ADT, the internal representation and operations of which could be modified.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...tex2html_comment_mark3
provided that we are willing to pay the price of having partially interpreted code or a compiler available at run-time and being called from time to time to compile some source code. At first, languages with reified programs were condemned to interpretation. Now implementors either mix compiled and interpreted code, or compile and link the new code on the fly.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...tex2html_comment_mark4
In fact, we are glossing over the reification in Figure 2. The actual values must take into account the packaging of the environment and the continuation into their reified counterparts. We will come back on this issue below.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...tex2html_comment_mark5
Continuous behavioral reflection bears some similarity to meta-interpreting. The main difference is that in meta-interpreting, the base level program is not aware of the meta-interpreter and cannot change it. In reflection, the program is aware of the meta-level and can change it, even at run-time.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... apply-generic-function6
or compute-discriminating-function, see [KRB91]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...tex2html_comment_mark7
a flat or boring level executes expressions that come solely from the LSP program.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...tex2html_comment_mark8
Dynamic languages such as CLOS and Smalltalk now enjoy some fortune in the software industry, so more and more efficient commercial implementations are available. The technology developed by firms becomes an important factor of competitiveness, so it unfortunately remains secret. This is particularly the case for the CLOS MOP but also for Smalltalk.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...tex2html_comment_mark9
This is not the common assumption when all the levels implement the same language. However, in a tower where each level implements a different language, it is not possible to have reflective procedures written in all of these languages. It appears more convenient to write them in the language of the level where they are applied.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Matt Hurlbut
1998-07-02