Denotational semantics: a methodology for language development
Denotational semantics: a methodology for language development
Revised report on the algorithmic language scheme
ACM SIGPLAN Notices
The mystery of the tower revealed: a non-reflective description of the reflective tower
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Reflection and semantics in LISP
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The implementation of procedurally reflective languages
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Reification: Reflection without metaphysics
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
A semantic comparison of LISP and SCHEME
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
The Function of FUNCTION in LISP, or Why the FUNARG Problem Should be Called the Environment Problem
The Function of FUNCTION in LISP, or Why the FUNARG Problem Should be Called the Environment Problem
The essence of rum: a theory of the intensional and extensional aspects of lisp-type computation (program transformation, closure, continuation structure, comparison-relation)
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
M-LISP: its natural semantics and equational logic
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Actor reflection without meta-objects
OOPSLA/ECOOP '90 Proceedings of the workshop on Object-based concurrent programming
M-LISP: a representation-independent dialect of LISP with reduction semantics
ACM Transactions on Programming Languages and Systems (TOPLAS)
A library of high level control operators
ACM SIGPLAN Lisp Pointers
Reflections on metaclass programming in SOM
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
The Theory of Fexprs is Trivial
Lisp and Symbolic Computation
A Generic Reification Technique for Object-Oriented Reflective Languages
Higher-Order and Symbolic Computation
Implementing multi-stage languages using ASTs, Gensym, and reflection
Proceedings of the 2nd international conference on Generative programming and component engineering
Termination analysis and specialization-point insertion in offline partial evaluation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
A syntactic correspondence between context-sensitive calculi and abstract machines
Theoretical Computer Science
ACM SIGPLAN Lisp Pointers
Execution levels for aspect-oriented programming
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Composition of dynamic analysis aspects
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Proceedings of the 10th ACM international conference on Generative programming and component engineering
Science of Computer Programming
Hi-index | 0.00 |
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.