SPRING 2014  
   

 

Home

Syllabus

Marking

Assignments

Schedule

 
 
Syllabus
 
COURSE TEXT

Compilers: Principles, Techniques, and Tools,
Aho, Lam, Sethi, and Ullman, 2nd or later edition. (required)

This is the famous "dragon book". I had a predecessor to this book (Aho & Ullman, the green dragon book) as my compilers text when I was in university. Since then, it's gone through two major overhauls (to Aho, Sethi, and Ullman, the red dragon book, and to the current 4-author purple dragon book).

This text has a good coverage of basic compilation techniques, but it is a bit theoretical. We'll counter that with big doses of practicality in the lectures.

 
TOPICS

The project is quite demanding, so a large portion of lecture will be taken up by assignment-specific material. Theoretical material will be covered when time allows. We will attempt to cover the following portions of the text, but there will undoubtedly be some variation from this list:

Chapters 1 and 2 Overview and introduction to a simple compiler.
Chapter 3 (with some parts omitted) Lexical analysis (scanning)
Chapter 4 (4.1 to 4.6, some of the rest) Syntax analysis (parsing)
Chapter 5 Syntax-directed translation
Chapter 6 Intermediate code generation
Chapter 7 (7.1 - 7.4) Run-time environments
Chapter 8 (some parts) Code generation
Chapter 9 (as much as time permits) Machine-independent optimizations
Other sections as required by the project  

I tend not to hand-hold students by always telling them exactly what sections will be, are, or have been covered. I assume that by the third year of university you are able to use a book index or table of contents.