Compiler Construction 2015

Lecture: Wednesday 14.15-16.00, room 141.
Laboratory: Wednesday 16.15-18.00 in room 104+137, and Thursday 10.15-12.00 (Kristian Baclawski) in room 104+137

This year's course will be based on LLVM. Recommended literature is at the bottom of this page.

Schedule

  1. 07.10.2015. Introduction, Organizational Issues. Planned Topics. History of high-level programming languages, and their compilation. Slides. (Exercises are below.)
  2. 14.10.2015. Basics of LLVM. Examples of translations from C++ into LLVM. Slides.
  3. 21.10.2015. More examples of translations from C++ into LLVM. Treatment of temporaries and class objects in expressions. Note that I updated the slides.
  4. 28.10.2015. Now that you what is the intermediate goal (LLVM), we will study how to obtain it. We start with the tokenizer. NDFAs, regular expresssions.
  5. 04.11.2015. More about tokenizing: Transformation from NDFA to DFA. Minimization of a DFA. During the lecture, I didn't like the minimization algorithm. I improved it.
  6. 18.11.2015. Top-Down Parsing. Slides (They were revised.)
  7. 25.11.2015. Rest of Top-Down parsing. Definitions of FIRST and FOLLOW. Start of Bottom-Up Parsing. Slides .
  8. 02.12.2015. computation of prefix automaton in Bottom-Up parsing.
  9. 09.12.2015. Computation of lookahead sets in bottom-up parsing. Various approaches: SLR/NQLALR/LALR. Type checking.
  10. 16.12.2015. Type checking/overload resolution/insertion of conversions. Important Note: The slides used during the lecture were incredibly buggy. Please use the improved (currently morning 14 jan) version: slides. Mail me if you still find bugs.
  11. 13.01.2016. More about type checking. Lowering to intermediate representation. Mail me if you find bugs in the slides.
  12. 20.01.2016. Probably still about lowering.
  13. 27.01.2016. Optimization through abstract interpretation.
  14. ?, we still need to catch up one lecture. Possible topic is transformation to and from SSA.

Exercises

Recommended Literature