Performance and evaluation of LISP systems
Performance and evaluation of LISP systems
ORBIT: an optimizing compiler for scheme
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Syntactic abstraction in Scheme
Lisp and Symbolic Computation
A practical soft type system for Scheme
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Lisp and Symbolic Computation - Special issue on parallel symbolic applications
Extending the scope of syntactic abstraction
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Revised Report on the Algorithmic Language Scheme
Higher-Order and Symbolic Computation
Rabbit: A Compiler for Scheme
Orbit: an optimizing compiler for scheme
Orbit: an optimizing compiler for scheme
The development of Chez Scheme
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Implicit phasing for R6RS libraries
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Compilation of extended recursion in call-by-value functional languages
Higher-Order and Symbolic Computation
An interpreter for server-side hop
Proceedings of the 7th symposium on Dynamic languages
A nanopass framework for commercial compiler development
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
A Scheme letrec expression is easily converted into more primitive constructs via a straightforward transformation given in the Revised5 Report. This transformation, unfortunately, introduces assignments that can impede the generation of efficient code. This article presents a more judicious transformation that preserves the semantics of the revised report transformation and also detects invalid references and assignments to left-hand-side variables, yet enables the compiler to generate efficient code. A variant of letrec that enforces left-to-right evaluation of bindings is also presented and shown to add virtually no overhead.