Speaker Dr. Michael Petter
Location Lecture Hall 2
Date Wednesdays 14:05-15:35
Module IN2113
Tutorial Fridays 08:30-10:00 in Lecture Hall 2


The tuturial (presentation of the mini seminar topics) on Friday will take place in room 02.07.034 - not lecture hall 2!

Attention: There will be no lecture on 6th of February! Please use the recording from last year to cover the topic metaprogramming!


We present selected topics that focus on current issues in the design or implementation of programming languages from point of view of compiler construction. We consider these topics as providers for building blocks for programming languages, thus this lecture is not intended as an introduction to programming these features, instead on how to adapt compilers and runtime systems in order to support these features.

  • Memory Model
    • Relaxed Memory Models
    • Wait-Free Algorithms
    • Lock-Free Algorithms
    • Locks and Monitors
  • Control Flow in Concurrent Systems
    • Transactional Memory
    • Coroutines and Continuations
  • Method Dispatching
    • Multimethods
    • Multiple Inheritance
  • Modularization
    • Mixins
    • Traits
    • Prototype based Programming
  • Metaprogramming
    • Aspect Oriented Programming
    • Homoiconic Programming

Mini Seminar Topics

  • 1: IBM BlueGene/Q and Power 8 HTM vs. Intel HTM
  • 2: ATLAS: Transactional Memory in Multicore Systems
  • 3: (CURRENTLY TAKEN) Beyond Dekker: Lampard's Bakery, Szymanski's Algorithm and Eisenberg/McGuire's Algorithm
  • 4: (CURRENTLY TAKEN) Wait-Free Simulation of Lock-Free Data Structures
  • 5: (CURRENTLY TAKEN) Automatic Inference of Memory Fences
  • 6: (CURRENTLY TAKEN) C++11 Atomic Operations Library vs. Strong/Weak Memory Systems
  • 7: (CURRENTLY TAKEN) MESI Alternatives: Firefly vs. Dragon Protocols
  • 8: (CURRENTLY TAKEN) Beyond Locks: Async/Await and Promises
  • 9: Programming Data Dependencies: Configurable Spatial Accelerator
  • 10: (CURRENTLY TAKEN) Dataflow Programming: RVC-CAL in Orcc


  • Passing the exam of this course is worth 5 ECTS.
  • There will be only one exam, the one at the end of the winter semester
  • You are allowed to bring all analog helpers, e.g. books, printed slides, personal notes, etc. ; we recommend one DIN A4 sheet of paper with notes on both sides
  • In case you do not pass, you have the opportunity to take "Compiler Construction" or "Virtual Machines" in summer term or alternatively repeat the exam the next winter

Recommended Requirements

  • IN0001 Introduction to Informatics 1
  • IN0003 Functional Programming and Verification


If you have any question regarding the tutorial or the exercises please contact Raphaela Palenta (raphaela.palenta<AT>tum.de)

In the tutorial on 8th of February the mini seminar topics will be presented in room 02.07.034 (not lecture hall 2!)