Advanced Compilers : Spring 2005
This course assumes that you have taken a prior compiler course. You should
be familiar with the following:
Structure of a typical compiler (Front end, back end)
Regular Expressions
Finite Automata
Context-Free Languages
Push-Down Automata
LR(k) bottom-up parsing of Context-Free Languages
In addition, you should know how to use the tools
lex - lexical analyzer generator
yacc - LR(1) parser generator
(or equivalents such as flex and bison).
The course will focus on source code analysis and optimization, and
the generation of intermediate and executable code.
There will be one takehome final (40%), class assignments (30%) and a term
project (30%).
Course meets: T-Th 2-3:50 PM, JB 146
Texts:
(1) Compilers - Principles, Techniqus and Tools
Aho, Sethi and Ullman, Addison Wesley 1988
(2) Compiling with Continuations
Appel, Cambridge 1992
References (compilers, languages, parallel computing) | pdf

Tentative schedule:http://www.csse.monash.edu.au/~lloyd/tildeFP/Lambda/Ch/
W1- Aho+Ullman Ch. 7-8 : Runtime environments, intermediate representation
Control flow graph | pdf

notes 1 | pdf
Lambda calculus
Formal Syntax and Semantics of Prgramming Languages
K. Slonneger (U. Iowa) and B. L. Kurz (Louisiana Tech. U.)

Weeks 2-4 Intermediate representation and analysis
Aho+Ullman 9 + notes + papers
Notes on intermediate representations

Weeks 5-7 Code generation and optimization
Aho+Ullman 10 + notes + papers
Weeks 8-10- Selected topics.

Downloads:

updated 04/11/2005