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 Proc. 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 Proc.  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 Proc. 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, 5(4):295–326, 1992.

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

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

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

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

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

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

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

@gcd 14xcvii

@hole 15l @hygienic 12ii

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

@keyword 8xv, 12iii

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

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

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

@#o 7xxxii, 7xxxiii @object 4xvii @odd? 14cliv @or 14clv

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

@quasiquote 14clxiv @quote 14clxv

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

@safe libraries 8xxiii @scalar value 14clxxxiii, 14clxxxiv @set! 14clxxxv @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 14clxxxvi @sin 14clxxxvii @special form 4xxiii @splicing 14clxxxviii @sqrt 14clxxxix @standard library 8xxiv @string 4xxiv @string 14cxc @string->list 14cxci @string->number 14cxcii, 14cxciii @string->symbol 14cxciv @string-append 14cxcv @string-copy 14cxcvi @string-for-each 14cxcvii @string-length 14cxcviii @string-ref 14cxcix @string<=? 14cc @string<? 14cci @string=? 14ccii @string>=? 14cciii @string>? 14cciv @string? 14ccv, 14ccvi @subform 4xxv, 7xxxiv @substring 14ccvii @surrogate 14ccviii @symbol 4xxvi, 7xxxv @symbol->string 14ccix @symbol=? 14ccx @symbol? 14ccxi, 14ccxii @syntactic abstraction 12xi @syntactic datum 4xxvii, 7xxxvi, 7xxxvii @syntactic keyword 4xxviii, 7xxxviii, 8xxv, 12xii @syntax violation 8xxvi @syntax-rules 14ccxiii

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

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

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

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

@#x 7xlii, 7xliii

@zero? 14ccxxxix