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, Sep 10 |
|
Lecture #2 (text) Tue, Sep 10 |
|
Lecture #3 (text) Tue, Sep 17 |
|
Lecture #4 (text) Tue, Sep 17 |
|
Lecture #5 (text) Tue, Sep 24 |
|
Lecture #6 (text) Tue, Sep 24 |
|
Lecture #7 (text) Tue, Oct 1 |
|
Lecture #8 (text) Tue, Oct 1 |
|
Lecture #9 (text) Tue, Oct 8 |
|
Lecture #10 (text) Tue, Oct 8 |
|
Lecture #11 (text) Tue, Oct 15 |
|
Lecture #12 (text) Tue, Oct 15 |
|
Lecture #13 (text) Tue, Oct 22 |
|
Lecture #14 (text) Tue, Oct 22 |
|
Lecture #15 (text) Tue, Oct 29 |
|
Lecture #16 (text) Tue, Oct 29 |
|
Lecture #17 (text) Tue, Nov 5 |
|
Lecture #18 (text) Tue, Nov 5 |
|
Lecture #19 (text) Tue, Nov 12 |
|
Lecture #20 (text) Tue, Nov 12 |
|
Lecture #21 (text) Tue, Nov 19 |
|
Lecture #22 (text) Tue, Nov 19 |
|
Lecture #23 (text) Tue, Nov 19 |
|
Lecture #24 (text) Tue, Nov 26 |
|
Lecture #25 (text) Tue, Nov 26 |
|
Lecture #26 (text) Tue, Nov 26 |
|
Lecture #27 (text) Tue, Dec 3 |
|
Lecture #28 (text) Tue, Dec 3 |
|
Lecture #29 (text) Tue, Dec 3 |
|
All notes (text) Tue, Dec 3 |
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?
Interpreters
- ae.rkt — The AE interpreter (Lecture #4)
- wae.rkt — The WAE interpreter (Lecture #6)
- flang.rkt — The Flang interpreter (Lecture #8)
- flang-env.rkt — The Flang interpreter, using environments (Lecture #10)
- 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 #15)
- toy.rkt — The TOY interpreter (Lecture #16)
- sloth.rkt — The SLOTH interpreter (Lecture #19)
- sloth-cached.rkt — A call-by-need version of the SLOTH interpreter (Lecture #20)
- mylang.rkt — A language that is built as an extension on top of Racket (Lecture #23)
- picky1.rkt — The Picky interpreter, verbose version (Lecture #24)
- picky2.rkt — The Picky interpreter, almost no explicit types (Lecture #25)
- picky3.rkt — The Picky interpreter, no explicit types (Lecture #25)
- web-base-library.rkt — Fake web interaction library (to be used with manual code CPS-ing examples) (Lecture #27)
- web-simple-language.rkt — Simulation of web interactions with a CPS converter (not an interpreter) (Lecture #28)
- cps-language.rkt — A language that is CPS-transformed (not an interpreter) (Lecture #28)
- continuation-based-web-library.rkt — Simulation of web interactions with Racket’s built-in continuation facility (Lecture #28)
- amb.rkt — The ambiguous operator and related utilities (Lecture #29)
- producer.rkt — An implementation of producer functions (Lecture #29)