Abstract
Two key steps in the compilation of strict functional languages are the conversion of higher-order functions to data structures (closures) and the transformation to tail-recursive style. We show how to perform both steps at once by applying first-order offline partial evaluation to a suitable interpreter. The resulting code is easy to transliterate to low-level C or native code. We have implemented the compilation to C; it yields a performance comparable to that of other modern Scheme-to-C compilers. In addition, we have integrated various optimizations such as constant propagation, higher-order removal, and arity raising simply by modifying the underlying interpreter. Purely first-order methods suffice to achieve the transformations. Our approach is an instance of semantics-directed compiler generation. © 1996 ACM.
Author supplied keywords
Cite
CITATION STYLE
Sperber, M., & Thiemann, P. (1996). Realistic compilation by partial evaluation. SIGPLAN Notices (ACM Special Interest Group on Programming Languages). Association for Computing Machinery (ACM). https://doi.org/10.1145/249069.231419
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.