Anbieter zum Thema
Die Programmiersprache Ada kurz vorgestellt
Ada wurde Ende der 1970er Jahre im Auftrag des amerikanischen Militärs entworfen und 1983 als Ada 83 standardisiert. In der Entwicklung von Ada spielten genau die Kriterien eine wichtige Rolle, die die Sprache so geeignet für kritische Software machen:
- Ada-Programme sollten sehr gut lesbar sein
- Ada-Programme sollten sehr gut wartbar sein
- typische Programmierfehler sollten ausgeschlossen werden
- wenn dies nicht möglich ist, sollten typische Programmierfehler so zeitig wie möglich entdeckt werden.
Im Vergleich zu anderen Sprachen zeichnet sich Ada durch folgende Features aus:
- eingebaute Unterstützung für parallele Programmierung (Tasking)
- sehr hohe Lesbarkeit
- starke Typisierung, die weit über das von anderen Sprachen Gebotene hinausgeht
- die Möglichkeit, Wertebereiche für numerische Variablen anzugeben. Dieser Wertebereich kann einerseits vom Compiler ausgenutzt werden, um schnelleren oder kompakteren Code zu erzeugen. Andererseits kann der Wertebereich, wenn dies gewünscht wird, auch während der Ausführung überprüft werden. Insgesamt führt dies zu erhöhter Lesbarkeit des Programms (es enthält mehr Informationen), und zu erhöhter Wartbarkeit. Denn wenn eine solche Variable ihren Wertebereich verlässt, ist das ein Bug. Und zwar entweder im Programm selbst, oder in der Erwartung des Programmierers.
Die Konzentration auf sicherheitskritische Systeme
Ergänzend dazu gibt es noch eine Reihe anderer Checks, die zur Laufzeit geprüft werden müssen. Diese funktionieren ähnlich wie die eben beschriebenen Wertebereiche. Das sind beispielsweise Array-Zugriffe. Seit der ersten Version von 1983 wurde Ada ständig weiterentwickelt und den sich ändernden Anforderungen der Industrie angepasst.
So führte die Version Ada 95 objektorientierte Programmierung ein, die Version Ada 2005 eine umfangreiche Container-Bibliothek. Die kürzlich verabschiedete Version Ada 2012 erweitert die Sprache um zahlreiche zusätzliche Verifikationsmöglichkeiten, zum Beispiel Contracts. Im Vergleich zu C ist Ada ein Ausgangspunkt, der mehr Sicherheiten bietet. Eine noch sicherere Teilmenge, sozusagen ein MISRA-Ada, wäre sinnlos. Es ist interessant, dass viele der typischen Programmierfehler, die in der zukünftigen Version der Norm EN 62304 aufgezählt sind, in Ada nicht möglich sind oder durch Checks einfach zu entdecken sind.
Gerätesoftware ist bis zu 20 Jahre im Einsatz
Es sollen nicht nur Programmierfehler vermieden werden. Im Mittelpunkt bei Ada stehen sicherheitskritische Anwendungen und die Wartbarkeit. Das ist wichtig, da Gerätesoftware oft extrem langlebig ist - Software in der Luftfahrt kann über 20 Jahre in Betrieb sein, und von Herzschrittmachern kann sicherlich ähnliches erwartet werden. Wenn also nach einigen Jahren Änderungen am Programmcode vorgenommen werden müssen, sei es wegen eines erstmals entdeckten Fehlers oder eines neuen Features, dann sollte der Einarbeitungsaufwand sowie das Risiko, in den existierenden Code neue Fehler einzuführen, möglichst gering sein. In Ada wird das durch die gute Lesbarkeit, die auch nach Jahren noch einen schnellen Einstieg in die Software ermöglicht, und die vielen Überprüfungen erreicht, die typische Fehler zeitig aufdecken.
Software für medizinische Geräte wird immer sicherheitskritischer; die entsprechende Anpassung der Entwicklungsprozesse ist im Gange, geht aber nur langsam voran. Der Einsatz von Ada ist eine Möglichkeit, von der Luftfahrt oder dem Eisenbahnbetrieb zu lernen, in denen sicherheitskritische Software zum Alltagsgeschäft gehört.
* Johannes Kanig arbeitet bei AdaCore vorwiegend an der CodePeer-Technologie für statische Analyse, sowie an Unittests und formale Verifizierung.
Artikelfiles und Artikellinks
(ID:37563980)