15-411: Compiler Design (Fa'12)

15-411: Compiler Design (Fall 2012)
Instructor: André Platzer
(office: Mon 1:30-2:30 GHC 9103)
Teaching Assistants: Alex Crichton acrichto@andrew
(office: Tue 5:00-6:00pm West Wing Cluster)
Ian Gillis igillis@andrew
(office: Mon 8:30-9:30pm West Wing Cluster)
Units: 12
Semester: Fall 2012
Time: Tue Thu 1:30-2:50
Place: GHC 4211
Questions: Ask newsgroup or ask course staff
Autolab: Hand in lab solutions to autolab
This course is listed in Computer Science as 15-411/15-611 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, semantic analysis, type-checking, program analysis, code generation and optimization, memory management, and runtime organization.

Compilers and principles of compiling are one fundamental core aspect of computer science. Compilers and several other parts of compiler technology (especially parsing, transformation, analysis, and optimization) play important roles in many systems built every day. The knowledge gained in this course should be broad enough that if you are confronted with the task of contributing to the implementation of a real compiler in the field or similar technology, you should be able to do so confidently and quickly.

PREREQUISITES:
15-213 Introduction to Computer Systems
Students are expected to have significant experience in a high-level programming language
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.