CS3142 - Compilers
Announcements
- Lectures in the week starting March 4th will take place in room
MSc A (LF12).
- There will be no lecture on February 7th (Thursday).
Course Book
The module textbook is
"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.
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 9-10
Handouts
(NB: Accessible from Computer Science machines only)
- Lecture 01 (Introduction): [powerpoint],
[pdf]
[Aho, 1.1]
- Lecture 02 (General Structure of a Compiler): [powerpoint],
[pdf]
[Aho, pp. 1-24]
- Lecture 03 (Introduction to Lexical Analysis): [powerpoint],
[pdf]
[Aho, pp.25-29; 84-87; 92-105]
- Lecture 04 (Lexical Analysis II: from REs to DFAs): [powerpoint],
[pdf]
[Aho, pp.113-125]
- Lecture 05 (Lexical Analysis III): [powerpoint],
[pdf]
[Aho, pp.141-144]
- Lecture 06 - will be available soon.
- Lecture 07 (Top-Down Parsing): [powerpoint],
[pdf]
[Aho, pp.176-178; 181-185]
- Lecture 08 (Bottom-Up Parsing): [powerpoint],
[pdf]
[Aho, pp.195-202]
- Lecture 09 (LR(1) Parsing): [powerpoint],
[pdf]
[Aho, pp.215-220]
- Lecture 10 (LR(1) Parsing: Table Construction): [powerpoint],
[pdf]
[Aho, pp.230-236]
- Lecture 11 (Context Sensitive Analysis: Attribute Grammars): [powerpoint],
[pdf]
[Aho, pp.279-287]
- Lecture 12 (Symbol Tables): [powerpoint],
[pdf]
[Aho, pp.429-440]
- Lecture 13 (Intermediate Representations): [powerpoint],
[pdf]
[Aho, pp.287-293 & 463-472]
- Lecture 14 (The Procedure Abstraction): [powerpoint],
[pdf]
[Aho, pp.389-400]
- Lecture 15 (Run-time Storage Organisation): [powerpoint],
[pdf]
[Aho, pp.400-423]
- Lecture 16 (Code Generation - Instruction Selection): [powerpoint],
[pdf]
[Aho, pp.478-500]
- Lecture 17 (Register Allocation): [powerpoint],
[pdf]
[Aho, pp.541-546]
- Lecture 18 (Global Register Allocation): [powerpoint],
[pdf]
[Aho, pp.545-546]
- Lecture 19 (Instruction Scheduling): [powerpoint],
[pdf]
- Lecture 20 (Code Optimisation): [powerpoint],
[pdf]
- ...
Resources on the web
Exam Papers from past years
(accessible from UoM machines only - NB: these exams were set by the
lecturer who taught the Compilers course in previous years)
Staff