Design of a LISP-based microprocessor
Communications of the ACM
Functional Programming
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Anatomy of LISP
Reflection and semantics in LISP
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A semantic comparison of LISP and SCHEME
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
An Interpreter for Extended Lambda Calculus
An Interpreter for Extended Lambda Calculus
Lambda: The Ultimate Imperative
Lambda: The Ultimate Imperative
LAMBDA: The Ultimate Declarative
LAMBDA: The Ultimate Declarative
Debunking the ``Expensive Procedure Call'''' Myth or, Procedure Call Implementations Considered Harmful or, LAMDBA: The Ultimate GOTO
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)
Rabbit: A Compiler for Scheme
LISP 1.5 Programmer's Manual
Environments as first class objects
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
An open-ended data representation model for EU_LISP
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
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 model for a reflective object-oriented language
OOPSLA/ECOOP '88 Proceedings of the 1988 ACM SIGPLAN workshop on Object-based concurrent programming
Computational reflection in class based object-oriented languages
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
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
M-LISP: a representation-independent dialect of LISP with reduction semantics
ACM Transactions on Programming Languages and Systems (TOPLAS)
Object-oriented concurrent reflective languages can be implemented efficiently
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
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
Using metalevel techniques in a flexible toolkit for CSCW applications
ACM Transactions on Computer-Human Interaction (TOCHI)
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
Introduction: the first international workshop on self-adaptive software
IWSAS' 2000 Proceedings of the first international workshop on Self-adaptive software
An architecture for self-adaptation and its application to aerial image understanding
IWSAS' 2000 Proceedings of the first international workshop on Self-adaptive software
Compilers and staging transformations
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Managing Dynamic Changes in Multi-stage Program Generation Systems
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
Perimorph: Run-Time Composition and State Management for Adaptive Systems
ICDCSW '04 Proceedings of the 24th International Conference on Distributed Computing Systems Workshops - W7: EC (ICDCSW'04) - Volume 7
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)
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Multiple dispatch in reflective runtime environment
Computer Languages, Systems and Structures
Zero-a blend of static typing and dynamic metaprogramming
Computer Languages, Systems and Structures
Challenges of Online Game Development: A Review
Simulation and Gaming
Explaining Prolog based expert systems using a layered meta-interpreter
IJCAI'89 Proceedings of the 11th international joint conference on Artificial intelligence - Volume 1
A Reflective Higher-order Calculus
Electronic Notes in Theoretical Computer Science (ENTCS)
Execution levels for aspect-oriented programming
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Namespace logic: a logic for a reflective higher-order calculus
TGC'05 Proceedings of the 1st international conference on Trustworthy global computing
Science of Computer Programming
Hi-index | 0.00 |
In a procedurally reflective programming language, all programs are executed not through the agency of a primitive and inaccessible interpreter, but rather by the explicit running of a program that represents that interpreter. In the corresponding virtual machine, therefore, there are an infinite number of levels at which programs are processed, all simultaneously active. It is therefore a substantial question to show whether, and why, a reflective language is computationally tractable. We answer this question by showing how to produce an efficient implementation of a procedurally reflective language, based on the notion of a level-shifting processor. A series of general techniques, which should be applicable to reflective variants of any standard applicative or imperative programming languages, are illustrated in a complete implementation for a particular reflective LISP dialect called 3-LISP.