Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary. Scheme demonstrates that a very small number of rules for forming expressions, with no restrictions on how they are composed, are enough to form a practical and efficient programming language that is flexible enough to support most of the major programming paradigms in use today. This book contains the three parts comprising 'R6RS', the sixth revision of a series of reports describing the programming language Scheme. The book is divided into parts: a description of the language itself, a description of the standard libraries and non-normative appendices. Early chapters introduce Scheme and later chapters act as a reference manual. This is an important report for programmers that work with or want to learn about the Scheme language.
Cited By
- Flatt M, Derici C, Dybvig R, Keep A, Massaccesi G, Spall S, Tobin-Hochstadt S and Zeppieri J (2019). Rebuilding racket on chez scheme (experience report), Proceedings of the ACM on Programming Languages, 3:ICFP, (1-15), Online publication date: 26-Jul-2019.
- Lee J, Kim Y, Song Y, Hur C, Das S, Majnemer D, Regehr J and Lopes N (2017). Taming undefined behavior in LLVM, ACM SIGPLAN Notices, 52:6, (633-647), Online publication date: 14-Sep-2017.
- Lee J, Kim Y, Song Y, Hur C, Das S, Majnemer D, Regehr J and Lopes N Taming undefined behavior in LLVM Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, (633-647)
- Serrano A and Hage J Lightweight soundness for towers of language extensions Proceedings of the 2017 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, (23-34)
- Adams M (2015). Towards the Essence of Hygiene, ACM SIGPLAN Notices, 50:1, (457-469), Online publication date: 11-May-2015.
- Pombrio J and Krishnamurthi S (2015). Hygienic resugaring of compositional desugaring, ACM SIGPLAN Notices, 50:9, (75-87), Online publication date: 18-Dec-2015.
- Pombrio J and Krishnamurthi S Hygienic resugaring of compositional desugaring Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming, (75-87)
- Bauman S, Bolz C, Hirschfeld R, Kirilichev V, Pape T, Siek J and Tobin-Hochstadt S (2015). Pycket: a tracing JIT for a functional language, ACM SIGPLAN Notices, 50:9, (22-34), Online publication date: 18-Dec-2015.
- Bauman S, Bolz C, Hirschfeld R, Kirilichev V, Pape T, Siek J and Tobin-Hochstadt S Pycket: a tracing JIT for a functional language Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming, (22-34)
- Adams M Towards the Essence of Hygiene Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (457-469)
- Flatt M (2013). Submodules in racket, ACM SIGPLAN Notices, 49:3, (13-22), Online publication date: 5-Mar-2014.
- Rafkind J and Flatt M (2012). Honu, ACM SIGPLAN Notices, 48:3, (122-131), Online publication date: 10-Apr-2013.
- Flatt M Submodules in racket Proceedings of the 12th international conference on Generative programming: concepts & experiences, (13-22)
- Jensen S, Jonsson P and Møller A Remedying the eval that men do Proceedings of the 2012 International Symposium on Software Testing and Analysis, (34-44)
- Rafkind J and Flatt M Honu Proceedings of the 11th International Conference on Generative Programming and Component Engineering, (122-131)
- Klein C, Flatt M and Findler R (2012). The Racket virtual machine and randomized testing, Higher-Order and Symbolic Computation, 25:2-4, (209-253), Online publication date: 1-Dec-2012.
- Atkinson K, Flatt M and Lindstrom G (2010). ABI compatibility through a customizable language, ACM SIGPLAN Notices, 46:2, (147-156), Online publication date: 26-Jan-2011.
- Van Horn D and Might M (2011). Abstracting abstract machines, Communications of the ACM, 54:9, (101-109), Online publication date: 1-Sep-2011.
- Yoo D, Schanzer E, Krishnamurthi S and Fisler K WeScheme Proceedings of the 16th annual joint conference on Innovation and technology in computer science education, (163-167)
- Vardoulakis D and Shivers O (2011). Pushdown flow analysis of first-class control, ACM SIGPLAN Notices, 46:9, (69-80), Online publication date: 18-Sep-2011.
- Vardoulakis D and Shivers O Pushdown flow analysis of first-class control Proceedings of the 16th ACM SIGPLAN international conference on Functional programming, (69-80)
- Klein C, McCarthy J, Jaconette S and Findler R A semantics for context-sensitive reduction semantics Proceedings of the 9th Asian conference on Programming Languages and Systems, (369-383)
- Atkinson K, Flatt M and Lindstrom G ABI compatibility through a customizable language Proceedings of the ninth international conference on Generative programming and component engineering, (147-156)
- Herzeel C and Costanza P Dynamic parallelization of recursive code Proceedings of the ACM international conference on Object oriented programming systems languages and applications, (377-396)
- Herzeel C and Costanza P (2010). Dynamic parallelization of recursive code, ACM SIGPLAN Notices, 45:10, (377-396), Online publication date: 17-Oct-2010.
- Sperber M, Dybvig R, Flatt M, Van straaten A, Findler R and Matthews J (2009). Revised6 report on the algorithmic language scheme, Journal of Functional Programming, 19:S1, (1-301), Online publication date: 1-Aug-2009.
- Danvy O Towards compatible and interderivable semantic specifications for the scheme programming language, part I Semantics and algebraic specification, (162-185)
- Adams M and Dybvig R (2008). Efficient nondestructive equality checking for trees and graphs, ACM SIGPLAN Notices, 43:9, (179-188), Online publication date: 27-Sep-2008.
- Adams M and Dybvig R Efficient nondestructive equality checking for trees and graphs Proceedings of the 13th ACM SIGPLAN international conference on Functional programming, (179-188)
- Bieniusa A, Degen M, Heidegger P, Thiemann P, Wehr S, Gasbichler M, Sperber M, Crestani M, Klaeren H and Knauel E Htdp and dmda in the battlefield Proceedings of the 2008 international workshop on Functional and declarative programming in education, (1-12)
- Clinger W Scheme@33 Celebrating the 50th Anniversary of Lisp, (1-5)
- Avanzini M and Moser G Complexity analysis by rewriting Proceedings of the 9th international conference on Functional and logic programming, (130-146)
Index Terms
- Revised [6] Report on the Algorithmic Language Scheme
Recommendations
Revised Report on the Algorithmic Language Scheme
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 ...
Revised6 report on the algorithmic language scheme
Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary. Scheme demonstrates that a very small number of rules for forming ...
Revised4 report on the algorithmic language scheme
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 ...