15-411: Compiler Design (Fa'11)

15-411: Compiler Design (Fall 2011)
Instructor: André Platzer
(office hours Wed 1:00-2:00 in GHC 9103)
Teaching Assistants: Josiah Boning jboning@andrew
(office hours Fri 11:30-12:30, Sat 4:30-5:30 in GHC 3000)
Ryan Pearl rpearl@andrew
(office hours Tue 4:00-5:00 in GHC 6111)
Units: 12
Semester: Fall 2011
Time: Tue Thu 1:30-2:50
Place: WeH 5415
Questions: Ask newsgroup or ask course staff
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, 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
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.