Date
| #
| Topic
| Homework Due
| Reading For The Next Class
|
Thu Jan 17 | |
No Lecture
|
Start PA1
|
No, really. Start PA1
|
Tue Jan 22 | 01 |
Course Overview
| | Chapters 10.1 - 10.3, 10.5 - 10.8
Joel Spolsky's The Perils
of JavaSchools (optional)
|
Thu Jan 24 | 02 |
History of PL
Functional Programming
| |
The Cool Reference Manual
J. W. Backus. Speedcoding. Journal of the ACM 1(1) pp. 4-6, 1954.
|
Tue Jan 29 | 03 |
Functional Programming
Overview of Cool
| | Chapters 2.1 - 2.2
Edsger Dijkstra. How do we tell truths that might hurt? EWD498, 1975. (optional)
|
Wed Jan 30
| | | PA0 (Rosetta) Due
|
P. J. Landin. The next 700
programming languages. Communications of the ACM 9(3) pp. 157-166,
1966. (very optional, about functional programming)
|
Thu Jan 31 | 04 |
Lexical Analysis & Finite Automata (Part 1)
| |
|
Tue Feb 05 | 05 |
More Finite Automata (Part 2)
|
|
Chapters 2.4 - 2.4.1 (13 CD - 15 CD) (1 page in book + 3 pages on CD)
|
Wed Feb 06
| | | PA1 (Rosetta) Due
|
Thu Feb 07 | 06 |
Context-Free Grammars, Parsing, Derivations, Ambiguity
|
|
Chapters 2.3 - 2.3.2
Wikipedia's LL
Parsing (optional)
Mike Clark's Removing Left
Recursion (optional)
Robert Ball's First Sets, Follow
Setes and LL(1) Tables (optional)
|
Tue Feb 12 | 07 |
Top-Down Parsing
| WA1 Due
| Chapter 2.3.3
Wikipedia's LR
Parsing (optional)
|
Wed Feb 13
| | | PA2 (Lexing) Due
|
Thu Feb 14 | 08 |
LR Parsing
| | Chapters 2.3.4 - 2.3.5,
2.4.2 - 2.4.3 (16 CD - 18 CD) (3 pages on CD)
|
Tue Feb 19 | 09 |
LR Table Construction
| WA2 Due
| Chapters 3.1 - 3.6
Wikipedia's Scope (programming) (optional)
|
Thu Feb 21 | 10 |
Scoping & Types
| | Chapters 4 - 4.1, 7 - 7.1
Luca Cardelli's Type
Systems (optional but recommended)
|
Tue Feb 26 | 11 |
Type Checking & Static Semantics
| WA3 Due
| Chapter 7.2
Wikipedia's Type system (optional)
|
Wed Feb 27
| | | PA3 (Parsing) Due
|
Thu Feb 28
| | Midterm 1 (in class)
|
Sat Mar 01 | | Spring Recess Begins
|
Sun Mar 09 | | Spring Recess Ends
|
Tue Mar 11 | 12 |
More Static Semantics
| | Chapters 8.1 - 8.3
Chapter 6 of
Grant & Smith's Programming Languages (optional)
|
Thu Mar 13 | 13 |
Cool Type Checking, Runtime Organization
| | Chapters 7.3, 9 - 9.3
Bjarne Stroustrup. What is "Object-Oriented Programming"?. 1991
Wikipedia's Object-oriented programming (optional)
|
Tue Mar 18 | 14 |
Operational Semantics
|
| Chapters 9.4 - 9.7
Wikipedia's Virtual method table (optional)
Wikipedia's Aspect-oriented programming (optional)
|
Wed Mar 19
| | |
WA4 (Semantics Checkpoint) Due (11:50pm)
|
Thu Mar 20 | 15 |
Introduction to Game Theory
| |
The Cool Reference Manual,
Chapters 2 - 2.2.2 of
Grant & Smith's Programming Languages
Chapters 2.3 - 2.4.4 of
Grant & Smith's Programming Languages (optional)
|
Tue Mar 25 | 16 |
Basic Blocks, Local Optimizations
| WA5 Due
|
Wikipedia's Basic block and
Data-flow analysis
|
Wed Mar 26
| | | PA4 (Semantics) Due
|
Thu Mar 27 | 17 |
Dataflow Analysis, Global Optimizations
|
|
Chapter 7.7
David F. Bacon, Perry Cheng, V. T.
Rajan. A unified theory of garbage collection. In OOPSLA, pp. 50-68, 2004. (optional)
|
Tue Apr 01 | 18 |
Automatic Memory Management
| WA6 Due
|
Chapter 8.5
|
Thu Apr 03 | 19 |
Exceptions and Error Handling
| |
Susan L. Graham, Peter B. Kessler,
Marshall K. McKusick. gprof: a call graph execution
profiler. In Best of PLDI 1979-1999, pp. 49-57, 2004.
|
Tue Apr 08 | 20 |
Debuggers and Profilers
| WA7 Due
|
Chapter 14.6, 14.7 (195 CD - 199 CD)
(one chapter in the book, one on the CD)
|
Thu Apr 10 | 21 |
Linking, Loading and Shared Libraries
| |
|
Tue Apr 15 | |
Midterm 2 (in class)
| |
Aleph One. Smashing The Stack For fun And
Profit. In Phrack 7(49):14, 1996.
Ken Thompson.
Reflections on Trusting Trust. ACM Turing Award Speech.
(optional)
|
Thu Apr 17 | 22 |
Language Security
| WA8 Due
|
|
Tue Apr 22 | 23 |
Internet Security
| |
|
Wed Apr 23
| | | PA5 (Interpreter) Due
|
Thu Apr 24 | 24 |
Security Analyses
|
Tue Apr 29 | 25 |
Quantum Computing Romance Novels
|
Sat May 3 | |
Final Exam: 9am - Noon
|
(list of exam topics)
|