The Revised Report on SCHEME: A Dialect of LISP.

Abstract

SCHEME is a dialect of LISP. It is an expression-oriented, applicative order, interpreter-based language which allows one to manipulate programs as data. It differs from most current dialects of LISP in that it closes all lambda-expressions in the environment of their definition or declaration, rather than in the execution environment. This has the consequence that variables are normally lexically scoped, as in ALGOL. However, in contrast with ALGOL, SCHEME treats procedures as a first-class data type. They can be the values of variables, the returned values of procedures, and components of data structures. Another difference from LISP is that SCHEME is implemented in such a way that tail-recursions execute without net growth of the interpreter stack. The effect of this is that a procedure call behaves like a GOTO, and thus procedure calls can be used to implement iterations, as in PLASMA. A complete 'user manual' for the SCHEME language is given. Some features described here were not documented in the original report on SCHEME (for instance particular macros). Other features were added, changed, or delected as our understanding of certain language issues evolved. Annotations to the manual describe the motivations for these changes.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Jan 01, 1978
Accession Number
ADA062363

Entities

People

  • Gerald Jay Sussman
  • Guy Lewis Steele Jr.

Organizations

  • Massachusetts Institute of Technology

Tags

Communities of Interest

  • Cyber
  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Artificial Intelligence
  • Catalogs
  • Compilers
  • Computational Science
  • Contrast
  • Crystal Structure
  • Environment
  • Iterations
  • Language
  • Manuals
  • Military Research
  • Neurobehavioral Manifestations
  • Personality
  • Side Effects
  • Spine
  • Standards
  • Test And Evaluation

Readers

  • Computational Linguistics
  • Computer Science.