This page has been validated.
UNCLASSIFIED
SECURITY CLASSIFICATION OF THIS (When Data Entered)
Sent 12/7/78 ADA 061996
REPORT DOCUMENTATION PAGE READ INSTRUCTIONS
BEFORE COMPLETING FORM
1. REPORT NUMBER 2. GOVT ACCESSION NO. 2. RECIPIENT'S CATALOG NO.
TR474
4. TITLE (and Subtitles) 5. TYPE OF REPORT & PERIOD COVERED
RABBIT: A Compiler for SCHEME (A Study in Compiler Optimization) Technical Report
6. PERFORMING ORG. REPORT NUMBER
7. AUTHORS(s) 8. CONTRACT OR GRANT NUMBERS
Guy Lewis Steele N00014-75-C-0643
9. PERFORMING ORGANIZATION NAME AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA & WORK UNIT NUMBERS
Artificial Intelligence Laboratory

545 Technology Square
Cambridge, Massachusetts 02139

11. CONTROLLING OFFICE NAME AND ADDRESS 12. REPORT DATE
Advanced Research Projects Agency

1400 Wilson Blvd
Arlington, Virginia 22209

May 1978
13. NUMBER OF PAGES
272
14. MONITORING AGENCY NAME & ADDRESS(if different from Controlling Office) 15. SECURITY CLASS (of this report)
Office of Naval Research

Information Systems
Arlington, Virginia 22217

UNCLASSIFIED
15a. DECLASSIFICATION/DOWNGRADE SCHEDULE
 
16. DISTRIBUTION STATEMENT (of this Report)
Distribution of this document is unlimited.
17. DISTRIBUTION STATEMENT (of the abstract entered in Block 20, if different from Report.)
 
18. SUPPLEMENTARY NOTES
None
19. KEY WORDS (Continue on reverse side if necessary and identify by block number)
compiler optimization tail-recursion
code generation lambda calculus
LISP lexical scoping
macros continuations
18. ABSTRACT (Continue on reverse side if necessary and identify by block number)
We have developed a compiler for the lexically-scoped dialect of LISP known as SCHEME. The compiler knows relatively little about specific data manipulation primitives such as arithmetic operators, but concentrates on general issues of environment and contral. Rather than having specialized knowledge about a large variety of control and environment constructs, the compiler handles only a small basis set which reflects the semantics of lambda-calculus. All of the traditional imperative constructs, such as sequencing, assignment, looping, GOTO, as well as many standard (cont'd)
DD

FORM
1 JAN 73

1473 EDITION OF 1 NOV 63 IS OBSOLETE
S/N 0:02-014-6601
UNCLASSIFIED
SECURITY CLASSIFICATION OF THIS (When Data Entered)