RABBIT: A Compiler for SCHEME (A Dialect of LISP). A Study in Compiler Optimization Based on Viewing LAMBDA as RENAME and Procedure Call as GOTO using the Techniques of Macro Definition of Control and Environment Structures. Source-to-Source Transformation Procedure Integration and Tail-Recursion.

Abstract

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 control. 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 LISP constructs such as AND, OR, and COND, are expressed as macros in terms of the applicative basis set. A small number of optimization techniques, coupled with the treatment of function calls as GOTO statements, serve to produce code as good as that produced by more traditional compilers. The macro approach enables speedy implementation of new constructs as desired without sacrificing efficiency in the generated code.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
May 01, 1978
Accession Number
ADA061996

Entities

People

  • Guy Lewis Steele Jr.

Organizations

  • Massachusetts Institute of Technology

Tags

Communities of Interest

  • C4I
  • Cyber
  • Energy and Power Technologies

DTIC Thesaurus Topics

  • Algorithms
  • Artificial Intelligence
  • Calculus
  • Chemical Oxygen Iodine Lasers
  • Coils
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Debugging
  • Engineering
  • Language
  • Machine Languages
  • Operating Systems
  • Programming Languages
  • Software Development
  • Standards

Fields of Study

  • Computer science

Readers

  • Computational Linguistics
  • Computer Science.