Intensions and extensions in a reflective tower
- 1 January 1988
- proceedings article
- Published by Association for Computing Machinery (ACM)
- p. 327-341
- https://doi.org/10.1145/62678.62725
Abstract
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.Keywords
This publication has 8 references indexed in Scilit:
- The mystery of the tower revealed: A nonreflective description of the reflective towerHigher-Order and Symbolic Computation, 1988
- Revised 3 report on the algorithmic language schemeACM SIGPLAN Notices, 1986
- The mystery of the tower revealedPublished by Association for Computing Machinery (ACM) ,1986
- Reflection and semantics in LISPPublished by Association for Computing Machinery (ACM) ,1984
- ReificationPublished by Association for Computing Machinery (ACM) ,1984
- The implementation of procedurally reflective languagesPublished by Association for Computing Machinery (ACM) ,1984
- A semantic comparison of LISP and SCHEMEPublished by Association for Computing Machinery (ACM) ,1980
- The function of FUNCTION in LISP or why the FUNARG problem should be called the environment problemACM SIGSAM Bulletin, 1970