Ada (Programmiersprache)
Ada ist eine strukturierte Programmiersprache mit statischer Typenbindung. Sie wurde von Jean Ichbiah von der Firma Honeywell Bull in den 1970ern entworfen. Ada liegt mit seiner Struktur dicht an Pascal, und ist genauso wie Modula-2 als Mitglied der Pascal-Familie zu betrachten. Ebenso wie Modula ist Ada aber auch strikter in der Programmierung als Pascal. Es ist ein direkter Konkurrent zu C und C++.
Ada wurde stark vom US-Verteidigungsministerium gefördert und unterstützt. Es war die erste standardisierte Hochsprache. Die zwei gängigen Versionen sind Ada 83 (das erste standardisierte Ada, welches zunächst einfach nur Ada hieß, aber später zur Abgrenzung vom Nachfolger Ada 83 genannt wurde) und Ada 95, welches um zahlreiche neue Features erweitert wurde. Eine neue Version wird unter dem Namen Ada 0Y seit Jahren entwickelt (der Name entstand aus dem Projektnamen für Ada 95, der Ada 9X lautete). Alle Ada-Compiler müssen sich einem Test unterziehen. Aufgrund der hohen Anforderung an die Sprache hat sie sich vor allem in sicherheitskritischen Bereichen durchgesetzt, zum Beispiel in der Flugsicherung, in Sicherheits-Einrichtungen der Eisenbahn, in Waffensystemen, der Raumfahrt oder der Steuerung von Kernkraftwerken.

Den Namen erhielt die Sprache von der ersten Programmiererin, Lady Ada Lovelace (1815-1852), Tochter von Lord Byron und Mitarbeiterin von Charles Babbage. Die richtige Schreibweise ist daher "Ada" und nicht, wie gelegentlich verwendet, "ADA".
Fähigkeiten der Sprache
Ada zielte ursprünglich auf eingebettete (embedded) und Echtzeit-Systeme (real-time) und wird auch heute noch meist für diese Zwecke verwendet. Ada 95 - von Tucker Taft von Intermetrics zwischen 1992 und 1995 entworfen - verbesserte die Möglichkeiten zum Entwurf nummerischer, systemnaher und bankwirtschaftlicher Programme.
Besondere Features von Ada sind etwa das strenge Typsystem (strong typing), zahlreiche Prüfungen zur Programmlaufzeit, parallele Verarbeitung, Ausnahmebehandlung und generische Systeme. Mit Ada 95 wurde auch die objektorientierte Programmierung und dynamische Polymorphie unterstützt, wenn auch in einer für die meisten Programmierer ungewohnten Syntax.
Implementationen von Ada benutzen üblicherweise keine automatische Garbage-Collection zur Speicherverwaltung. Ada unterstützt Laufzeittests, um Speicherüberläufe, Zugriff auf nicht zugewiesenen Speicher, off-by-one-Fehler und andere, ähnlich geartete Fehler frühzeitig zu erkennen und zu vermeiden. Für eine höhere Effizienz können diese Tests abgeschaltet werden. Auch zur Programmverifikation stehen verschiedene Spracheigenschaften zur Verfügung.
Doch solche Spracheigenschaften alleine können offensichtlich Fehler nicht verhindern: eine Ariane 5 der ESA ging durch einen arithmetischen Überlauf verloren, weil der entsprechende Test ausgeschaltet worden war. Allerdings war das nicht die Schuld der Programmiersprache: Das Management des Programms hatte verlangt, Code, der für Ariane 4 geschrieben worden war (und dort auch korrekt war), ohne weitere Überprüfung der Voraussetzungen zu übernehmen. Da Ariane 5 ein anderes Flugprofil besaß als Ariane 4, musste dieses Vorgehen zum Desaster führen.
Die Sprachdefinition ist insofern ungewöhnlich unter den ISO Standards, als dass sie kostenlos für jeden zugänglich ist. Deswegen wird das Sprachmanual auch häufig von Programmierern als Standardnachschlagewerk zu Rate gezogen.
Mit Ada ist auch zum erstem Mal erfolgreich gelungen, Programme in industrieller Anwendung automatisch auf Korrektheit zu überprüfen. Siehe hierzu das Buch "High Integrity Software. The SPARK Approach to Safety and Security" von John Barnes. SPARK verwendet hierzu eine Untermenge von Ada, der Kode wird mit speziellen Annotationen versehen, die vom SPARK Examiner ausgewertet werden.
Geschichte
In den 1970ern zeigte sich das US-amerikanische Verteidigungsministerium besorgt über die wachsende Anzahl von Programmiersprachen, die in ihren Projekten verwendet wurden. Wartung, Ausbildung, Modularität und Wiederverwendung waren dadurch schwer beeinträchtigt. Viele der Programmiersprachen waren zudem proprietär, man war also vom Anbieter abhängig, oder schlicht veraltet. 1975 sollte eine Arbeitsgruppe diesen Dschungel lichten und eine Sprache finden oder erfinden, welche die Bedingungen des Ministeriums erfüllt. Eine Reihe von Anforderungskatalogen wurden erstellt, und viele existierende Sprachen wurden überprüft, doch 1977 kam man zum Entschluss, dass keine der vorhandenen Sprachen geeignet war.
Nach einem Ausschreiben kamen vier Kandidaten in die nähere Auswahl (Red, Green, Blue und Yellow genannt), und im Mai 1979 entschied man sich für Green von Jean Ichbiah, welches dann auf den Namen Ada getauft wurde. Die ursprüngliche Beschreibung wurde am 10. Dezember 1980 gebilligt, dem Geburtstag von Lady Ada Lovelace; der Standard erhielt die Bezeichnung MIL-STD 1815, da 1815 ihr Geburtsjahr war.
Nach der Einführung Adas 1983 fiel die Anzahl der verwendeten Programmiersprachen im Verantwortungsbereich des US-amerikanischen Verteidigungsministeriums von über 450 auf 37 1996. Das US Verteidigungsministerium schrieb vor, dass jedes Softwareprojekt mit einem Anteil von mehr als 30% neuem Code in Ada geschrieben werden musste (diese Vorschrift wurde 1997 aufgehoben, zudem wurden häufig Ausnahmen genehmigt). In vielen anderen Staaten der NATO wurden ähnliche Vorschriften erlassen.
1983 wurde die Sprache zu einem ANSI Standard (ANSI/MIL-STD 1815), die ISO übernahm den Standard 1987 als ISO-8652:1987. Diese Version wird heute als Ada 83 bezeichnet, nach dem Jahr der ANSI-Standardisierung.
Ada 95, der gemeinsame ISO/ANSI Standard ISO-8652:1995 ist die jüngste, standardisierte Ada-Version. Sie wurde im Februar 1995 angenommen. Damit wurde Ada 95 zur ersten objektorientierten Programmiersprache mit einem ISO Standard. Im September 2000 wurde die erste technische Korrektur gemäß den Statuten der ISO als ISO/IEC 8652:1995(E)/Cor.1:2000 angenommen. Zur Zeit ist die nächste Sprachrevision, bekannt als Ada0Y, in Arbeit; geplantes Fertigstellungsjahr ist 2005.
Um die Verbreitung des Standards und der Sprache im allgemeinem zu unterstützen, finanzierte die US Air Force die Entwicklung des kostenfreien GNAT Compilers.
"Hello World" in Ada
Das beliebte "Hello World"-Programm geschrieben in Ada. Auf Abkürzungen für "Ada.Text_IO.Put_Line" wurde verzichtet.
with Ada.Text_IO; procedure Hello is begin Ada.Text_IO.Put_Line("Hello, world!"); end Hello;
Siehe auch
- Wikibook on Programming Ada (engl.)
- Ada Information Clearinghouse
- Special Interest Group on Ada
- Aunit
- GtkAda
- GNAT Programmierungssystem (GPS)
- XML/Ada und XML4Ada95
- PolyORB
Literatur
- Manfred Nagl: Softwaretechnik mit ADA 95. Vieweg ISBN 3-528-15583-3
- Harry Feldmann: Programmieren mit Ada. Vieweg ISBN 3528052058
- Annette Weinert: Programmieren mit Ada und C. Vieweg ISBN 3528052406
- Diana Schmidt: Erfolgreich Programmieren mit Ada. Springer Verlag ISBN 3-540-57689-4
- Klaus P. Kratzer: ADA. Hanser Fachbuch ISBN 3-446-16545-2