Warum wird die Programmiersprache Ada gerne bei sicherheitskritischen Systemen eingesetzt?

12/11/2013 - 20:31 von Benedikt Schwarz | Report spam
Hallo,

warum werden Steuerungsprogramme für sicherheitskritische Systeme
(Flugzeuge, Raketen, Waffen, usw.) gerne in der Programmiersprache Ada
umgesetzt?

Die Programmiersprache Ada wurde zwar im Auftrag des
US-Verteidigungsministerium entwickelt und pflegt eine strenge
Standardisierung und Validierung, aber richtige technische Vorteile
konnte ich auch durch <Beliebige_Suchmaschine> nicht in Erfahrung bringen.


Gruß
Benedikt Schwarz
 

Lesen sie die antworten

#1 Lutz Donnerhacke
13/11/2013 - 12:00 | Warnen spam
* Benedikt Schwarz wrote:
warum werden Steuerungsprogramme für sicherheitskritische Systeme
(Flugzeuge, Raketen, Waffen, usw.) gerne in der Programmiersprache Ada
umgesetzt?



Weil man eine strenge Semantik mit einer klaren Syntax verbindet. Der
Sourcecode hàngt nicht von der Zielhardware ab, sondern gibt dem Compiler
vor, was er dort hinzufummeln hat. Ada Programme kopmilieren für
verschiedene Zielplattformen also mit gleichartig funktionierenden Programmen.

Darüberhinaus bietet Ada strenge Typisierung, was es gestattet praktisch in
Einheiten zu rechnen. Es ist dann nicht möglich, eine Lànge, die in einem
Meter-Typ angegeben war, an eine Lànge, die in einem Meilen-Typ deklariert
wurde, zuzuweisen. (Ok, eine Marssonde haben wir verloren, weil nur ein
Meilen-Typ zuwenig ist, wenn Amis und Englànder im gleichen Projekt arbeiten)

Die Validierung kann man soweit treiben, daß der Compiler erst angeworfen
wird, wenn der Beweis geführt werden konnte, daß die Software die Spec
einhàlt. Das nennt sich dann SPARK.

Damit hat man testweise mal einen Hubschrauber programmiert. Im Groben lief
das so:

Das C++ Team hat nach drei Wochen das erste Compilat auf den Simulator
geworfen, dann haben Sie regelmàßig neue Versionen mit neuen Features und
Bugfixes aufgespielt. Nach einem Jahr waren die ersten Tests am realen
System (Hubschrauber auf der Piste).

Das SPARK-Team hat nach drei Monaten eine Klarstellung bezüglich einer
Formulierung in der Spec verlangt. Das ging dann etwa ein Jahr so weiter.
Sechs Wochen vor Projektende kam die erste Meldung "Der Compiler ist
erstmals angelaufen". Es war keine Zeit für Tests. Das Compilat wurde
direkt auf die Maschine gespielt.

Auswertung:
Das C++-Team hat 80% der Funktionalitàt erfolgreich umgesetzt. Für den Rest
existieren Bugreports, aber noch keine Fixes.

Das SPARK-Team hat 100% der gewünschten Funktionalitàt umgesetzt, es sind
keine Fehler aufgefallen. Allerdings wurde ein Handvoll Unklarheiten auf-
gelistet. Beispiel: "Es wird angenommen, daß der Hubschrauber weniger als
47 Tage ununterbrochen in der Luft bleibt, andernfalls haben wir einen
Zàhlerüberlauf im Scheduler."

Konsequenz der Herstellers:
Wir entwickeln zukünftig in C++. Die Arbeitsweise des SPARK-Teams überlebt
kein Projektmanager.

Anderes Beispiel ist der Absturz der Ariane 5, der mit einem C-Programm so
nicht geschehen wàre.

Ähnliche fragen