Date | Topic (and notes, when available) | Homework | Reading For This Class |
Wed Jan 18 | Course Overview | ||
Mon Jan 23 |
History of PL
Functional Programming |
Required:
| |
Wed Jan 25 |
Functional Programming
Overview of Cool |
| Required: |
Mon Jan 30 | Lexical Analysis & Finite Automata (Part 1) |
Required:
| |
Wed Feb 01 | More Finite Automata (Part 2) |
| |
Mon Feb 06 | Context-Free Grammars, Parsing, Derivations, Ambiguity |
Required:
| |
Wed Feb 08 | Top-Down Parsing |
|
Required:
|
Mon Feb 13 | LR Parsing | (Start PA3 early; look at the Midterm schedule to see why.) |
Required:
|
Wed Feb 15 | LR Table Construction |
|
Required:
|
Mon Feb 20 | Midterm 1 (in class)
(1 hour 30 minutes if needed) | (Do not forget PA3.) | |
Wed Feb 22 | Code Generation (Part 1) |
|
Required:
|
Mon Feb 27 | Code Generation (Part 2) | Required for Compilers Only: | |
Wed Feb 29 | Scoping & Types |
|
Required:
|
Mon Mar 12 |
Type Checking & Static Semantics
Guest Lecture: Claire Le Goues |
Required:
| |
Wed Mar 14 | More Static Semantics |
Required:
| |
Mon Mar 19 | Cool Type Checking, Runtime Organization |
|
Required:
|
Wed Mar 21 | Operational Semantics |
|
Required:
|
Mon Mar 26 | Basic Blocks, Local Optimizations |
| Required: |
Wed Mar 28 | Dataflow Analysis, Global Optimizations | Required: Required for Compilers Only: | |
Mon Apr 02 | Automatic Memory Management |
|
Required:
|
Wed Apr 04 | Exceptions and Error Handling |
Required:
| |
Mon Apr 09 | Debuggers and Profilers |
| Required: |
Wed Apr 11 | Linking, Loading and Shared Libraries |
|
Required:
|
Mon Apr 16 | Language Security |
| Required: |
Wed Apr 18 |
Midterm 2 (in class)
(1 hour 30 minutes if needed) | ||
Mon Apr 23 | Internet Security | Required: | |
Wed Apr 25 | Introduction to Game Theory | Optional: | |
Mon Apr 30 | Quantum Computing, and/or Romance Novels | ||
Mon May 07 |
|