15-411: Compiler Design (Fa'10)

15-411: Compiler Design (Fall 2010)
Instructor: André Platzer
(office hours Wed 2:30-3:30 in GHC 9103)
Teaching Assistants: Nathaniel Snyder npsnyder@andrew
(office hours Mon 2-3 in Wean 5207)
Anand Subramanian asubrama@andrew
(office hours Tue 15:00-16:00 in WEH 5205/5207)
Units: 12
Semester: Fall 2010
Time: Tue, Thu 1:30-2:50
Place: GHC 4102
Discussions: 15-411@mailman.srv.cs
Questions: Ask newsgroup or ask course staff
Blackboard: blackboard (Used only for tracking of grades)
Autolab: Hand in lab solutions to autolab
This course is listed in Computer Science as 15-411 at Carnegie Mellon University
Questions
Newsgroup or
Course Staff
Compiler Architecture
DESCRIPTION:

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.

PREREQUISITES:
15-213 Introduction to Computer Systems
NEWS:
  • 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.
ISBN 978-0521607643
William M. Waite and Gerhard Goos.
Compiler Construction.
© 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.