Skip to main content
Log in

Revised5 Report on the Algorithmic Language Scheme

  • Published:
Higher-Order and Symbolic Computation

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Abelson, Harold and Sussman, Gerald Jay with Sussman, Julie. Structure and Interpretation of Computer Programs, 2nd edition. MIT Press, Cambridge, 1996.

    Google Scholar 

  2. Bawden, Alan and Rees, Jonathan. Syntactic closures. In Proceedings of the ACM Symposium on Lisp and Functional Programming, 1988, pp. 86–95.

  3. 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.

  4. 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.

  5. 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 SIGPLAN Notices 25(6): 92–101, June 1990.

    Google Scholar 

  6. Clinger, William and Rees, Jonathan (Eds.). The revised4 report on the algorithmic language Scheme. ACM Lisp Pointers 4(3):1–55, 1991.

  7. Clinger, William and Rees, Jonathan. Macros that work. In Proceedings of the ACM Conference on Principles of Programming Languages, 1991, pp. 155–162.

  8. Clinger, William. Proper tail recursion and space efficiency. To appear in Proceedings of the ACMConference on Programming Language Design and Implementation, June 1998.

  9. Dybvig, R. Kent, Hieb, Robert, and Bruggeman, Carl. Syntactic abstraction in Scheme. Lisp and Symbolic Computation 5(4):295–326, 1993.

    Google Scholar 

  10. 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 [11].

  11. Friedman, D., Haynes, C., Kohlbecker, E., and Wand, M. Scheme 84 interim reference manual. Indiana University Computer Science Technical Report 153, Jan. 1985.

  12. IEEE Standard 754-1985. IEEE Standard for Binary Floating-Point Arithmetic. IEEE, New York, 1985.

  13. IEEE Standard 1178-1990. IEEE Standard for the Scheme Programming Language. IEEE, New York, 1991.

  14. Kohlbecker, Eugene E., Jr. Syntactic extensions in the programming language lisp. PhD thesis, Indiana University, Aug. 1986.

  15. 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.

  16. Landin, Peter. A correspondence between Algol 60 and Church's lambda notation: Part I. Communications of the ACM 8(2): 89–101, Feb. 1965.

    Google Scholar 

  17. MIT Department of Electrical Engineering and Computer Science. Scheme manual, 7th edition. Sept. 1984.

  18. Naur, Peter, et al. Revised report on the algorithmic language Algol 60. Communications of the ACM 6(1):1–17, Jan. 1963.

    Google Scholar 

  19. 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 12(1):248–256, ACM, Sept. 1981.

    Google Scholar 

  20. Pitman, Kent M. The revised MacLisp manual (Saturday evening edition). MIT Laboratory for Computer Science Technical Report 295, May 1983.

  21. 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.

  22. Rees, Jonathan A., Adams IV, Norman I, and Meehan, J.R. The T manual, 4th edition. Yale University Computer Science Department, Jan. 1984.

  23. Rees, Jonathan and Clinger, William (Eds.). The revised3 report on the algorithmic language Scheme, ACM SIGPLAN Notices 21(12):37–79, Dec. 1986.

  24. Reynolds, John. Definitional interpreters for higher order programming languages. ACM Conference Proceedings, pp. 717–740, ACM, 1972.

  25. Steele, Guy Lewis, Jr. and Sussman, Gerald Jay. The revised report on Scheme, a dialect of Lisp. MIT Artificial Intelligence Memo 452, Jan. 1978.

  26. Steele, Guy Lewis, Jr. Rabbit: A compiler for Scheme. MIT Artificial Intelligence Laboratory Technical Report 474, May 1978.

  27. Steele, Guy Lewis, Jr. Common Lisp: The Language, second edition. Digital Press, Burlington MA, 1990.

    Google Scholar 

  28. Sussman, Gerald Jay and Steele, Guy Lewis, Jr. Scheme: An interpreter for extended lambda calculus. MIT Artificial Intelligence Memo 349, Dec. 1975.

  29. Stoy, Joseph E. Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory, MIT Press, Cambridge, 1977.

    Google Scholar 

  30. Texas Instruments, Inc. TI Scheme Language Reference Manual. Preliminary version 1.0, Nov. 1985.

References

  1. Filinski, Andrzej. Representing Monads. In Proceedings of the 1994 ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 446–457.

Download references

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Abelson, H., Dybvig, R., Haynes, C. et al. Revised5 Report on the Algorithmic Language Scheme. Higher-Order and Symbolic Computation 11, 7–105 (1998). https://doi.org/10.1023/A:1010051815785

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1010051815785

Navigation