Automotive – Safety & Security 2010

Tutorial mit Bjarne Stroustrup


Bjarne Stroustrup, der Designer von C++ bietet am Montag zwei
Tutorien zu C++ für Automotive Software!

Zur Anmeldung

Tutorial 1 - C++ close to the hardware (2*60 minutes incl. Q&A):

The first half of the tutorial is devoted to an explanation of how C++ language features map to hardware and how we define optimally efficient (where desired) and completely safe (where desired) abstractions. We examine the mapping to hardware of classes, class hierarchies, member function calls, and virtual member function calls. The use of inlining and its relation to class design is examined. The design and use of templates for performance (time and space), safety, and simplicity of use is explored. The discussion is based on fundamentals and what is true for every ISO standards conforming C++ program, rather than just a particular C++ implementation.
The second half of this tutorial briefly introduces the principles of the JSF++ coding standard (designed and used for avionics) before exploring individual rules and their implications for correctness, performance, and programmer productivity. The JSF++ was designed to ease programming, to avoid common programming errors and problems, and to ease the validation of programs. The JSF++ contains conventional rules for the use of identifiers, complexity of functions and expressions, and a ban on language features that could cause hard-to-predict performance or correctness problems (such as free store use and exceptions). However, the more significant aspect of the rules is the ban of trouble-causing low-level C (and C++) language facilities, such as arrays, pointers, casts, and macros outside rare and carefully circumscribed contexts (such as the implementation of fundamental abstractions). The emphasis of the tutorial will be on providing insights to allow for selective adoption of ideas and principles. The next ISO C++ standard, C++0x, is not a topic of this tutorial, but where features directly affect close-to-the-hardware use are already available in C++ implementations, they are mentioned. Generalized constant expression and some aspects of concurrency will be considered.

Tutorial 2 - Effective use of modern C++ (2*60 minutes incl. Q&A):

This tutorial presents techniques for the use of C++ in contexts where language feature use is not limited by hard-real time constraints (e.g., dynamic storage may be used) and where requirement for correctness are conventional (i.e., not every problem is considered potentially life threatening).
The tutorial focuses on three issues: resource management with error handling based on exceptions, use of templates with examples from the ISO C++ standard library, and the tradeoffs between generic programming (using templates) and object-oriented programming (using class hierarchies). The emphasis is on fundamental facilities and techniques as used in the building of software infrastructure and advanced applications. This naturally biases the discussion towards issues of performance and generality. The code will be ISO standard C++ and no libraries beyond the standard ones will be covered. The next ISO C++ standard, C++0x, is not a topic of this tutorial, but where features directly affect close-to-the-hardware use and are already available in C++ implementations, they are mentioned. For example, the C++0x unique_ptr is a good example of simple, efficient, and predictable resource management. This tutorial assumes a basic understanding of C++, but not expert-level knowledge of its features.

Die Turorien starten um 10.00 Uhr bzw. um 14.00 Uhr und dauern jeweils 120 min. Erfrischungen sind im Preis beinhaltet. Mittagessen ist im Preis beim 1 Tagestutorial beinhaltet.

Zur Anmeldung




Vorsitz Programmkomitee:
Hubert B. Keller,
Forschungszentrum Karlsruhe, Erhard Plödereder,
Universität Stuttgart

Peter Dencker, ETAS GmbH
Hubert B. Keller,
Forschungszentrum Karlsruhe
Christine Harms, ccHa