The following is my best guess as to the schedule for this fall.
I will do my best to keep it up to date if things change.
I encourage you to check back here on a regular basis.
PLP refers to the textbook.
CD refers to the accompanying compact disc.
Click on the unit name to see my lecture notes.
| Unit | Topics | Reading | Assignments (handed out or [where indicated] due) |
|---|---|---|---|
| Introduction | |||
| Thurs. Aug. 30 | Introduction | PLP 1.0–1.5 | T0: administration (see Blackboard);
A0: Unix tools |
| Tues. Sept. 4 | Structure of a compiler | PLP 1.6–1.7 | T0 due; A1: comparing languages |
| Syntax | |||
| Thur. Sept. 6 | Review of scanning and BNF (DFA construction) | PLP 2.0–2.2; CD 2.4.0–2.4.1 | T1 due |
| Tues. Sept. 11 | Top-down and bottom-up parsing, error recovery | PLP 2.3.0–2.3.1; CD 2.3.4 (pp. 1–6) | |
| Thur. Sept. 13 | Table-driven LL(1) parsing | PLP 2.3.2; CD 2.3.4 (pp. 10–12) (for A2) | A1 due tomorrow night; A2: syntax error recovery |
| Semantics | |||
| Tues. Sept. 18 | Attribute grammars, action routines | PLP 4.0–4.5 | T2 due |
| Thur. Sept. 20 | Decorating a syntax tree | PLP 4.6–4.7, 14.0–14.3 | |
| Functional programming | |||
| Tues. Sept. 25 | Intro to Haskell Guest lecture by Ryan Yates (Prof. Scott out of town) | TBA | |
| Thur. Sept. 27 | Evaluation order, higher-order functions Guest lecture by Ryan Yates (Prof. Scott out of town) | TBA | A2 due last night; A3: interpretation (in Haskell) |
| Names | |||
| Tues. Oct. 2 | Binding time, scope rules | PLP 3.0–3.4 | T3 due |
| Thur. Oct. 4 | Binding rules, separate compilation | PLP 3.5–3.9; CD 3.8 | |
| (Mon.–Tues. | Oct. 10–11 Fall Break) | ||
| Scripting languages | |||
| Thur. Oct. 11 | Overview, Perl | PLP 13.0–13.1, 13.2.4 (Perl), 13.4.2, 13.4.3 | |
| Tues. Oct. 16 | Web scripting | PLP 13.3 | A3 due last night |
| Thur. Oct. 18 | Midterm Exam | A4: cross-indexer | |
| Control flow | |||
| Tues. Oct. 23 | Expressions, sequencing, and selection | PLP 6.0–6.4 | T4 due |
| Thur. Oct. 25 | Iteration and recursion | PLP 6.5–6.8 | |
| Concurrency | |||
| Tues. Oct. 30 | Threads | PLP 12.0–12.2.3, 8.6, 12.2.4 | |
| Thur. Nov. 1 | Synchronization | PLP 12.3 | |
| Tues. Nov. 6 | Language mechanisms
DON'T FORGET TO VOTE | PLP 12.4–12.6 | |
| Types | |||
| Thur. Nov. 8 | Type systems, type checking | PLP 7.0–7.2 | A4 due last night; A5: concurrency (in Java) |
| Tues. Nov. 13 | Records and arrays | PLP 7.3–7.4 | T5 due |
| Thur. Nov. 15 | Pointers, references, and dynamic storage management | PLP 7.7–7.11 | |
| Tues. Nov. 20 | (catch up) | ||
| (Thur. Nov. 22 | Thanksgiving) | ||
| Tues. Nov. 27 | Polymorphism | PLP 3.5.3 (review), 8.4, 9.4.4; CD 7.2.4, 8.4.4 | |
| Subroutines | |||
| Thur. Nov. 29 | Stack management, parameter passing | PLP 8.0–8.3 | A5 due last night; A6: templates |
| Tues. Dec. 4 | Exceptions, events | PLP 8.5.3, 8.7 | T6 due |
| Objects | |||
| Thur. Dec. 6 | Review and implementation
PLEASE be sure to fill out your on-line course evaluation. | PLP Chapter 9 (skim all of it; read 9.4 carefully) | |
| Tues. Dec. 11 | Multiple inheritance; Smalltalk, scripting objects | CD 9.6.1; PLP 13.4.4 | |
| Fri. Dec. 14 | A6 due at 5pm. | ||
| Tues. Dec. 18 | Final exam, 7:15–10:15pm | ||
Back to the course home page
Last Change: 11 December 2012 /
