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 and when 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.
icons link to review
questions, which should be completed before coming to class.
They are adapted from the “Check Your Understanding”
questions that appear every 10 pages or so in the text.
Click on the unit name to see my lecture notes.
| Unit | Topics | Reading and Review | Other Assignments (handed out or [where indicated] due) |
|---|---|---|---|
| Introduction | |||
| Tues. Sept. 2 | Introduction | PLP 1.0–1.5 | T0: administration (see Blackboard);
A0: Unix tools |
| Thur. Sept. 4 | Structure of a compiler | PLP 1.6–1.7
| T0 due; A1: comparing languages |
| Syntax | |||
| Tues. Sept. 9 | Review of scanning and BNF (DFA construction) | PLP 2.0–2.2;
CD 2.4.0–2.4.1
| T1 due |
| Thur. Sept. 11 | Top-down and bottom-up parsing, error recovery | PLP 2.3.0–2.3.1;
CD 2.3.4 (pp. 1–6)
| |
| Tues. Sept. 16 | Table-driven LL(1) parsing | PLP 2.3.2; 8.5–8.5.3 (for A2)
| A1 due last night; A2: LL(1) parsing and error recovery |
| Functional programming | |||
| Thur. Sept. 18 | Intro to Scheme | PLP 10.0–10.3
| T2 due |
| Tues. Sept. 23 | Evaluation order, higher-order functions | PLP 10.4–10.8
| |
| Semantics | |||
| Thur. Sept. 25 | Attribute grammars, action routines | PLP 4.0–4.5
| |
| Tues. Sept. 30 | Decorating a syntax tree | PLP 4.6–4.7, 14.0–14.3
| A2 due last night; A3: interpretation (written in Scheme) |
| Names | |||
| Thur. Oct. 2 | Binding time, scope rules | PLP 3.0–3.4
| T3 due |
| (Mon. Oct. 6 | Fall Break) | ||
| Tues. Oct. 7 | Binding rules, separate compilation | PLP 3.5–3.8;
CD 3.7
| |
| Scripting languages | |||
| Thur. Oct. 9 | Overview, Perl, Emacs Lisp | PLP 13.0–13.1, 13.2.4 (Perl), 13.2.5, 13.4.2, 13.4.3
| |
| Tues. Oct. 14 | Web scripting | PLP 13.3
| A3 due last night |
| Thur. Oct. 16 | Midterm Exam | A4: cross-indexer | |
| Control flow | |||
| Tues. Oct. 21 | Expressions, sequencing, and selection | PLP 6.0–6.4
| T4 due |
| Thur. Oct. 23 | Iteration and recursion | PLP 6.5–6.8
| |
| Types | |||
| Tues. Oct. 28 | Type systems, type checking | PLP 7.0–7.2
| |
| Thur. Oct. 30 | Records and arrays | PLP 7.3–7.4
| |
| Tues. Nov. 4 | pointers, references, and dynamic storage management
DON'T FORGET TO VOTE | PLP 7.7–7.8, 7.10–7.11
| |
| Concurrency | |||
| Thur. Nov. 6 | Threads and busy-wait synchronization (guest lecture by Rongrong Zhong; Prof. Scott out of town) | PLP 12.0–12.2.3, 12.3.0–12.3.1
| A4 due last night; A5: concurrency |
| Tues. Nov. 11 | Thread implementation, scheduler-based synchronization | PLP 8.6, 12.2.4, 12.3.2–12.3.3
| T5 due |
| Thur. Nov. 13 | Monitors, nonblocking synchronization | PLP 12.3.4-12.3.6, 12.5
| |
| Subroutines | |||
| Tues. Nov. 18 | Stack management | PLP 8.0–8.2
| |
| Thurs. Nov. 20 | Parameter passing, closures | PLP 8.3
| |
| Tues. Nov. 25 | exceptions, events | PLP 8.5.4, 8.7
(no review questions) | A5 due noon Wed. |
| (Thur. Nov. 27 | Thanksgiving) | ||
| Tues. Dec. 2 | Polymorphism | PLP 3.6.3 (review), 8.4, 9.4.4;
CD 7.2.4, 8.4.4
| A6: templates |
| Objects | |||
| Thur. Dec. 4 | Review and implementation
PLEASE be sure to fill out your on-line course evaluation. | PLP Chapter 9
| |
| Tues. Dec. 9 | Smalltalk; scripting objects | CD 9.6.1; PLP 13.4.4
| |
| Thur. Dec. 11 | End-term exam | ||
Back to the course home page
Last Change: 10 December 2008 /
