Date | Topic | Due | Readings |
---|---|---|---|
W 08/23/23 | Course Introduction | (None, first day) | |
M 08/28/23 | Overview of Python and Cool | Cool Reference Manual | |
W 08/30/23 | Lexical Analysis | PA1P (Python Implementation) Due | Dragon Book Ch 3; PL Pragmatics Ch 2.1 – 2.2 |
M 09/04/23 | Lexical Analysis Foundations and Lexer Generators | Flex Manual (especially in
Python's ply package) PL Pragmatics Ch 2.1-2.2 |
|
W 09/06/23 | Parsing Basics (Grammars) | PA1C (Cool implementation) Due | Dragon Book Ch 4.1, 4.2; PL Pragmatics Ch 2.3 |
M 09/11/23 | LL Parsing (This will likely be covered by Daniel Balasubramanian. Kevin's brother is getting married.) | Dragon Book Ch 4.3, 4.4; PL Pragmatics 2.3.1-2.3.4 |
|
W 09/13/23 | More Parsing (LR) | PA2 Due Friday 9/15 | PL Pragmatics Ch 4.8 |
M 09/18/23 | Parser Generators, exam review | Yacc or Bison Manual (especially Python's ply package) | |
W 09/20/23 | Midterm 1 | ||
M 09/25/23 | Types and Scoping | Dragon Book Ch 1.6.1, 1.6.2, 1.6.5, 1.6.6, 1.6.7; PL Pragmatics Ch 3.2.1-3.2.3, 3.6 |
|
W 09/27/23 | Intro to PA4, Types, Scoping
Typchecking example code |
||
M 10/02/23 | Type Checking | PA3 Due | Dragon Book Ch 6.5, PL Pragmatics 4.2, 4.3, 4.6 |
W 10/04/23 | Guest Lecture: National Security Administration GHIDRA team | This lecture will be remote. The Zoom link will be posted on the Piazza. | Attendance is required, either in class (I will project their presentation) or remote. |
M 10/09/23 | More Type Checking | Dragon Book Ch 6, 6.5; PL Pragmatics Ch 4.2, 4.3, 4.6 |
|
W 10/11/23 | Program and Runtime Organization | Dragon Book Ch 6.4, 6.6 | |
M 10/16/23 | Intermediate Representations | Dragon Book Ch 6.9, 8.2, 8.6 PL Pragmatics Ch 5.2, 5.4, 5.6, 9.4, 9.5 |
|
W 10/18/23 | Dataflow Analysis | Dragon Book Ch 9.2, 9.3 | |
M 10/23/23 | Control Flow Graphs, Dataflow analysis | Dragon Book Ch 9.2, 9.3 | |
W 10/25/23 | Exam 2 Review | PA4 Due | |
M 10/30/23 | Midterm 2 | ||
W 11/01/23 | PA5 - Code Generation, Stack discipline, Object Layout | Dragon Book Ch 7.1, 7.2, 7.4, 8.3, 8.4, 8.6; PL Pragmatics 14.1.1, 14.2, 14.3.1 |
|
M 11/06/23 | Object Layout, Stack Disciplines | ||
W 11/08/23 | Garbage Collection | Dragon Book Ch. 7.5, 7.6 PL Pragmatics Ch 14.6, 14.7 |
|
M 11/13/23 | Memory Hierarchy, Register Allocation | PL Pragmatics Ch 15.3.2 | |
W 11/15/23 | Linking/Loading | I recommend completing PA5 at this date, for a "hello, world." program. | |
M 11/20/23 | Thanksgiving Break | ||
W 11/22/23 | Thanksgiving Break | ||
M 11/27/23 | Optimizations | Wikipedia's
article on Basic Blocks; Wikipedia's article on Dataflow analysis |
|
W 11/29/23 | Optimizations (2) | ||
M 12/04/23 | Bonus lecture: career development and failure | ||
W 12/06/23 | Exam Review | PA5 Due There are no extensions or late days for PA5 | |
F 12/15/23 | 9AM-12PM Final Exam | Absolutely all course material must be turned in. |