Class Notes
These are the class note files, each has a rendered HTML version as well as a text file version (which can be more convenient for reading off-line and for quick search and reference). Note that the last two entries in this list are special: one has all of the notes we covered in one file, and one has the notes we have yet to reach.
Lecture #1 (text) Tue, Jan 7 |
|
Lecture #2 (text) Tue, Jan 7 |
|
Lecture #3 (text) Tue, Jan 14 |
|
Lecture #4 (text) Tue, Jan 14 |
|
Lecture #5 (text) Tue, Jan 21 |
|
Lecture #6 (text) Tue, Jan 21 |
|
Lecture #7 (text) Tue, Jan 28 |
|
Lecture #8 (text) Tue, Jan 28 |
|
Lecture #9 (text) Tue, Feb 4 |
|
Lecture #10 (text) Tue, Feb 4 |
|
Lecture #11 (text) Tue, Feb 11 |
|
Lecture #12 (text) Tue, Feb 11 |
|
Lecture #13 (text) Tue, Feb 18 |
|
Lecture #14 (text) Tue, Feb 18 |
|
Lecture #15 (text) Tue, Feb 25 |
|
Lecture #16 (text) Tue, Feb 25 |
|
Lecture #17 (text) Tue, Feb 25 |
|
Lecture #18 (text) Tue, Mar 11 |
|
Lecture #19 (text) Tue, Mar 11 |
|
Lecture #20 (text) Tue, Mar 18 |
|
Lecture #21 (text) Tue, Mar 18 |
|
Lecture #22 (text) Tue, Mar 25 |
|
Lecture #23 (text) Tue, Mar 25 |
|
Lecture #24 (text) Tue, Apr 1 |
|
Lecture #25 (text) Tue, Apr 1 |
|
Lecture #26 (text) Tue, Apr 1 |
|
Lecture #27 (text) Tue, Apr 8 |
|
Lecture #28 (text) Tue, Apr 8 |
|
Lecture #29 (text) Tue, Apr 8 |
|
Lecture #30 (text) Tue, Apr 15 |
|
Lecture #31 (text) Tue, Apr 15 |
|
Lecture #32 (text) Tue, Apr 15 |
|
All notes (text) Tue, Apr 15 |
All class notes in a single file, convenient for searching through all of the material that we covered. |
Handouts
- Email and Piazza Policies: Guidelines for writing posts
- Style Guide: Guidelines for writing better code
- Tips: Useful tips for PL work
- FAQ: Common frequently asked questions
- #lang pl work vs Fundies: Work with #lang pl vs Fundies
- About PLQ: What are these PLQs?
- Debugging Macros: For the macro homework
Interpreters
- ae.rkt — The AE interpreter (Lecture #4)
- wae.rkt — The WAE interpreter (Lecture #5)
- flang.rkt — The Flang interpreter (Lecture #8)
- flang-env.rkt — The Flang interpreter, using environments (Lecture #11)
- church.rkt — Making Schlac into a practical language (not an interpreter) (Lecture #13)
- church-alternative.rkt — An alternative “Church” encoding: use lists to encode numbers (Lecture #13)
- flang-box.rkt — The FLANG-BOX interpreter (Lecture #16)
- toy.rkt — The TOY interpreter (Lecture #17)
- sloth.rkt — The SLOTH interpreter (Lecture #22)
- sloth-cached.rkt — A call-by-need version of the SLOTH interpreter (Lecture #22)
- mylang.rkt — A language that is built as an extension on top of Racket (Lecture #26)
- picky1.rkt — The Picky interpreter, verbose version (Lecture #27)
- picky2.rkt — The Picky interpreter, almost no explicit types (Lecture #27)
- picky3.rkt — The Picky interpreter, no explicit types (Lecture #28)
- web-base-library.rkt — Fake web interaction library (to be used with manual code CPS-ing examples) (Lecture #30)
- web-simple-language.rkt — Simulation of web interactions with a CPS converter (not an interpreter) (Lecture #31)
- cps-language.rkt — A language that is CPS-transformed (not an interpreter) (Lecture #31)
- continuation-based-web-library.rkt — Simulation of web interactions with Racket’s built-in continuation facility (Lecture #31)
- amb.rkt — The ambiguous operator and related utilities (Lecture #32)
- producer.rkt — An implementation of producer functions (Lecture #32)