Date
| #
| Topic
| Homework Due
| Reading For The Next Class
|
Thu Aug 20 | |
No Lecture
|
Start PA1
|
No, really. Start PA1
|
Tue Aug 25 | 01 |
Course Overview
| | Chapters 10.1 - 10.3, 10.5 - 10.8
Joel Spolsky's The Perils
of JavaSchools (optional)
|
Thu Aug 27 | 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 Sep 01 | 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 Sep 02
| | | 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 Sep 03 | 04 |
Lexical Analysis & Finite Automata (Part 1)
| |
|
Tue Sep 08 | 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 Sep 09
| | | PA1 (Rosetta) Due
|
Thu Sep 10 | 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 Sep 15 | 07 |
Top-Down Parsing
| WA1 Due
| Chapter 2.3.3
Wikipedia's LR
Parsing (optional)
|
Wed Sep 16
| | | PA2 (Lexing) Due
|
Thu Sep 17 | 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 Sep 22 | 09 |
LR Table Construction
| WA2 Due
| Chapters 3.1 - 3.6
Wikipedia's Scope (programming) (optional)
|
Thu Sep 24 | 10 |
Scoping & Types
| | Chapters 4 - 4.1, 7 - 7.1
Luca Cardelli's Type
Systems (optional but recommended)
|
Tue Sep 29
| | Midterm 1 (in class)
| | (Wes at Stanford/Berkeley)
|
Wed Sep 30 | | | PA3 (Parsing) Due
|
Thu Oct 01
| 11 |
Type Checking & Static Semantics
| WA3 Due
| Chapter 7.2
Wikipedia's Type system (optional)
|
Sat Oct 03 | | Reading Days Begin
|
Tue Oct 06 | | Reading Days End
|
Thu Oct 08 | 12 |
More Static Semantics
| | Chapters 8.1 - 8.3
Chapter 6 of
Grant & Smith's Programming Languages (optional)
|
Tue Oct 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)
|
Wed Oct 14
| | |
WA4 (Semantics Checkpoint) Due (11:50pm)
|
Thu Oct 15 | 14 |
Operational Semantics
|
| Chapters 9.4 - 9.7
Wikipedia's Virtual method table (optional)
Wikipedia's Aspect-oriented programming (optional)
|
Tue Oct 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)
|
Thu Oct 22 | 16 |
Code Generation (Part 1)
|
|
USC CS 410 Lecture Notes: "Code
Generation for a Stack Machine" (optional)
|
Tue Oct 27 | 17 |
Code Generation (Part 2)
|
Wed Oct 28
| | | PA4 (Semantics) Due
|
Thu Oct 29 | 18 |
Basic Blocks, Local Optimizations
| WA5 Due
|
Wikipedia's Basic block and
Data-flow analysis
|
Tue Nov 03 | 19 |
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)
|
Thu Nov 05 | 20 |
Automatic Memory Management
also Daniel Lee
| WA6 Due
|
Chapter 8.5
|
Tue Nov 10 | 21 |
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.
|
Thu Nov 12 | 22 |
Debuggers and Profilers
| WA7 Due
|
Chapter 14.6, 14.7 (195 CD - 199 CD)
(one chapter in the book, one on the CD)
INST 1550-5: Social and Cultural Impacts
of Video Games Syllabus (optional; 2 credit pass/fail class in the
Spring)
|
Tue Nov 17 | 23 |
Linking, Loading and Shared Libraries
| |
Aleph One. Smashing The Stack For fun And
Profit. In Phrack 7(49):14, 1996.
Software Usability II by Tom
Davis (optional; a description of how software engineering (and shared
libaries, called "DSO"s) played out as
Silicon Graphics
was developing the
IRIX Operating System
for the
SGI Indy workstation)
|
Wed Nov 18 | |
Fireside Chat — Hazelwood and Weimer
5:00 - 6:00 pm, OLS 228e/236d
|
Thu Nov 19 |
24 |
Language Security
| WA8 Due
PA5 Checkpoint Due (hello-world.cl)
|
|
Tue Nov 24 |
|
Midterm 2 (in class)
(1 hour 30 minutes if needed)
| |
Ken Thompson.
Reflections on Trusting Trust. ACM Turing Award Speech.
(optional)
Wes at CREST, King's College London
|
Wed Nov 25 | | Thanksgiving Recess Begins
|
Sun Nov 29 | | Thanksgiving Recess Ends
|
Tue Dec 01 | 25 |
Internet Security
| |
|
Wed Dec 02
| | | PA5 (Compiler) Due
|
Thu Dec 03 | 26 |
Ranom Analyses
Quantum Computing I
|
Fri Dec 04 | |
PL Fencing
4:30pm, Darden Court
|
Tue Dec 08 | 27 |
Quantum Computing II Romance Novels
|
Wed Dec 09
| | | All Except Optimizer+Final Due at
Midnight
|
Sat Dec 12
| | | Optimizer (Extra Credit) Due at
Midnight
|
Mon Dec 14
| | | Final Exam Due At Noon
|
Students taking the course for three credits only (instead of a total of
five) should use the following due dates: