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.
CS refers to the companion site.
Click on the unit name to see my lecture notes.
Unit | Topics | Reading (to be completed before class) | Assignments (handed out or [where indicated] due) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Introduction | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wed. Aug. 31 | Introduction | PLP 1.0–1.5 | T0:
administration;
A0: Unix tools | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(Mon. Sep. 5 Labor Day) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wed. Sep. 7 | Structure of a compiler | PLP 1.6–1.7 | T0 due; Q1
due; A1: comparing languages; T1 due Friday evening | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Syntax | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mon. Sep. 12 | Review of scanning and BNF | PLP 2.0–2.2; CS 2.4.0–2.4.1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wed. Sep. 14 | Top-down and bottom-up parsing; recursive descent | PLP 2.3.0–2.3.2; CS 2.3.5 (pp. 1–6) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mon. Sep. 19 | Error recovery, table-driven LL(1) parsing | PLP 2.3.3; CS 2.3.5 (except pp. 10–12) | Q2 due | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Semantics | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wed. Sep. 21 | Static analysis, action routines | PLP 4.0–4.5 |
A1 due last night; A2: syntax error recovery; T2 due Friday evening | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mon. Sep. 26 | Decorating a syntax tree | PLP 4.6–4.7 | Q3 due | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Functional programming | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wed. Sep. 28 | Intro to OCaml | PLP 11.0–11.2, 7.2.4, 8.6, 11.4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mon. Oct. 3 | Evaluation order, higher-order functions | PLP 11.5–11.6, 11.8–11.9 | Q4 due | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Names | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wed. Oct. 5 | Binding time, scope rules | PLP 3.0–3.4 | A2 due Friday noon | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(Mon. Oct. 10 Fall Break) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wed. Oct. 12 | Binding rules, separate compilation | PLP 3.5–3.9; CS 3.8 | Q5 due; A3: translation (in OCaml); T3 due Friday evening | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Control flow | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mon. Oct. 17 | Expressions, sequencing, and selection | PLP 6.0–6.4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wed. Oct. 19 | Iteration and recursion No class today. (Prof. Scott out of town). Please watch the two recorded lectures at right instead. | PLP 6.5–6.8 Lecture on iteration Lecture on iterators | Q6 due | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Concurrency | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mon. Oct. 24 | Threads | PLP 13.0–13.2.3, 9.5, 13.2.4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wed. Oct. 26 | Synchronization | PLP 13.3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mon. Oct. 31 | Midterm review | A3 due last night; Q7 due | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wed. Nov. 2 | Midterm Exam (in class) | A4: concurrency (in Java); T4 due Friday evening | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mon. Nov. 7 | Language mechanisms
US citizens: Don't forget to vote tomorrow | PLP 13.4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Type Systems | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wed. Nov. 9 | Type systems, type checking | PLP 7.0–7.2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mon. Nov. 14 | Polymorphism/Generics | PLP 7.3–7.5; CS 7.3.2 | Q8 due | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Composite Types
Wed. Nov. 16
| Records and arrays
| PLP 8.0–8.4
|
|
Mon. Nov. 21
| Pointers, references, and dynamic storage management
| PLP 8.5
|
|
Scripting languages
|
Wed. Nov. 23
| Overview, Perl
| PLP 14.0–14.1, 14.2.4 (Perl), 14.4.2, 14.4.3
| A4 due at noon | Q9 due
| (Thur. Nov. 24 Thanksgiving)
|
Subroutines
|
Mon. Nov. 28
| Stack management, parameter passing
| PLP 9.0–9.3
|
A5: Disassembler
|
Wed. Nov. 30
| Exceptions, events
| PLP 9.4.3, 9.6
| Q10 due; | T5 due
Code generation
and run-time systems
|
Mon. Dec. 5
| Code generation, assembly
| PLEASE be sure to fill out your on-line course evaluation. Visit Blackboard; click on “Student Access”; then click “Course Evaluations” in the side menu. Surveys close on Dec. 16. PLP 15.0–15.3, 15.5
|
|
Wed. Dec. 7
| Linking; the JVM
| PLP 15.6, 16.1.1
| Q11 due
|
Objects
|
Mon. Dec. 12
| Review and implementation
| PLP 10.1–10.6.1
(skim all of it; | read 10.4 and 10.5 carefully)
|
Wed. Dec. 14
| Last day of class. Final exam prep.
Perhaps an extra topic?
| (no reading assigned)
| A5 due Friday night
|
Tue. Dec. 20
| Final exam, 12:30–3:30pm
|
|
| |
Last Change: 15 August 2023 /