Hallo,
die ISO 26262 macht keine direkten Einschränkungen bezüglich der
verwendeten Programmiersprache (es werden sowieso Elemente nur
"empfohlen" oder "stark empfohlen"). Damit kann man sowohl C als auch
C++ verwenden.
Allerdings empfiehlt die ISO 26262, sich Gedanken zur verwendeten
Programmiersprache zu machen und entsprechende Einschränkungen zu
definieren. Um die anderen Anforderungen (Testbarkeit etc.) zu erfüllen,
können je nach dem höchsten ASIL-Level verschiedene Einschränkungen
notwendig werden. Dies kann z.B. durch das Verwenden der MISRA-C oder
C++-Regeln erfüllt werden.
Explizit auf C++ bezogen ist allerdings die starke Empfehlung ab ASIL B
keine dynamischen Objekte oder Variablen zu verwenden, oder diese
während ihrer Erzeugung zu testen. Andere Einschränkungen laufen auch
der "natürlichen" Verwendung von C++ entgegen (Variablennamen nur einmal
verwenden, keine implizite Typkonvertierung, kein versteckter Daten-
oder Programmfluss), dies gilt mehr oder weniger jedoch auch für C.
Ähnliches gilt für die starke Architekturempfehlung, das Verknüpfen von
Softwareelementen stark einzuschränken (also z.B. nicht durch
Funktions-Overloading den Linker die Funktion automatisch aus einer
Auswahl selektieren zu lassen).
Ich kenne allerdings durchaus Implementationen von sicherheitsrelevanter
Software in C++, wobei die Vorteile allerdings auch erheblich reduziert
wurden.
Da aber speziell für die Implementation der sicherheitsrelevanten
Softwareteile gilt, dass sie so einfach wie möglich sein sollten
(alleine um der Anforderung genüge zu tun, dass nichts in der Software
enthalten ist, was nicht auch in der Anforderungsbeschreibung definiert
ist, und jede Anforderung getestet umgesetzt worden ist), ist die Wahl
der Implementationssprache ehrlich gesagt relativ nebensächlich.
Da das Umsetzen der ISO 26262 ein erhebliches praktisches Wissen
voraussetzt (der TÜV geht davon aus, dass ein Ingenieur mindestens 2
Arbeitsjahre Erfahrung bei der Anwendung der ISO 26262 haben muss, wenn
er die Rolle eines ISO 26262 Functional Safety Managers übernehmen
soll), sollte Dir ein entsprechend kompetenter Ansprechpartner zur
Verfügung stehen, wenn Du ISO 26262 relevante Software entwickeln
sollst. Sollte das nicht der Fall sein, solltest Du sehr genau auf den
Umfang Deiner persönlichen Haftbarkeit (Straf- und Zivilrechtlich)
achten.
Schöne Grüße,
Martin
P.S.: die oben genannte automatische Code-Generierung durch
modellbasierte Softwareentwicklung geht übrigens mit C und C++ gleich
gut, das ist also kein Unterscheidungskriterium. Allerdings ist hier die
Wahl der "Zwischen-"Sprache noch irrelevanter als bei der händischen
Kodierung.