Persönlicher Status und Werkzeuge

Real-Time Programming Languages [WS only]

Most embedded systems — starting from controllers in automobiles to large-scale software in airplanes and industrial plants — have to work under certain real-time constraints. Such systems require a level of integrity and availability for which traditional mainstream programming techniques fail to provide guarantees. As a result, programming languages with strict semantics and inherent support for timing were developed, which bring abstractions specifically targeted towards developing safety-critical real-time systems. The aim of this module is to introduce the basic principles for programming such real-time systems, and to gain practical skills with relevant programming languages and verification tools.

First we study why real-time software substantially differs from Desktop applications, and why the development workflows have to be different from those for Desktop applications. Then we introduce the predominant real-time programming paradigms and highlight their differences. For each of the paradigms we learn the basics of one real-time programming language, in which we solve various programming tasks in the lab. Finally, we explain the theory of functional and temporal verification of real-time software. In this process, we gain a deep understanding how the architectural features of the target platform influence both the temporal and functional correctness of the software, and how both can be formally proven.

Course Material

Lecture Slides, reading materials, exercises etc. are now available on Moodle! A TUMOnline account is required to access the e-learning course. If you do not have a TUMOnline login, please contact me.


The assignment of fixed seats takes place at October 9 and 10 and follows the new assignment scheme for lab courses as proposed by the student union. With this new scheme, the time of registration and is irrelevant. Instead, the following rules are applied:

  • students who did not yet complete 15 ECTS with lab courses take priority over others
  • students in higher semesters take priority over students of lower ones
  • each student can prioritize her/his registrations individually: the order of course registration is used as an indication of your preferences; courses registered later are interpreted as being less important for you

First Lecture: Be there or loose your fixed seat

Additionally, since we got limited lab seats, we will unroll students not attending the introduction lecture.


Note: Schedule may change without prior notice.


Contents Lecture Contents Lab
13/10/15 Introduction Introduction
20/10/15 Esterel (1) Basic Esterel
27/10/15 Esterel (2) Esterel contd.


Computer Architecture (1) Esterel contd.


Computer Architecture (2) & WCET AnalysisWCET Demo


Model Checking MC in Esterel


Synchronization & Scheduling no lab


Ada: Basic Elements Basic Programs


Ada: Tasking & Synchronization Tasking & Synchronization


Ada: High-Integrity Systems Ravenscar Examples
12/01/16 Ada: Verification / SPARKVerification in Ada
19/01/16 Q & A: Everything but Ada. Please bring questions.
26/01/16 Q & A: Ada. Please bring questions.
02/02/16 Final Exam no lab


Martin Becker

We are a member of the GNAT Academic Program of AdaCore

Official Esterel Technologies Academic Partner Academic partner of Esterel Technologies, the provider of model-based solutions for DO-178B and IEC 61508 safety-critical systems.