Scheme: A Interpreter for Extended Lambda Calculus

  • Authors:
  • Gerald Jay Sussman;Guy L. Steele, Jr.

  • Affiliations:
  • Massachusetts Institute of Technology, 545 Tech Square, Room 428, Cambridge, MA 02139, USA. gjs@mit.edu;Sun Microsystems Labs, 2 Elizabeth Drive, MS UCHL03-207, Chelmsford, MA 01824, USA. guy.steele@east.sun.com

  • Venue:
  • Higher-Order and Symbolic Computation
  • Year:
  • 1998

Quantified Score

Hi-index 0.03

Visualization

Abstract

Inspired by ACTORS [7, 17], we haveimplemented an interpreter for a LISP-like language, SCHEME, based on thelambda calculus [2], but extended for side effects, multiprocessing,and process synchronization. The purpose of this implementation is tutorial.We wish to:1.alleviate the confusion caused by Micro-PLANNER, CONNIVER, etc., byclarifying the embedding of non-recursive control structures in a recursivehost language like LISP.2.explain how to use these control structures, independent of such issues as pattern matching and data base manipulation.3.have a simple concrete experimental domain for certain issues ofprogramming semantics and style.This paper is organized into sections. The first section is a short“reference manual” containing specifications for all the unusual features ofSCHEME. Next, we present a sequence of programming examples which illustratevarious programming styles, and how to use them. This will raise certainissues of semantics which we will try to clarify with lambda calculus in thethird section. In the fourth section we will give a general discussion of theissues facing an implementor of an interpreter for a language based on lambdacalculus. Finally, we will present a completely annotated interpreter forSCHEME, written in MacLISP [13], to acquaint programmers with the tricks ofthe trade of implementing non-recursive control structures in a recursivelanguage like LISP.This report describes research done at the Artificial Intelligence Laboratory of the Massachusetts Institute of Technology. Support for the laboratory‘sartificial intelligence research is provided in part by the Advanced ResearchProjects Agency of the Department of Defense under Office of Naval Researchcontract N00014-75-C-0643.