W | L | Date | Topic | Required Reading | Suggested Reading | Note |
---|---|---|---|---|---|---|
1 | 2008-09-01 | Labor day (no lecture) | ||||
1 | 2008-09-03 | Course agenda, policies, recent developments | Introduction, Teaser | |||
2 | 2 | 2008-09-08 | Parallel computers, shared memory consistency | Shared Memory Consistency Models: A Tutorial (an identical, less readable, but more cited version) | Slides | |
3 | 2008-09-10 | Introduction to compilers, scanning, parsing | Chapters 1, 2, 3 | |||
3 | 4 | 2008-09-15 | ||||
5 | 2008-09-17 | Context-sensitive analysis | Chapter 4 | |||
4 | 6 | 2008-09-22 | Dependence analysis | Chapters 1, 2 of Allen and Kennedy | Dependence Notes | |
7 | 2008-09-24 | |||||
5 | 8 | 2008-09-29 | ||||
9 | 2008-10-01 | |||||
6 | 10 | 2008-10-06 | Dependence testing | Omega framework by Bill Pugh | Allen and Kennedy Chapter 3 | Testing Notes |
11 | 2008-10-08 | Intermediate representation | Chapter 5, SSA is functional programming | |||
7 | 2008-10-13 | Midterm 1 | ||||
12 | 2008-10-15 | Supporting control abstractions, procedures, OO features | Chapter 6; Sections 7.9, 7.10 | Rest of Chapter 7 | ||
8 | 13 | 2008-10-20 | ||||
14 | 2008-10-22 | |||||
9 | 15 | 2008-10-27 | Introduction to optimization, dataflow analysis | Chapter 8; Sections 9.1, 9.2 | Dataflow analysis frameworks, A Survey of Data Flow Analysis Techniques (Section 3.3) | |
16 | 2008-10-29 | |||||
10 | 17 | 2008-11-03 | SSA | Chapter 9, Efficiently computing SSA (up to Section 5) | ||
18 | 2008-11-05 | |||||
11 | 19 | 2008-11-10 | ||||
20 | 2008-11-12 | Potpourri of optimizations | Chapter 10 | Survey paper by Bacon, et al. | ||
12 | 21 | 2008-11-17 | Dynamic languages | |||
2008-11-19 | No lecture (attending SC08) | |||||
13 | 22 | 2008-11-24 | Supporting OO features in dynamic languages | |||
2008-11-25 | Midterm 2 (2:30 PM, Lindley 215D) | |||||
2008-11-26 | Thanksgiving break (no lecture) | |||||
14 | 23 | 2008-12-01 | Optimizing dynamic languages | Smalltalk-80, SELF, Efficient interpreters | Alt. SELF paper, Stack vs register VMs | Slides |
24 | 2008-12-03 | |||||
15 | 2008-12-08 | Project presentations (11:00am-12:15pm, Lindley 101) | ||||
25 | 2008-12-08 | Recap, future of compilers, course evals | Slides | |||
2008-12-10 | Last lecture canceled |
Unless noted otherwise, chapter and section numbers refer to the chapters and sections from the textbook.
Overview of the schedule
- Introduction (1 lecture)
- Parallel Computers (1 lecture)
- Scanning and Parsing (1 lecture)
- Dataflow analysis and traditional optimizations (6 lectures)
- SSA—Static Single Assignment and its applications (3 lectures)
- Dependence analysis (4 lectures)
- Scripting languages, virtual machines (3 lectures)
- Handling Object-oriented and Dynamic Features (6 lectures)
- Advanced topics, such as compiling advanced language constructs, type inference, dynamic compilation, etc. (2 lectures)
Note: The number of lectures indicated in the parentheses are approximate and only provided to give you an idea of the extent of coverage of a particular topic. The actual number of lectures devoted to a topic may vary.