Speaker | Dr. Michael Petter |
Location | BBB |
Date | Thursday, 14:00 - 16:00 |
Module | IN2227 |
News
- Due to COVID-19, we plan to give the lecture in form of Flipped Classroom. This means, that you get TTT recordings of the lecture in advance, and pepare for a virtual classroom in form of a teleconference where you can ask questions, work on examples, discuss deeper topics etc.
- As for the tutorial, this will also be in form of a teleconference
Materials
Contents
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.
The lecture is divided into the following topics:
- Outline of compiler construction
- Lexikal analysis:
From regular expressions to NFAs
Scannerdesign with NFAs - Syntactical analysis
Contextfree languages & pushdown automata
Item-Pushdownautomata & Recursive Descent Parsing
Shift-Reduce Parsing & LR(1) Parser - Semantical analysis
Attributevaluation
Typechecking - Codegeneration
Registerallocation
Code generation schemes - Optimizations
Finally we may find time for less standard techniques for compilers, as e.g. the type inference of programs.
Tutorial
The tutorial is given by Michael Schwarz, Mondays from 14:15-15:45, starting on May 4th. Join the tutorial in moodle!
Exam FAQ
- You will be allowed to bring hand- and/or machine-written sheets or books to the exam.
- Questions may be answered in English or German.Questions may be answered in English or German.
- Attention: There will be only one exam at the end of the semester, and no repetition exam in the winter!
- In case you did not pass, you have the opportunity to take "Programming Languages" or "Program Optimization" next semester or alternatively repeat the exam next summer.
Literature
-
Wilhelm, Seidl, Hack: Compiler Design: Syntactic and Semantic Analysis
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.