W L Date Topic Required Reading Suggested Reading Note
112013-01-08Introduction, parallel computersChapter 1Why computer science does not matterSlides
22013-01-10
232013-01-15ScanningChapter 2Slides
42013-01-17Ruby reviewCode examples
352013-01-22ParsingChapter 3Slides
62013-01-24
472013-01-29Automatic parser generation
82013-01-31Context-sensitive analysisChapter 4Slides
592013-02-05
102013-02-07Intermediate representationChapter 5
6112013-02-12
122013-02-14Procedure abstractionChapter 6Using RubyWrite
CACM article on software development
Slides
7132013-02-19
142013-02-21
8152013-02-26Supporting OO featuresChapter 6Slides,
GCC VTables,
Code examples
162013-02-28
9172013-03-05Scoping and casting complexitiesVoufo's paper draftCode examples
182013-03-07Code generationLLVM assemblyChapter 7
102013-03-12Spring break (no lecture)
2013-03-14Spring break (no lecture)
112013-03-19Mid-term exam (open book and notes)
192013-03-21Garbage collectionGuest lecture (slides)
12202013-03-26Intro to optimizationChapter 8Slides
212013-03-28
13222013-04-02Data flow analysisChapter 9Acta Informatica paper,
JACM paper
232013-04-04
14242013-04-09Dependence analysisChapter 2 of Allen and KennedySlides
252013-04-11
15262013-04-16
272013-04-18
16282013-04-23SSA translation, other optimizations, recapChapter 10
(except Section 10.3)
Section 10.3, SSA paper
2013-04-25Project presentations
172013-05-02Final exam (open book and notes)

Unless noted otherwise, chapter and section numbers refer to the chapters and sections from the textbook. Some of the slides are in HTML, viewable in any standard browser. You must have Javascript enabled, which is usually enabled by default in most browsers. Navigate through the slides using arrow keys or PgUp and PgDn keys. You can toggle between slide-view and notes-view by pressing the key `t'. The slideshow should work on most modern browsers—it has been tested on Safari, Firefox, and Chrome.

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.