Revised 5 Report on the Algorithmic Language Scheme Abstract
The report gives a defining description of the programming language Scheme. Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis Steele, Jr. and Gerald Jay Sussman. It was designed to have an exceptionally clear and simple semantics and few different ways to form expressions. A wide variety of programming paradigms, including imperative, functional, and message passing styles, find convenient expression in Scheme.
The introduction 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 language and for writing programs in the language.
Sections 5 and 6 describe the syntax and semantics of expressions, programs, and definitions.
Section 7 describes Scheme's built-in procedures, which include all of the language's data manipulation and input/output primitives.
Section 8 provides a formal syntax for Scheme written in extended BNF, along with a formal denotational semantics. An example of the use of the language follows the formal syntax and semantics.
The report concludes with a list of references and an alphabetic index and is followed by a short list of clarifications and corrections.
Scheme Lisp programming languages References
Abelson, Harold and Sussman, Gerald Jay with Sussman, Julie.
Structure and Interpretation of Computer Programs
, 2nd edition. MIT Press, Cambridge, 1996.
Bawden, Alan and Rees, Jonathan. Syntactic closures. In
Proceedings of the ACM Symposium on Lisp and Functional Programming
, 1988, pp. 86–95.
Burger, Robert G. and Dybvig, R. Kent. Printing floating-point numbers quickly and accurately. In
Proceedings of the ACMSIGPLAN Conference on Programming Language Design and Implementation
, 1996, pp. 108–116.
Clinger, William (Ed.). The revised report on Scheme, or an uncommon Lisp. MIT Artificial Intelligence Memo 848, Aug. 1985. Also published as Computer Science Department Technical Report 174, Indiana University, June 1985.
Clinger, William. How to read floating point numbers accurately. In
Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation
. Proceedings published as
(6): 92–101, June 1990.
Clinger, William and Rees, Jonathan (Eds.). The revised
report on the algorithmic language Scheme.
ACM Lisp Pointers
Clinger, William and Rees, Jonathan. Macros that work. In
Proceedings of the ACM Conference on Principles of Programming Languages
, 1991, pp. 155–162.
Clinger, William. Proper tail recursion and space efficiency. To appear in
Proceedings of the ACMConference on Programming Language Design and Implementation
, June 1998.
Dybvig, R. Kent, Hieb, Robert, and Bruggeman, Carl. Syntactic abstraction in Scheme.
Lisp and Symbolic Computation
Fessenden, Carol, Clinger, William, Friedman, Daniel P., and Haynes, Christopher. Scheme 311 version 4 reference manual. Indiana University Computer Science Technical Report 137, Feb. 1983. Superseded by .
Friedman, D., Haynes, C., Kohlbecker, E., and Wand, M. Scheme 84 interim reference manual. Indiana University Computer Science Technical Report 153, Jan. 1985.
IEEE Standard 754-1985. IEEE Standard for Binary Floating-Point Arithmetic
. IEEE, New York, 1985.
IEEE Standard 1178-1990. IEEE Standard for the Scheme Programming Language
. IEEE, New York, 1991.
Kohlbecker, Eugene E., Jr. Syntactic extensions in the programming language lisp. PhD thesis, Indiana University, Aug. 1986.
Kohlbecker, Eugene E., Jr., Friedman, Daniel P., Felleisen, Matthias, and Duba, Bruce. Hygienic macro expansion. In
Proceedings of the ACM Conference on Lisp and Functional Programming
, 1986, pp. 151–161.
Landin, Peter. A correspondence between Algol 60 and Church's lambda notation: Part I.
Communications of the ACM
(2): 89–101, Feb. 1965.
MIT Department of Electrical Engineering and Computer Science. Scheme manual, 7th edition. Sept. 1984.
Naur, Peter, et al. Revised report on the algorithmic language Algol 60.
Communications of the ACM
(1):1–17, Jan. 1963.
Penfield, Paul, Jr. Principal values and branch cuts in complex APL. In
APL Conference Proceedings
, ACM SIGAPL, San Francisco. Proceedings published as
APL Quote Quad
Pitman, Kent M. The revised MacLisp manual (Saturday evening edition). MIT Laboratory for Computer Science Technical Report 295, May 1983.
Rees, Jonathan A. and Adams IV, Norman I. T: A dialect of Lisp or, lambda: The ultimate software tool. In
Conference Record of the ACM Symposium on Lisp and Functional Programming
, 1982, pp. 114–122.
Rees, Jonathan A., Adams IV, Norman I, and Meehan, J.R. The T manual, 4th edition. Yale University Computer Science Department, Jan. 1984.
Rees, Jonathan and Clinger, William (Eds.). The revised
report on the algorithmic language Scheme,
ACM SIGPLAN Notices
(12):37–79, Dec. 1986.
Reynolds, John. Definitional interpreters for higher order programming languages.
ACM Conference Proceedings
, pp. 717–740, ACM, 1972.
Steele, Guy Lewis, Jr. and Sussman, Gerald Jay. The revised report on Scheme, a dialect of Lisp. MIT Artificial Intelligence Memo 452, Jan. 1978.
Steele, Guy Lewis, Jr. Rabbit: A compiler for Scheme. MIT Artificial Intelligence Laboratory Technical Report 474, May 1978.
Steele, Guy Lewis, Jr.
Common Lisp: The Language
. Digital Press, Burlington MA, 1990.
Sussman, Gerald Jay and Steele, Guy Lewis, Jr. Scheme: An interpreter for extended lambda calculus. MIT Artificial Intelligence Memo 349, Dec. 1975.
Stoy, Joseph E.
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
, MIT Press, Cambridge, 1977.
Texas Instruments, Inc. TI Scheme Language Reference Manual. Preliminary version 1.0, Nov. 1985.
Google Scholar References
Filinski, Andrzej. Representing Monads. In
Proceedings of the 1994 ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
, pp. 446–457.
Google Scholar Copyright information
© Kluwer Academic Publishers 1998