9/30/17 Two old midterms (from 2014 and 2015) are available for study purposes here. I have also included a solution key for the 2014 exam (but not for the 2015 exam). We did not cover DFA reduction this semester, so don't worry about those questions -- that topic will not be on the exam. LR(1) parsers will also not be on the exam (though LR(0) parsers will be!)

8/21/17 The course questionnaire is available here. You can sign up for the course's Piazza page here.

8/18/17 Webpage live!

Course Description

This course focuses on the tools and techniques needed to build an optimizing compiler. Topics include:

  • Scanning and parsing: determining the syntactic structure of a program
  • Semantic routines: determining the semantics of a program and building an intermediate representation
  • Code generation: emitting assembly code that is equivalent to the program
  • Program optimizations: improving the performance of a program
  • Program analysis: determining interesting information about a program's behavior

Course Details

The course syllabus covers most of the details of the course, including a tentative schedule, exam dates, etc. We will be using Piazza for online discussion of the lectures and assignments. If you have a question about a concept covered in lecture or about a detail of an assignment, check Piazza first!

Lecture Notes

Problem sets