W L Date Topic Required Reading Suggested Reading Note
12008-09-01Labor day (no lecture)
12008-09-03Course agenda, policies, recent developmentsIntroduction, Teaser
222008-09-08Parallel computers, shared memory consistencyShared Memory Consistency Models: A Tutorial (an identical, less readable, but more cited version)Slides
32008-09-10Introduction to compilers, scanning, parsingChapters 1, 2, 3
342008-09-15
52008-09-17Context-sensitive analysisChapter 4
462008-09-22Dependence analysisChapters 1, 2 of Allen and KennedyDependence Notes
72008-09-24
582008-09-29
92008-10-01
6102008-10-06Dependence testingOmega framework by Bill PughAllen and Kennedy Chapter 3Testing Notes
112008-10-08Intermediate representationChapter 5, SSA is functional programming
72008-10-13Midterm 1
122008-10-15Supporting control abstractions, procedures, OO featuresChapter 6; Sections 7.9, 7.10Rest of Chapter 7
8132008-10-20
142008-10-22
9152008-10-27Introduction to optimization, dataflow analysisChapter 8; Sections 9.1, 9.2Dataflow analysis frameworks, A Survey of Data Flow Analysis Techniques (Section 3.3)
162008-10-29
10172008-11-03SSAChapter 9, Efficiently computing SSA (up to Section 5)
182008-11-05
11192008-11-10
202008-11-12Potpourri of optimizationsChapter 10Survey paper by Bacon, et al.
12212008-11-17Dynamic languages
2008-11-19No lecture (attending SC08)
13222008-11-24Supporting OO features in dynamic languages
2008-11-25Midterm 2 (2:30 PM, Lindley 215D)
2008-11-26Thanksgiving break (no lecture)
14232008-12-01Optimizing dynamic languagesSmalltalk-80, SELF, Efficient interpretersAlt. SELF paper, Stack vs register VMsSlides
242008-12-03
152008-12-08Project presentations (11:00am-12:15pm, Lindley 101)
252008-12-08Recap, future of compilers, course evalsSlides
2008-12-10Last lecture canceled

Unless noted otherwise, chapter and section numbers refer to the chapters and sections from the textbook.

Overview of the schedule

  1. Introduction (1 lecture)
  2. Parallel Computers (1 lecture)
  3. Scanning and Parsing (1 lecture)
  4. Dataflow analysis and traditional optimizations (6 lectures)
  5. SSA—Static Single Assignment and its applications (3 lectures)
  6. Dependence analysis (4 lectures)
  7. Scripting languages, virtual machines (3 lectures)
  8. Handling Object-oriented and Dynamic Features (6 lectures)
  9. 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.