Reflection and semantics in LISP
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
The Art of the Interpreter or, The Modularity Complex (Parts Zero, One, and Two)
The Art of the Interpreter or, The Modularity Complex (Parts Zero, One, and Two)
Reflection in an object-oriented concurrent language
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
Intensions and extensions in a reflective tower
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Reification without evaluation
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
A dynamic extent control operator for partial continuations
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
Reflection facilities and realistic programming
ACM SIGPLAN Notices
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)
Metalevel building blocks for modular systems
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
Sharing code through first-class environments
Proceedings of the first ACM SIGPLAN international conference on Functional programming
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
Revised report on the algorithmic language scheme
ACM SIGPLAN Lisp Pointers
Generic operational decomposition for concurrent systems: semantics and reflection
Progress in computer research
Compilers and staging transformations
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Generic operational decomposition for concurrent systems: semantics and reflection
Progress in computer research
Attaching Second-Order Types to Methods in an Object-Oriented Language
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
CARP@ - A Reflection Based Tool for Observing Jini Services
Proceedings of the 1st OOPSLA Workshop on Reflection and Software Engineering: Reflection and Software Engineering, Papers from OORaSE 1999
TARK '86 Proceedings of the 1986 conference on Theoretical aspects of reasoning about knowledge
Termination analysis and specialization-point insertion in offline partial evaluation
ACM Transactions on Programming Languages and Systems (TOPLAS)
A multi-stage language with intensional analysis
Proceedings of the 5th international conference on Generative programming and component engineering
ACM SIGPLAN Lisp Pointers
Self-Sustaining Systems
Beyond static and dynamic scope
DLS '09 Proceedings of the 5th symposium on Dynamic languages
Extending UML for modeling reflective software components
UML'99 Proceedings of the 2nd international conference on The unified modeling language: beyond the standard
Reflecting on aspect-oriented programming, metaprogramming, and adaptive distributed monitoring
FMCO'06 Proceedings of the 5th international conference on Formal methods for components and objects
Agent-oriented programming: from prolog to guarded definite clauses
Agent-oriented programming: from prolog to guarded definite clauses
Read-only execution for dynamic languages
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Proceedings of the 10th ACM international conference on Generative programming and component engineering
Turning the tide of the data deluge
Proceedings of the first annual workshop on High performance computing meets databases
Using ambient in computational reflection semantics description
ICCNMC'05 Proceedings of the Third international conference on Networking and Mobile Computing
A multi-level logic programming model of a query optimizer
ADBIS'97 Proceedings of the First East-European conference on Advances in Databases and Information systems
Higher-Order and Symbolic Computation
Hi-index | 0.00 |
We consider how the data structures of an interpreter may be made available to the program it is running, and how the program may alter its interpreter's structures. We refer to these processes as reification and reflection. We show how these processes may be considered as an extension of the fexpr concept in which not only the form and the environment, but also the continuation, are made available to the body of the procedure. We show how such a construct can be used to effectively add an unlimited variety of “special forms” to a very small base language. We consider some trade-offs in how interpreter objects are reified. Our version of this construct is similar to one in 3-Lisp [Smith 82, 84], but is independent of the rest of 3-Lisp. In particular, it does not rely on the notion of a tower of interpreters.