Compiler Construction I
Slides (state of Aug. 14th 2017):
A Compiler is an essential part of the system software stack. Its job consists in translating programs from a high-level programming language like C or Java into a sequence of machine instructions of an actual processor. Compilers are comparatively complex programs. Their construction involves ideas and approaches from many different areas of computer science. The first two phases, i.e. lexical and syntactical analysis of the input program, are a major application for formal methods. Later on, e.g. during code generation, we treat methods for register allocation via approximative graph colouring.
Finally we may find time for less standard techniques for compilers, as e.g. the type inference of programs.
for TUM students, the German edition is downloadable for free through the TUM/LRZ-Proxy, the English edition is available in the form of several hardcopies in the library.
The instructions and the code generation schemes are summarized in the R-CMa specification.