CS3142 - Compilers
Announcements
Course Book
The recommended module textbooks are:
-
"Compilers: Principles, Techniques, and Tools"
by Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman. Widely known as the
"Dragon book", it has been a standard reference for two generations.
-
Engineering a compiler, by Cooper and Torczon. A good book,
follows quite closely the structure of this course.
Other recommended books:
- Modern Compiler Design, by Grune et al. This is a new book
and has good coverage.
- The essence of compilers, by Hunter. Somewhat compact.
Schedule
- Lectures (LF15): Wednesdays 11-12; Thursdays 10-11
Handouts
(NB: Accessible from Computer Science machines only)
(NB: pdf links do not work)
- Lecture 01 (Introduction): [powerpoint],
[pdf]
- Lecture 02 (General Structure of a Compiler): [powerpoint],
[pdf]
- Lecture 03 (Introduction to Lexical Analysis): [powerpoint],
[pdf]
- Lecture 04 (Lexical Analysis II: from REs to DFAs): [powerpoint],
[pdf]
- Lecture 05 (Lexical Analysis III): [powerpoint],
[pdf]
- Lecture 06 (Introduction to Parsing): [powerpoint],
[pdf]
- Lecture 07 (Top-Down Parsing): [powerpoint],
[pdf]
- Lecture 08 (Bottom-Up Parsing): [powerpoint],
[pdf]
- Lecture 09 (LR(1) Parsing): [powerpoint],
[pdf]
(Check this for the answer to the
example in slide 5)
- Lecture 10 (Context Sensitive Analysis: Attribute Grammars): [powerpoint],
[pdf]
- Lecture 11 (Intermediate Representations & Symbol Tables): [powerpoint],
[pdf]
- Lecture 12 (The Procedure Abstraction): [powerpoint],
[pdf]
- Lecture 13 (Code Generation - Instruction Selection): [powerpoint],
[pdf]
- Lecture 14 (Register Allocation): [powerpoint],
[pdf]
- Lecture 15 (Register Allocation via Graph Colouring): [powerpoint],
[pdf]
- Lecture 16 (Instruction Scheduling): [powerpoint],
[pdf]
- Lecture 17 (Code Optimisation): [powerpoint],
[pdf]
The transparencies used for Jeremy Singer's guest lecture are available here (non-examinable)
Resources on the web
Earlier versions of this webpage
(links may not work as a result of changes to the CS web site)
Exam Papers from past years
(accessible from UoM machines only - NB: exams prior to 2002 were set by the
lecturer who taught the Compilers course in previous years)
Staff