Date | Lecture Topic | Lecture Notes | Due | Extras |
9/8 | Overview; Introduction to Scheme |
Modeling Languages
|
|
Scheme programming overview shapes datatypes code
|
9/15 | Functions as values, Substitution, Adding Functions to the Language |
Substitution
|
hwk 1 (option 1) hwk 1 - macros (option 2)
|
quicksort, map, filter code
|
9/22 | Caching Substitution, Scoping, and Meta-Interpreters |
First-Class Functions Caching Substitution Meta Interpreters
|
hwk 2
|
|
9/29 | Recursion and Mutation |
Understanding Recursion Implementing Recursion Mutation
|
hwk 3
|
The Meta-Interpreter for Set
|
10/6 | Web Programming, Exceptions and Contexts |
Web programming notes Web programming slides Overview of Exceptions Contexts and let/cc Exceptions with let/cc Implementing Exceptions
|
hwk 4
|
|
10/13 | Continuations |
Continuations Notes on CPS Examples of CPS
|
hwk 5
|
|
10/20 | NO CLASS (term break and prof away) |
|
|
|
10/27 | Compilation |
Compilation Notes Implementing Continuations
|
hwk 6 Midterm Exam
|
Programs from the Notes
|
11/3 | Semantics and Lambda Calculus |
Lambda Calculus
|
|
|
11/10 | Garbage Collection I |
Bridging Compilers to GC Paul Wilson's GC survey: sections 1, 2 (except 2.5)
|
hwk7
|
filter-pos with constant memory space
|
11/17 | Garbage Collection II |
Wilson's survey: sections 4.1, 4.5, 4.6 (scan), 6.1, 6.2, 7.1, 7.2, 9
|
|
conservative collection for C++
|
11/24 | Introduction to Types |
Intro to Types notes
|
hwk8
|
|
12/1 | Types II -- Type Inference |
Explicit Polymorphism Type Constraints Type Inference
|
|
extra inference exercise (with solution)
|
12/8 | No Class |
|
|
|
12/15 | Types III, Wrap Up, and Course Evals |
|
hwk 9 Final Exam
|
|