CS 541 Lecture -*- Outline -*- * Scheme Introduction ** advertisment for Scheme our vehicle for learning lambda calculus and functional programming similar to lambda calculus has lazy evaluation primitives useful for prototyping denotational semantic definitions gives full power of lambda abstraction (first-class functions) also has universal control structure (continuations) elegant dialect of LISP small (bring Common LISP manual and Scheme manual) active research language soon to be an IEEE Standard too good teaching language (used at MIT, Indiana, etc. for intro courses) excellent texts ** History 1957 FLPL system based on FORTRAN used for AI (list-processing) if-expressions 1958 McCarthy starts LISP implementation, based on recursion, if-expressions, list primitives 1960 McCarthy publishes universal LISP function (interpreter) made into interpreter on IBM 704 (LISP 1.5) dynamic scoping because of this interpreter 1975 Steele and Sussman describe lexically scoped dialect: Scheme 1978 Steele writes Scheme compiler (his *master's* thesis) 1984 Common LISP standard (statically scoped, modules, etc.)