If you notice any errors, please tell me.
Lecture Notes
Note: Some of these notes make use of color.
If your monitor and browser are capable of handling color, you should get
a heightened learning experience. If you do not have one or both facilities,
the notes should still be legible.
- Lecture 1: Studying Programming Languages (1/22/97)
- Lecture 2: Parsing (1/24/97))
- Lecture 3: Free and Bound Variables, Scope and Static
Distance (1/27/97)
Readings: Essentials, pages 55-75
- Lecture 4: A Syntactic Interpreter for LC (Behavior)
(1/29/97)
Readings: Essentials, chapter 4
- Lecture 5: A Meta Interpreter for LC (Meaning)
(1/29/97)
Readings: Essentials, chapter 5; Little,
chapter 10
- Lecture 6: Recursive Binding
(2/10/97)
Readings: Little, chapter 9; Felleisen's The
Why of Y
- Lecture 6 Supplement: Solving Recursive Definitions
(2/17/97)
- Lecture 7 Assignment and Mutability
(2/19/97)
- Lecture 8 Understanding Control
(2/24/97)
- Lecture 9: Eliminating Meta-Errors
(2/26/97)
- Lecture 9 Supplement:
Macros
(2/26/97)
- Lecture 10: Modeling Allocation Through State
(3/12/97)
- Lecture 11: Modeling State Through Allocation
(3/14/97)
- Lecture 12: What is a Type?
(3/17/97)
Readings: Essentials, chapter
13; C&W
- Lecture 13: Types and Safety (3/19/97)
- Lecture 14: Types and datatype
(3/24/97)
- Lecture 15: Polymorphism
(3/31/97)
- Lecture 16: Implicit Polymorphism
(4/4/97)
- Lecture 17: Types: The Three Final
Words
(4/11/97)
- Lecture 18: The Meaning of Function
Calls (4/14/96)
Readings: Essentials, chapter 8; Little,
chapter 9; S&F,
DVI,
PS
- Lecture 19: Explaining
letcc
and error
(4/16/96)
Readings: Essentials, chapter 9; Seasoned,
chapter 19; Art, chapters 16, 17
- Lecture 20: The True Meaning of
Function Calls
- Lecture 21: How to Eat Your Memory and
Have It, Too
Readings: Andrew Wright's survey
lecture on GC technologies (some terminology is different)
Resources
- Essentials
- Essentials of
Programming Languages by Friedman, Wand and Haynes
- Little
- The Little Schemer (née
LISPer) by Friedman and Felleisen
- Seasoned
- The Seasoned Schemer by Friedman
and Felleisen
- R4RS
- The
Revised^4 Report on Scheme
- Art
- Scheme and the Art of Programming by Springer and Friedman
- C&W
- Luca Cardelli and Peter Wegner, ``On Understanding Types, Data Abstraction
and Polymorphism'', ACM Computing Surveys, Vol. 17, No. 4, December
1985, pp. 471-522
- S&F
- Amr Sabry and Matthias Felleisen, ``Reasoning about Programs in Continuation-Passing
Style'', Lisp and Symbolic Computation, Vol. 6, 1992, pp. 289-360
- H,D&B
- Robert Hieb, R. Kent Dybvig and Carl Bruggeman, ``Representing Control
in the Presence of First-Class Continuations'', Proceedings of the ACM
SIGPLAN Conference on Programming Language Design and Implementation,
June 1990, pp. 66-77