Procedures as persistent data objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Revised report on the algorithmic language scheme
ACM SIGPLAN Notices
Using closures for code generation
Computer Languages
A parallel virtual machine for efficient scheme compilation
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Compiling a functional language
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
T: a dialect of Lisp or LAMBDA: The ultimate software tool
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
Continuation-based multiprocessing
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
An efficient environment allocation scheme in an interpreter for a lexically-scoped LISP
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
An optimizing compiler for lexically scoped LISP
SIGPLAN '82 Proceedings of the 1982 SIGPLAN symposium on Compiler construction
Algol-60 Implementation
Hi-index | 0.00 |
This paper describes a way of expressing @l-expressions (which produce closures) in terms of @e-expressions (@l-expressions containing only local and global variable references) and calls to an interactive compiler that compiles @e-expressions. This point of view is an interesting way of describing the semantics of @l-expressions and closure generation. It also leads to an efficient closure implementation both in time and space. A closure is uniformly represented as a piece of code instead of a compound object containing a code and environment pointer. This method can also be used to simulate closures in conventional dialects of Lisp