Authors
Norman Adams, David Kranz, Richard Kelsey, Jonathan Rees, Paul Hudak, James Philbin
Publication date
1986/7/1
Journal
ACM SIGPLAN Notices
Volume
21
Issue
7
Pages
219-233
Publisher
ACM
Description
In this paper we describe an optimizing compiler for Scheme [3, 131 called Orbit that incorporates our experience with an earlier Scheme compiler called TC [IO, II], together with some ideas from Steele’s Rabbit compiler [14]. The three main design goals have been correctness, generating very efficient compiled code, and portability.
In spirit, Orbit is similar to the Rabbit compiler in that it depends on a translation of source code into “continuation-passing style”(CPS), a convenient intermediate form that makes control-flow explicit. After CPS conversion, procedures take an extra argument called a continuation(another procedure) that represents the next logical execution point after execution of the procedure body. Thus procedures do not “return,” but rather “continue into” the code represented by the continuation. This permits, for example, a general but simple way to optimize tail-recursions into loops.
Total citations
19861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023392121282743293830382621817121281186211213611862727155552
Scholar articles
N Adams, D Kranz, R Kelsey, J Rees, P Hudak… - ACM SIGPLAN Notices, 1986
D Kranz, R Kelsey, J Rees, P Hudak, J Philbin… - ACM SIGPLAN Notices, 2004