- ... 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.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.