The report gives a defining description of the programming language Sc
heme. Scheme is a statically scoped and properly tail-recursive dialec
t of the Lisp programming language invented by Guy Lewis Steele Jr. an
d Gerald Jay Sussman. It was designed to have an exceptionally clear a
nd simple semantics and few different ways to form expressions. A wide
variety of programming paradigms, including imperative, functional, a
nd message passing styles, find convenient expression in Scheme. The i
ntroduction offers a brief history of the language and of the report.
The first three chapters present the fundamental ideas of the language
and describe the notational conventions used for describing the langu
age and for writing programs in the language. Chapters 4 and 5 describ
e the syntax and semantics of expressions, programs, and definitions.
Chapter 6 describes Scheme's built-in procedures, which include all of
the language's data manipulation and input/output primitives. Chapter
7 provides a formal syntax for Scheme written in extended BNF, along
with a formal denotational semantics. An example of the use of the lan
guage follows the formal syntax and semantics. The report concludes wi
th a list of references and an alphabetic index.