Lambda lifting: transforming programs to recursive equations
Proc. of a conference on Functional programming languages and computer architecture
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
The design and implementation of the self compiler, an optimizing compiler for object-oriented programming languages
Revised5 report on the algorithmic language scheme
ACM SIGPLAN Notices
Bigloo: A Portable and Optimizing Compiler for Strict Functional Languages
SAS '95 Proceedings of the Second International Symposium on Static Analysis
The java hotspotTM server compiler
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
The Python Language Reference Manual
The Python Language Reference Manual
A practical solution for achieving language compatibility in scripting language compilers
Science of Computer Programming
Hi-index | 0.00 |
The semantics of some dynamic programming languages, including Python, JavaScript, and R5RS Scheme, make it hard for a compiler to inline predefined procedures without compromising the semantics of the language. In the case of Scheme, many existing compilers can only achieve good execution speed by assuming that variables bound to predefined procedures are never mutated. This paper presents a speculative inliningapproach which is portable and achieves good performance while fully conforming to the semantics of Scheme. It has been implemented in a mature Scheme to C compiler and we report on its performance on a large benchmark suite, both in execution speed and code size.