Literature and Other Resources
The course textbook is
Andrew W. Appel,
Modern Compiler Implementation in C,
Cambridge University Press, 1998, ISBN 0-521-58390-X
(reprinted with corrections, 1999; reissued, 2004).
It can be bought in the
for kr. 498.
Errata etc. can be found via the
book home page.
Supplementary literature and material (will be updated throughout
If you do not already know the C programming language, you are
recommended to purchase the following book:
Brian W. Kernighan, Dennis Ritchie,
The C Programming Language, 2. eds.,
Prentice Hall, 1988.
As a (less good, but free) alternative one can use
viewer for postscript (ps) documents (Windows/Linux).
GNU Make, version 3.77:
The Not So Short Introduction to LaTeX.
It is possible to make somewhat nicer LaTeX-integrated inclusions
of programs into the report using specialized software:
Flex, version 2.5.31
- A Fast Scanner Generator: ps.
- The YACC-Compatible Parser Generator.
The style file bnf.sty can be a help in type setting the grammar:
An Assembly Language Introduction to Computer Architecture -
using the Intel Pentium,
Oxford University Press, New York, 1999, kapitel 10
(hand-outs at the lecture).
Differences between Intel and ATT syntax.
GNU Assembler Program Examples.
Handling division in GAS:
Suggestion for a stack frame layout: pdf,
Suggestion for "abstract" assembler code:
Examples of code generation templates:
A note on lattices and fixed points:
small targeted version,
Copies of lecture notes have been handed out for the following topics:
- Scanner & parser (22 transparencies)
- Abstract syntax trees (14 transparencies)
- Symbol tabels & scope (8 transparencies)
- Call conventions and stack layout (3 transparencies)
- Peep-hole optimization (4 transparencies)
- Register allocation via liveness analyse (19 transparencies)
- Garbage collection (22 transparencies)
Last modified: Tue Apr 24 10:31:23 CEST 2007
Kim Skak Larsen