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.
Note: Schedule may change without prior notice.
|Contents Lecture||Contents Lab|
|20/10/15||Esterel (1)||Basic Esterel|
|27/10/15||Esterel (2)||Esterel contd.|
|Computer Architecture (1)||Esterel contd.|
|Computer Architecture (2)||WCET Demo|
|WCET Analysis||WCET in Esterel, Compiling Esterel|
|Synchronization & Scheduling|
|Ada: Basic Elements||Basic Programs|
|Ada: Tasking & Synchronization||Tasking & Synchronization|
|Ada for High-Integrity Systems||Ravenscar Examples|
|12/01/16||Model Checking||MC in Esterel|
|19/01/16||Ada Verification / SPARK||Verification in Ada|
|26/01/16||Q & A|
|02/02/16||Final Exam||no lab|