The first description of Scheme was written in 19752. A revised report3 appeared in 1978, which described the evolution of the language as its MIT (Massachusetts Institute of Technology) implementation was upgraded to support an innovative compiler4. Three distinct projects began in 1981 and 1982 to use variants of Scheme for courses at MIT, Yale, and Indiana University5 6 7. An introductory computer science textbook using Scheme was published in 19848.
As Scheme became more widespread, local dialects began to diverge until
students and researchers occasionally found it difficult to understand
code written at other sites. Fifteen representatives of the major
implementations of Scheme therefore met in October 1984 to work toward a
better and more widely accepted standard for Scheme. Their report, the
RRRS (Revised Revised Report on Scheme)9, was published at
MIT and Indiana University in the summer of 1985. Further
revision took place in the spring of 1986, resulting in the
R3RS (Revised³ Report on the Algorithmic Language Scheme)10. Work in the spring of
1988 resulted in R4RS (Revised⁴ Report on the Algorithmic Language Scheme)11, which
became the basis for the IEEE (Institute of Electrical and Electronics Engineers) Standard for the Scheme
Programming Language in 199112.
In 1998, several additions to the IEEE standard, including
high-level hygienic macros, multiple return values, and eval, were
finalized as the R5RS13).
In the fall of 2006, work began on a more ambitious standard, including many new improvements and stricter requirements made in the interest of improved portability. The resulting standard, the R6RS, was completed in August 200714, and was organized as a core language and set of mandatory standard libraries. Several new implementations of Scheme conforming to it were created. However, most existing R5RS implementations (even excluding those which are essentially unmaintained) did not adopt R6RS, or adopted only selected parts of it.
In consequence, the Scheme Steering Committee decided in August 2009 to divide the standard into two separate but compatible languages — a “small” language, suitable for educators, researchers, and users of embedded languages, focused on R5RS compatibility, and a “large” language focused on the practical needs of mainstream software development, intended to become a replacement for R6RS. The present report describes the “small” language of that effort: therefore it cannot be considered in isolation as the successor to R6RS.
We intend this report to belong to the entire Scheme community, and so we grant permission to copy it in whole or in part without fee. In particular, we encourage implementers of Scheme to use this report as a starting point for manuals and other documentation, modifying it as necessary.
Gerald Jay Sussman and Guy Lewis Steele Jr. SCHEME: an interpreter for extended lambda calculus. MIT Artificial Intelligence Memo 349, December 1975.
Guy Lewis Steele Jr. and Gerald Jay Sussman. The Revised Report on SCHEME: A Dialect of LISP. MIT Artificial Intelligence Memo 452, January 1978.
Guy Lewis Steele Jr. RABBIT: a compiler for SCHEME. MIT Artificial Intelligence Laboratory Technical Report 474, May 1978.
Jonathan A. Rees and Norman I. Adams IV. T: A Dialect of Lisp or, LAMBDA: The Ultimate Software Tool. In Conference Record of the 1982 ACM Symposium on Lisp and Functional Programming, pages 114–122.
MIT. Department of Electrical Engineering and Computer Science. Scheme manual, seventh edition. September 1984.
Carol Fessenden, William Clinger, Daniel P. Friedman, and Christopher Haynes. Scheme 311 version 4 reference manual. Indiana University Computer Science Technical Report 137, February 1983. Superseded by Scheme 84 Interim Reference Manual.
Harold Abelson and Gerald Jay Sussman with Julie Sussman. Structure and Interpretation of Computer Programs, second edition. MIT (Massachusetts Institute of Technology) Press, Cambridge, 1996.
William Clinger, editor. The Revised Revised Report on Scheme or An UnCommon Lisp. MIT Artificial Intelligence Memo 848, August 1985. Also published as Computer Science Department Technical Report 174, Indiana University, June 1985.
Jonathan Rees and William Clinger, editors. Revised 3 Report on the Algorithmic Language Scheme. In ACM SIGPLAN (Special Interest Group on Programming Languages) Notices 21(12), pages 37–79, December 1986.
William Clinger and Jonathan Rees, editors. Revised 4 Report on the Algorithmic Language Scheme. In ACM Lisp Pointers 4(3), pages 1–55, 1991.
IEEE Standard 1178-1990. IEEE Standard for the Scheme Programming Language. IEEE, New York, 1991.
Richard Kelsey, William Clinger, and Jonathan Rees, editors. Revised 5 Report on the Algorithmic Language Scheme. Higher-Order and Symbolic Computation, Vol. 11, No. 1, August 1998.
Michael Sperber, R. Kent Dybvig, Mathew Flatt, and Anton van Straaten, editors. Revised 6 Report on the Algorithmic Language Scheme. Cambridge University Press, 2010.