Date
| #
| Topic
| Homework Due
| Reading For The Next Class
|
Thu Jan 18 | 01 |
Course Overview
| | Chapters 10.1 - 10.3, 10.5 - 10.8
Joel Spolsky's The Perils
of JavaSchools (optional)
|
Tue Jan 23 | 02 |
History of PL
Functional Programming
| |
The Cool Reference Manual
J. W. Backus. Speedcoding. Journal of the ACM 1(1) pp. 4-6, 1954.
|
Thu Jan 25 | 03 |
Functional Programming
Overview of Cool
| | Chapters 2.1 - 2.2
Edsger Dijkstra. How do we tell truths that might hurt? EWD498, 1975. (optional)
|
Fri Jan 26 | | | 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)
|
Sun Jan 28 | | Engineering Drop Deadline
|
Tue Jan 30 | 04 |
Lexical Analysis & Finite Automata (Part 1)
| |
Chapters 2.4 - 2.4.1 (13 CD - 15 CD) (1 page in book + 3 pages on CD)
|
Wed Jan 31 | | Arts & Sciences Drop Deadline
|
Thu Feb 01 | 05 |
More Finite Automata (Part 2)
| | Chapters 2.3 - 2.3.2
Wikipedia's LL
Parsing (optional)
|
Fri Feb 02 | | | PA1 (Rosetta) Due
|
Tue Feb 06 | 06 |
Context-Free Grammars, Parsing, Derivations, Ambiguity
|
Thu Feb 08 | 07 |
Top-Down Parsing
| WA1 Due
| Chapter 2.3.3
Wikipedia's LR
Parsing (optional)
|
Fri Feb 09 | | | PA2 (Lexing) Due
|
Tue Feb 13 | 08 |
LR Parsing
| | Chapters 2.3.4 - 2.3.5,
2.4.2 - 2.4.3 (16 CD - 18 CD) (3 pages on CD)
|
Thu Feb 15 | 09 |
More LR Parsing
| WA2 Due
| Chapters 3.1 - 3.6
Wikipedia's Scope (programming) (optional)
|
Tue Feb 20 | 10 |
Scoping & Types
| | Chapters 4 - 4.1, 7 - 7.1
Luca Cardelli's Type
Systems (optional but recommended)
|
Thu Feb 22 | 11 |
Type Checking & Static Semantics
| WA3 Due
| Chapter 7.2
Wikipedia's Type system (optional)
|
|
Fri Feb 23 | | | PA3 (Parsing) Due
|
Tue Feb 27 | | Midterm 1 (in class)
|
Thu Mar 01 | 12 |
More Static Semantics
| | Chapters 8.1 - 8.3
Chapter 6 of
Grant & Smith's Programming Languages (optional)
|
Sat Mar 03 | | Spring Recess Begins
|
Sun Mar 11 | | Spring Recess Ends
|
Tue 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)
|
Thu Mar 15 | 14 |
Object-Oriented Programming
(PPT)
|
| Chapters 9.4 - 9.7
Wikipedia's Virtual method table (optional)
Wikipedia's Aspect-oriented programming (optional)
|
Fri Mar 16 | | |
WA4 (Semantics Checkpoint) Due (11:59pm)
|
Tue Mar 20 | 15 |
Aspect-Oriented Programming
| |
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 Mar 22 | 16 |
Cool Operational Semantics
| WA5 Due
|
Wikipedia's Basic block and
Data-flow analysis
|
Tue Mar 27 | 17 |
Basic Blocks, Local Optimizations
| |
|
Thu Mar 29 | 18 |
Dataflow Analysis, Global Optimizations
| WA6 Due
| Chapter 7.7
David F. Bacon, Perry Cheng, V. T.
Rajan. A unified theory of garbage collection. In OOPSLA, pp. 50-68, 2004. (optional)
|
Fri Mar 30 | | | PA4 (Semantics) Due
|
Tue Apr 03 | 19 |
Automatic Memory Management
| |
Chapter 8.5
|
Thu Apr 05 | 20 |
Exceptions and Error Handling
| WA7 Due
|
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 10 | 21 |
Debuggers and Profilers
|
Thu Apr 12 | |
Midterm 2 (in class)
| |
Chapter 14.6, 14.7 (195 CD - 199 CD)
(one chapter in the book, one on the CD)
|
Tue Apr 17 | 22 |
Linking, Loading and Shared Libraries
| |
Wikipedia's Design patterns (optional)
|
Thu Apr 19 | 23 |
Design Patterns
| WA8 Due
|
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)
|
Tue Apr 24 | 24 |
Language Security
| | (how much parallel programming background do we have?)
|
Thu Apr 26 | 25 |
CCured
|
Sat Apr 28 | | | PA5 (Interpreter) Due
|
Tue May 01 | 26 |
Concurrent Programming
|
Thu May 10 | |
Final Exam (in class 1400-1700 MEC 214)
|