References

[1]   J. W. Backus, F.L. Bauer, J.Green, C. Katz, J. McCarthy P. Naur, A. J. Perlis, H. Rutishauser, K. Samuelson, B. Vauquois J. H. Wegstein, A. van Wijngaarden, and M. Woodger. Revised report on the algorithmic language Algol 60. Communications of the ACM, 6(1):1–17, 1963.

[2]   Alan Bawden and Jonathan Rees. Syntactic closures. In ACM Conference on Lisp and Functional Programming, pages 86–95, Snowbird, Utah, 1988. ACM Press.

[3]   Scott Bradner. Key words for use in RFCs to indicate requirement levels. http://www.ietf.org/rfc/rfc2119.txt, March 1997. RFC 2119.

[4]   Robert G. Burger and R. Kent Dybvig. Printing floating-point numbers quickly and accurately. In Proceedings of the ACM SIGPLAN '96 Conference on Programming Language Design and Implementation, pages 108–116, Philadelphia, PA, USA, May 1996. ACM Press.

[5]   William Clinger. Proper tail recursion and space efficiency. In Keith Cooper, editor, Proceedings of the 1998 Conference on Programming Language Design and Implementation, pages 174–185, Montreal, Canada, June 1998. ACM Press. Volume 33(5) of SIGPLAN Notices.

[6]   William Clinger and Jonathan Rees. Macros that work. In Proceedings 1991 ACM SIGPLAN Symposium on Principles of Programming Languages, pages 155–162, Orlando, Florida, January 1991. ACM Press.

[7]   William D. Clinger. How to read floating point numbers accurately. In Proceedings Conference on Programming Language Design and Implementation '90, pages 92–101, White Plains, New York, USA, June 1990. ACM.

[8]   R. Kent Dybvig. Chez Scheme Version 7 User's Guide. Cadence Research Systems, 2005. http://www.scheme.com/csug7/.

[9]   R. Kent Dybvig, Robert Hieb, and Carl Bruggeman. Syntactic abstraction in Scheme. Lisp and Symbolic Computation, 1(1):53–75, 1988.

[10]   Matthias Felleisen and Matthew Flatt. Programming languages and lambda calculi. http://www.cs.utah.edu/plt/publications/pllc.pdf, 2003.

[11]   Matthew Flatt. PLT MzScheme: Language Manual. Rice University, University of Utah, July 2006. http://download.plt-scheme.org/doc/352/html/mzscheme/.

[12]   Daniel P. Friedman, Christopher Haynes, Eugene Kohlbecker, and Mitchell Wand. Scheme 84 interim reference manual. Indiana University, January 1985. Indiana University Computer Science Technical Report 153.

[13]   IEEE standard 754-1985. IEEE standard for binary floating-point arithmetic, 1985. Reprinted in SIGPLAN Notices, 22(2):9-25, 1987.

[14]   Richard Kelsey, William Clinger, and Jonathan Rees. Revised5 report on the algorithmic language Scheme. Higher-Order and Symbolic Computation, 11(1):7–105, 1998.

[15]   Eugene E. Kohlbecker, Daniel P. Friedman, Matthias Felleisen, and Bruce Duba. Hygienic macro expansion. In Proceedings of the 1986 ACM Conference on Lisp and Functional Programming, pages 151–161, 1986.

[16]   Eugene E. Kohlbecker Jr. Syntactic Extensions in the Programming Language Lisp. PhD thesis, Indiana University, August 1986.

[17]   Jacob Matthews and Robert Bruce Findler. An operational semantics for R5RS Scheme. In J. Michael Ashley and Michael Sperber, editors, Proceedings of the Sixth Workshop on Scheme and Functional Programming, pages 41–54, Tallin, Estonia, September 2005. Indiana University Technical Report TR619.

[18]   Jacob Matthews and Robert Bruce Findler. An operational semantics for Scheme. Journal of Functional Programming, 2007. From http://www.cambridge.org/journals/JFP/.

[19]   Jacob Matthews, Robert Bruce Findler, Matthew Flatt, and Matthias Felleisen. A visual environment for developing context-sensitive term rewriting systems. In Proceedings 15th Conference on Rewriting Techniques and Applications, Aachen, June 2004. Springer-Verlag.

[20]   MIT Department of Electrical Engineering and Computer Science. Scheme manual, seventh edition, September 1984.

[21]   Jonathan A. Rees, Norman I. Adams IV, and James R. Meehan. The T manual. Yale University Computer Science Department, fourth edition, January 1984.

[22]   Michael Sperber, R. Kent Dybvig, Matthew Flatt, and Anton van Straaten. Revised6 report on the algorithmic language Scheme (Non-Normative appendices). http://www.r6rs.org/, 2007.

[23]   Michael Sperber, R. Kent Dybvig, Matthew Flatt, and Anton van Straaten. Revised6 report on the algorithmic language Scheme (Rationale). http://www.r6rs.org/, 2007.

[24]   Michael Sperber, R. Kent Dybvig, Matthew Flatt, Anton van Straaten, Richard Kelsey, William Clinger, and Jonathan Rees. Revised6 report on the algorithmic language Scheme (Libraries). http://www.r6rs.org/, 2007.

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

[26]   Texas Instruments, Inc. TI Scheme Language Reference Manual, November 1985. Preliminary version 1.0.

[27]   The Unicode Consortium. The Unicode standard, version 5.0.0. defined by: The Unicode Standard, Version 5.0 (Boston, MA, Addison-Wesley, 2007. ISBN 0-321-48091-0), 2007.

[28]   William M. Waite and Gerhard Goos. Compiler Construction. Springer-Verlag, 1984.

[29]   Andrew Wright and Matthias Felleisen. A syntactic approach to type soundness. Information and Computation, 115(1):38–94, 1994. First appeared as Technical Report TR160, Rice University, 1991.

 

Index

Alphabetic index of definitions of concepts, keywords, and procedures

@ idxitem

@#,@ 7 @#\ 7ii @#| 7iii @& 9 @' 7iv @#' 7v @* 14 @* (formal semantics) 15, 15ii @+ 14ii @+ (formal semantics) 15iii, 15iv @,@ 7vi @, 7vii @#, 7viii @- 14iii, 14iv @- (formal semantics) 15v, 15vi, 15vii @-0.0 6 @... 14v, 14vi @/ 14vii, 14viii @/ (formal semantics) 15viii, 15ix, 15x, 15xi @; 7ix @#; 7x @< 14ix @<= 14x @= 14xi @=> 14xii @> 14xiii @>= 14xiv @_ 14xv, 14xvi @#` 7xi @` 7xii @|# 7xiii

@abs 14xvii @acos 14xviii @and 14xix @angle 14xx @append 14xxi @apply 14xxii @apply (formal semantics) 15xii, 15xiii, 15xiv, 15xv, 15xvi, 15xvii, 15xviii @argument checking 8 @asin 14xxiii @assert 14xxiv @assertion-violation 14xxv @assignment 4 @atan 14xxvi, 14xxvii

@#b 7xiv, 7xv @backquote 14xxviii @begin 14xxix, 14xxx @begin (formal semantics) 15xix, 15xx, 15xxi @begin0 (formal semantics) 15xxii, 15xxiii, 15xxiv, 15xxv, 15xxvi @binding 4ii, 8ii @binding construct 8iii @body 14xxxi @boolean 4iii @boolean=? 14xxxii @boolean? 14xxxiii, 14xxxiv @bound 8iv

@caar 14xxxv @cadr 14xxxvi @call 12 @call-with-current-continuation 14xxxvii @call-with-values 14xxxviii @call-with-values (formal semantics) 15xxvii, 15xxviii @call/cc 14xxxix @call/cc (formal semantics) 15xxix @car 14xl @car (formal semantics) 15xxx, 15xxxi @case 14xli @cdddar 14xlii @cddddr 14xliii @cdr 14xliv @cdr (formal semantics) 15xxxii, 15xxxiii @ceiling 14xlv @char->integer 14xlvi @char<=? 14xlvii @char<? 14xlviii @char=? 14xlix @char>=? 14l @char>? 14li @char? 14lii, 14liii @character 4iv @Characters 14liv @code point 14lv @comment 7xvi, 7xvii @complex? 14lvi @cond 14lvii @condition? (formal semantics) 15xxxiv, 15xxxv @cons 14lviii @cons (formal semantics) 15xxxvi @consi (formal semantics) 15xxxvii @constant 8v @continuable exception 8vi @continuation 4v @core form 13 @cos 14lix

@#d 7xviii @datum 7xix, 7xx @datum value 4vi, 7xxi @define 14lx, 14lxi @define-syntax 14lxii @definition 4vii, 8vii, 10, 14lxiii, 14lxiv, 14lxv @denominator 14lxvi @derived form 4viii @div 14lxvii @div-and-mod 14lxviii @div0 14lxix @div0-and-mod0 14lxx @dot (formal semantics) 15xxxviii, 15xxxix @dw (formal semantics) 15xl, 15xli @dynamic environment 8viii @dynamic extent 8ix @dynamic-wind 14lxxi @dynamic-wind (formal semantics) 15xlii, 15xliii, 15xliv

@#e 7xxii, 7xxiii @else 14lxxii, 14lxxiii @empty list 7xxiv, 14lxxiv, 14lxxv, 14lxxvi, 14lxxvii, 14lxxviii @eq? 14lxxix @equal? 14lxxx @equivalence predicate 14lxxxi @eqv? 14lxxxii @eqv? (formal semantics) 15xlv, 15xlvi, 15xlvii, 15xlviii, 15xlix @error 14lxxxiii @escape procedure 4ix, 14lxxxiv @escape sequence 7xxv @even? 14lxxxv @exact 6ii, 14lxxxvi @exact 14lxxxvii @exact-integer-sqrt 14lxxxviii @exact? 14lxxxix @exactness 6iii @exceptional situation 8x @exp 14xc @export 10ii @expression 4x, 10iii @expt 14xci @external representation 7xxvi

@#f 7xxvii, 14xcii @false 8xi @finite? 14xciii @fixnum 6iv @flonum 6v @floor 14xciv @for-each 14xcv @form 4xi, 7xxviii

@gcd 14xcvi

@hole 15l @hygienic 12ii

@#i 7xxix, 7xxx @identifier 4xii, 7xxxi, 7xxxii, 8xii @identifier-syntax 14xcvii @if 14xcviii, 14xcix @if (formal semantics) 15li, 15lii @imag-part 14c @immutable 8xiii @implementation restriction 6vi, 8xiv @import 10iv @import level 10v @improper list 14ci @inexact 6vii, 14cii @inexact 14ciii @inexact? 14civ @infinite? 14cv @infinity 6viii @instance 10vi @instantiation 10vii @integer object 6ix @integer->char 14cvi @integer-valued? 14cvii @integer? 14cviii

@keyword 8xv, 12iii

@lambda 14cix @lambda (formal semantics) 15liii, 15liv, 15lv, 15lvi, 15lvii, 15lviii, 15lix, 15lx @lcm 14cx @length 14cxi @let 14cxii, 14cxiii @let* 14cxiv @let*-values 14cxv @let-syntax 14cxvi @let-values 14cxvii @letrec 14cxviii @letrec (formal semantics) 15lxi @letrec* 14cxix @letrec* (formal semantics) 15lxii @letrec-syntax 14cxx @level 10viii @lexeme 7xxxiii @library 4xiii, 8xvi, 10ix @library 10x @list 4xiv @list 14cxxi @list (formal semantics) 15lxiii, 15lxiv @list->string 14cxxii @list->vector 14cxxiii @list-ref 14cxxiv @list-tail 14cxxv @list? 14cxxvi @literal 12iv @location 8xvii @log 14cxxvii, 14cxxviii

@macro 4xv, 12v @macro keyword 12vi @macro transformer 12vii, 14cxxix @macro use 12viii @magnitude 14cxxx @make-polar 14cxxxi @make-rectangular 14cxxxii @make-string 14cxxxiii, 14cxxxiv @make-vector 14cxxxv, 14cxxxvi @map 14cxxxvii @max 14cxxxviii @may 5 @min 14cxxxix @mod 14cxl @mod0 14cxli @must 5ii @must be 9ii @must not 5iii @mutable 8xviii

@NaN 6x @nan? 14cxlii @negative infinity 6xi @negative? 14cxliii @not 14cxliv @null (formal semantics) 15lxv, 15lxvi @null? 14cxlv, 14cxlvi @null? (formal semantics) 15lxvii, 15lxviii @number 4xvi, 6xii @number->string 14cxlvii, 14cxlviii, 14cxlix @number? 14cl, 14cli @numerator 14clii @numerical types 6xiii

@#o 7xxxiv, 7xxxv @object 4xvii @odd? 14cliii @or 14cliv

@pair 4xviii, 14clv @pair? 14clvi, 14clvii @pair? (formal semantics) 15lxix, 15lxx @pattern variable 14clviii @phase 10xi @positive infinity 6xiv @positive? 14clix @predicate 14clx @prefix notation 4xix @procedure 4xx, 4xxi @procedure call 4xxii, 12ix @procedure? 14clxi, 14clxii @procedure? (formal semantics) 15lxxi, 15lxxii @proper tail recursion 8xix

@quasiquote 14clxiii @quote 14clxiv

@raise 8xx @raise (formal semantics) 15lxxiii @raise-continuable (formal semantics) 15lxxiv @rational-valued? 14clxv @rational? 14clxvi @rationalize 14clxvii @real-part 14clxviii @real-valued? 14clxix @real? 14clxx @referentially transparent 12x @region 8xxi, 14clxxi, 14clxxii, 14clxxiii, 14clxxiv, 14clxxv, 14clxxvi, 14clxxvii, 14clxxviii @responsibility 8xxii @reverse 14clxxix @(rnrs base (6)) 14clxxx @round 14clxxxi

@safe libraries 8xxiii @scalar value 14clxxxii, 14clxxxiii @set! 14clxxxiv @set! (formal semantics) 15lxxv, 15lxxvi, 15lxxvii @set-car! (formal semantics) 15lxxviii, 15lxxix @set-cdr! (formal semantics) 15lxxx, 15lxxxi @should 5iv @should not 5v @simplest rational 14clxxxv @sin 14clxxxvi @special form 4xxiii @splicing 14clxxxvii @sqrt 14clxxxviii @standard library 8xxiv @string 4xxiv @string 14clxxxix @string->list 14cxc @string->number 14cxci, 14cxcii @string->symbol 14cxciii @string-append 14cxciv @string-copy 14cxcv @string-for-each 14cxcvi @string-length 14cxcvii @string-ref 14cxcviii @string<=? 14cxcix @string<? 14cc @string=? 14cci @string>=? 14ccii @string>? 14cciii @string? 14cciv, 14ccv @subform 4xxv, 7xxxvi @substring 14ccvi @surrogate 14ccvii @symbol 4xxvi, 7xxxvii @symbol->string 14ccviii @symbol=? 14ccix @symbol? 14ccx, 14ccxi @syntactic abstraction 12xi @syntactic datum 4xxvii, 7xxxviii, 7xxxix @syntactic keyword 4xxviii, 7xl, 8xxv, 12xii @syntax violation 8xxvi @syntax-rules 14ccxii

@#t 7xli, 14ccxiii @tail call 8xxvii, 14ccxiv @tail context 8xxviii @tan 14ccxv @throw (formal semantics) 15lxxxii @top-level program 4xxix, 8xxix, 11 @transformer 12xiii, 14ccxvi @true 8xxx, 14ccxvii, 14ccxviii @truncate 14ccxix @type 14ccxx

@unbound 8xxxi, 12xiv @Unicode 14ccxxi @Unicode scalar value 14ccxxii @unquote 14ccxxiii @unquote-splicing 14ccxxiv @unspecified behavior 8xxxii @unspecified values 8xxxiii

@valid indices 14ccxxv, 14ccxxvi @values 14ccxxvii @values (formal semantics) 15lxxxiii, 15lxxxiv, 15lxxxv, 15lxxxvi, 15lxxxvii, 15lxxxviii, 15lxxxix, 15xc, 15xci @variable 4xxx, 7xlii, 8xxxiv, 12xv @vector 4xxxi @vector 14ccxxviii @vector->list 14ccxxix @vector-fill! 14ccxxx @vector-for-each 14ccxxxi @vector-length 14ccxxxii @vector-map 14ccxxxiii @vector-ref 14ccxxxiv @vector-set! 14ccxxxv @vector? 14ccxxxvi, 14ccxxxvii @visit 10xii @visiting 10xiii

@Whitespace 7xliii @with-exception-handler (formal semantics) 15xcii, 15xciii, 15xciv, 15xcv

@#x 7xliv, 7xlv

@zero? 14ccxxxviii