Intensions and extensions in a reflective tower

This article presents a model of the reflective tower based on the formal semantics of its levels. They are related extensionally by their mutual interpretation and intensionally by reification and reflection. The key points obtained here are: a formal relation between the semantic domains of each level; a formal identification of reification and reflection; the visualisation of intensional snapshots of a tower of interpreters; a formal justification and a generalization of Brown's meta-continuation; a (structural) denotational semantics for a compositional subset of the model; the distinction between making continuations jumpy and pushy; the discovery of the tail-reflection property; and a Scheme implementation of a properly tail-reflective and single-threaded reflective tower. Section 1 presents the new approach taken here: rather than implementing reification and reflection leading to a tower, we consider an infinite tower described by the semantics of each level and relate these by reification and reflection. Meta-circularity then gives sufficient conditions for implementing it. Section 2 investigates some aspects of the environments and control in a reflective tower. An analog of the funarg problem is pointed out, in relation with the correct environment at reification time. Jumpy and pushy continuations are contrasted, and the notions of ephemeral level and proper tail-reflection are introduced. Our approach is compared with related work and after a conclusion, some issues are proposed.

[1]  Mitchell Wand,et al.  The mystery of the tower revealed: a non-reflective description of the reflective tower , 1986, LFP '86.

[2]  Carolyn L. Taylor The Essence of Rum: A Theory of the Intensional and Extensional Aspects of Lisp-Type Computation, , 1985 .

[3]  Brian Cantwell Smith,et al.  The implementation of procedurally reflective languages , 1984, LFP '84.

[4]  Neil D. Jones,et al.  Mix: A self-applicable partial evaluator for experiments in compiler generation , 1989, LISP Symb. Comput..

[5]  Mitchell Wand,et al.  The mystery of the tower revealed: A nonreflective description of the reflective tower , 1988, LISP Symb. Comput..

[6]  Mitchell Wand,et al.  Reification: Reflection without metaphysics , 1984, LFP '84.

[7]  C. Talcott The essence of rum: a theory of the intensional and extensional aspects of lisp-type computation (program transformation, closure, continuation structure, comparison-relation) , 1985 .

[8]  Uwe F. Pleban,et al.  A semantic comparison of LISP and SCHEME , 1980, LISP Conference.

[9]  Brian Cantwell Smith,et al.  Reflection and semantics in LISP , 1984, POPL.

[10]  David A. Schmidt,et al.  Denotationaisemantics: a methodology for language development , 1986 .

[11]  Joel Moses The function of FUNCTION in LISP or why the FUNARG problem should be called the environment problem , 1970, SIGS.

[12]  Gerald Jay Sussman,et al.  The Revised Report on SCHEME: A Dialect of LISP. , 1978 .

[13]  William D. Clinger,et al.  Revised3 report on the algorithmic language scheme , 1986, SIGP.