This course covers the design and implementation of compiler and runtime systems for high-level languages, and examines the interaction between language design, compiler design, and runtime organization. Topics covered include lexical and syntactic analysis, type-checking, program analysis, code generation and optimization, memory management, and runtime organization.
Compilers and several parts of compiler technology are an important aspect in many systems built every day.
- 15-213 Introduction to Computer Systems
- 9/30/2010: Posted Lab 3 in svn.
- 9/28/2010: Posted Assignment 3.
- 9/14/2010: Posted Lab 2 in svn.
- 9/13/2010: Posted Assignment 2.
- 9/08/2010: No late handins of tests will be accepted for the labs, because that delays all other groups. Lab deadlines for compilers are firm and no late lab submissions will be accepted.
- 8/31/2010: Posted Assignment 1.
- 8/31/2010: Lab 1 updated in svn.
- 8/29/2010: Lab 1 available via svn.
- 8/29/2010: Updated Lab 1 in svn with SML, Haskell, Scala, Java starter code
- 8/27/2010: Posted Advice on learning new programming languages for the labs.
- 8/26/2010: Posted Lab 1. The final version of the lab code will be available via svn.
- TEXT: (optional)
Andrew W. Appel,
Modern Compiler Implementation in ML.
Cambridge University Press, 2004.
William M. Waite and Gerhard Goos.
© 1995 Springer.
© 1996 William M. Waite and Gerhard Goos.
The content of Compiler Construction is made available via the Web by permission of the authors as a service to the community and only for educational purposes.
- METHOD OF EVALUATION:
- Grading will be based on a set of homework assignments (30%) and labs (70%). There are 6 labs worth a total of 700 points. Labs can be done individually or in pairs. There are 5 written assignments worth a total of 300 points. Written assignments must be done individually. There will be no midterm or final exams.
- MORE INFORMATION:
- The course will follow a structure that is very similar to prior instances of this course by Frank Pfenning.