15-411 Compiler Design
| Fall 2009 |
| Frank Pfenning |
| Lecture, TuTh 1:30-2:50, GHC 4102 |
| 12 units |
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.
Prerequisites: 15-213 Introduction to Computer Systems
- (11/21) The specifications for Lab 6 are now available.
- (11/5) Lab 5 on safe compilation
and basic optimizations has been posted to the subversion repository.
Test files and autolab handin will follow within then next few days.
Test cases are due Tue Nov 10, compilers
Tue Nov 17.
- (10/25) A clarification to Lab 4 on
the evaluation of assignment has been posted to the subversion repository.
- (10/16) Lab 4 on Structs and Arrays
has been released. Test cases are due Thu Oct 22,
compilers Thu Oct 29.
- (10/6) Notes to Lecture 6 on Calling
Conventions are now available.
- (10/2) Lab 3 on Functions has been
released. Test cases are due Thu Oct 8, compilers
Thu Oct 15. The reference compiler will be available
within the next day or two, with an announcement posted to the newsgroup.
- (10/1) Assignment 3 on Program Analysis
has been released. Due Thu Oct 8.
- (9/12) Lab 2 on Loops and Conditionals is
out. It is available in the subversion repository, and also
as a compressed tar file lab2.tgz.
The deadline for handin is Tue Sep 22, 23:59pm
for test cases and Tue Sep 29, 23:59pm for the
- (9/10) Test suite 1 for Lab 1 has been released in the svn repository.
Both suite 0 and suite 1 will be used to test your compilers.
- (9/4) Lecture notes for Lecture 2: Instruction
Selection are now available.
- (9/4) The lab is also available as a compressed tar file
lab1.tgz. If there are changes to the
lab, this file is unlikely to be updated in a timely manner.
The subversion repository is your authoritative source.
- (9/4) Java starter code for Lab 1 on Register Allocation is now available.
The next time you svn update in the lab1 directory, you should get
this starter code (thanks to Ruy Ley-Wild!).
- (9/3) A corrected version of the
x86-64 Machine-Level Programming overview
by Randy Bryant and Dave O'Hallaron is now available.
- (9/3) LaTeX source for Assignment 1
is now available, in case you want to typeset your answers.
- (9/2) Assignment 1 on
and Register Allocation is out, due Tue Sep 9, 1:30pm
(at the beginning of lecture).
- (9/2) Lab 1 on Register Allocation is out.
You can download the lab from the subversion repository from
the password that was emailed to you. Please email the instructor
in case of problems. The deadline for handin has been moved back
by one day (Wed Sep 9, 23:59pm for test files,
Wed Sep 16, 23:59pm for compilers).
- (9/2) Accounts on the Autolab server have been set up.
Important: Log in with the name of your team (which
will be some cheese) and the empty password the first time, then
choose a password to share with your partner. Always use your
team name for the Autolab server.
- (9/1) Lectures notes for Lecture 1: Overview
and Lecture 3: Register Allocation are now
- (8/31) Accounts on the lab machines
have been set up. Please follow the instructions to log
into the machines.
- (8/23) Website created.
- Prior instances of this course by this instructor:
|| TuTh 1:30-2:50, GHC 4102
Andrew W. Appel
Modern Compiler Implementation in ML
Cambridge University Press, 1998
ISBN 0-521-60764-7 (paperback)
|| 12 units
70% Labs, 30% Written assignments
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 for this class
Used only for tracking of grades
|| Frank Pfenning
|| fp@cs or x8-6343
|| GHC 9101
| Office Hours
|| Wed 11:00-12:00
| || Contact
|| Office Hours
| Ruy Ley-Wild || rleywild@cs
|| Tue 11:00-12:00
| Miguel Silva || miguels@cs
|| Thu 4:30-5:30
| Labs & Assignments
| Lab Machines