Ada (Programmiersprache)
Ada | |
---|---|
![]() | |
Basisdaten | |
Paradigmen: | imperativ, strukturiert, objektorientiert |
Erscheinungsjahr: | 1980 |
Designer: | Jean Ichbiah, S. Tucker Taft[1][2] |
Entwickler: | Jean Ichbiah |
Typisierung: | statisch, explizit, stark |
Wichtige Implementierungen: | GNAT |
Standardisierungen: | ANSI/MIL-STD-1815 1983, ISO-8652 1995, Ada 2005, Ada 2012 |
Beeinflusst von: | Algol 68, Pascal, Modula-2, C++, Java |
Beeinflusste: | C++, Eiffel, PL/SQL, Ruby, VHDL, Seed7 |
adaic.org |
Ada ist eine strukturierte Programmiersprache mit statischer Typenbindung. Sie wurde von Jean Ichbiah für das Unternehmen Honeywell Bull in den 1970er Jahren entworfen. Es war die erste standardisierte Hochsprache. Ada ist vom Erscheinungsbild ähnlich zur Programmiersprache Pascal und ist genauso wie Modula-2 als Wirthsche Sprache zu betrachten. Ebenso wie Modula ist Ada aber auch strenger in der Programmierung als Pascal. Benannt wurde die Sprache nach Lady Ada Lovelace (1815–1852), der Tochter von Lord Byron und Mitarbeiterin von Charles Babbage, die auch als erste Programmiererin bezeichnet wird.
Überblick
Ada wurde anfänglich stark vom US-Verteidigungsministerium gefördert und unterstützt. Die drei gängigen Versionen sind Ada 83 (das erste standardisierte Ada, das zunächst einfach nur Ada hieß, aber später zur Abgrenzung vom Nachfolger Ada 83 genannt wurde), Ada 95, das um zahlreiche neue Sprachmittel erweitert wurde und Ada 2005 (auch als Ada 05 bekannt), dessen Standardisierungsprozess 2007 abgeschlossen wurde. Ada-Compiler können sich einem standardisierten Test (Validierung) unterziehen, der praktisch Grundvoraussetzung für den professionellen Einsatz ist. Aufgrund der hohen Anforderung, die validierte Compiler erfüllen müssen, hat Ada sich vor allem in sicherheitskritischen Bereichen durchgesetzt, zum Beispiel in der Flugsicherung, in Sicherheits-Einrichtungen der Eisenbahn, in Waffensystemen, der Raumfahrt, der Medizin oder der Steuerung von Kernkraftwerken.
Fähigkeiten der Sprache

Ada zielte ursprünglich auf eingebettete (embedded) und Echtzeit-Systeme (real-time systems) und wird auch heute noch oft für diese Zwecke verwendet. Ada 95 – von Tucker Taft von Intermetrics zwischen 1992 und 1995 entworfen – verbesserte die Möglichkeiten zum Entwurf numerischer, systemnaher und bankwirtschaftlicher Programme. Herausragende Merkmale von Ada sind etwa das strenge Typsystem (starke Typisierung), zahlreiche Prüfungen zur Programmlaufzeit, Nebenläufigkeit, Ausnahmebehandlung und generische Systeme. Ada 95 führte sogenannte tagged types (erweiterbare Typen) ein, die das Ada zugrundeliegende Konzept des Programmieren durch Erweiterung weiter ausbauen und dynamische Polymorphie ermöglichen.
Implementierungen von Ada benutzen üblicherweise keine automatische Speicherbereinigung (garbage collection) zur Speicherverwaltung, der Standard erlaubt dies jedoch. 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. Mit Ada ist es auch zum ersten Mal gelungen, Programme automatisch auf Korrektheit zu überprüfen.[3] Dazu wird die Ada-Variante SPARK verwendet. Dies ist eine Untermenge von Ada mit speziellen Annotationen. Die Korrektheit eines SPARK-Programms wird mit einem Verifikationsprogramm (SPARK Examiner) durch statische Analyse der Annotationen überprüft.
Programmierwerkzeuge
Für Ada gibt es den quelloffenen Compiler GNAT unter GP-Lizenz. Die Firma AdaCore entwickelt die integrierte Entwicklungsumgebung (IDE) GNAT Programming Studio, die in einer freien und einer kommerziellen Version angeboten wird. Darüber hinaus bieten verschiedene namhafte Hersteller Compiler mit IDEs für Ada an.[4][5][6][7][8] Ein Plugin für Eclipse, die GNATbench, wurde zunächst in der kommerziellen Version GNATpro vertrieben, ist mittlerweile aber auch unter einer GPL verfügbar. Daneben gibt es einige kleinere IDEs, die Ada unterstützen und sich vor allem für die Lehre eignen, zum Beispiel jGRASP, oder unter Windows das bekannte AdaGIDE. Außerdem existiert ein emacs-Mode für Ada.
Geschichte
In den 1970ern zeigte sich das Verteidigungsministerium der Vereinigten Staaten besorgt über die wachsende Anzahl von Programmiersprachen, die in seinen 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, bezeichnet als Strawmann, Woodenman, Tinman, Ironman, Sandman (nicht veröffentlicht) und Steelman (später auch noch Pebbleman und Stoneman für eine integrierte Entwicklungsumgebung), wurden erstellt und viele existierende Sprachen wurden überprüft, doch 1977 kam man zum Ergebnis, dass keine der vorhandenen Sprachen geeignet war. Nach einer Ausschreibung 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. Die erste Implementierung fand unter Multics statt.
Nach der Einführung Adas 1983 fiel die Anzahl der verwendeten Programmiersprachen im Verantwortungsbereich des US-amerikanischen Verteidigungsministeriums bis 1996 von über 450 auf 37. 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 einer ANSI-Norm (ANSI/MIL-STD 1815), die ISO übernahm die Norm 1987 als ISO-8652:1987. Diese Version wird heute als Ada 83 bezeichnet, nach dem Jahr der ANSI-Normung. Ada 95, die gemeinsame ISO/ANSI-Norm ISO-8652:1995, wurde im Februar 1995 angenommen. Damit wurde Ada 95 zur ersten objektorientierten Programmiersprache mit einer ISO-Norm. Im September 2000 wurde die erste technische Korrektur gemäß den Statuten der ISO als ISO/IEC 8652:1995(E)/Cor.1:2000 angenommen. Zurzeit ist die ISO/ANSI-Norm ISO-8652:1995/AMD 1:2007, informell Ada 2005, der aktuelle Standard.[9]
Um die Verbreitung des Standards und der Sprache allgemein zu unterstützen, finanzierte die US Air Force die Entwicklung des kostenfreien GNAT-Compilers. Die auf Sicherheit ausgelegten Spracheigenschaften von Ada alleine können Fehler nicht verhindern: Ariane V88, die erste Ariane 5, ging im Juni 1996 samt Nutzlast verloren, unter anderem weil ein arithmetischer Überlauf auftrat und für die vom Compiler generierte Ausnahme keine angemessene Ausnahmebehandlung implementiert worden war. Entgegen Bertrand Meyers Behauptung hätte auch die von ihm entwickelte Programmiersprache Eiffel den Verlust der Rakete nicht verhindert.[10] Im April 2008 kam Ada 2005 wieder in die Schlagzeilen, nachdem Lockheed Martin ein Update zum Flugsicherungssystem der Federal Aviation Administration vor der vereinbarten Lieferzeit und unter dem erwarteten Budget abgeliefert hatte.[11]
Hallo Welt in Ada
Das Hallo-Welt-Programm in Ada:
with Ada.Text_IO;
procedure Hallo is
begin
-- Ausgabe des Textes "Hallo, Welt!".
Ada.Text_IO.Put_Line("Hallo, Welt!");
end Hallo;
Siehe auch
- GNAT – GNU Ada Compiler
- GNAT Programming Studio (GPS)
- Ada Conformity Assessment Test Suite (ACATS)
Literatur
- Manfred Nagl: Softwaretechnik mit Ada 95. Vieweg, ISBN 3-528-15583-3.
- Harry Feldmann: Programmieren mit Ada. Vieweg, ISBN 3-528-05205-8.
- Annette Weinert: Programmieren mit Ada und C. Vieweg, ISBN 3-528-05240-6.
- Diana Schmidt: Erfolgreich Programmieren mit Ada. Springer Verlag, ISBN 3-540-57689-4.
- Klaus P. Kratzer: ADA. Hanser Fachbuch, ISBN 3-446-16545-2.
Englisch
- John Barnes: Programming in Ada 2012., ISBN 978-1-107-42481-4.
- Simon Johnston: Ada 95 for C and C++ Programmers.
- N.H. Cohen: Ada as a Second language. – sehr ausführlich.
- A. Burns und A. Wellings: Concurrency in Ada.
- Nell Dale, Chip Weems & John W. McCormick: Programming and Problem Solving with Ada 95 (2. Ausgabe), ISBN 978-0-7637-0792-7.
Referenzen
Weblinks
- comp.lang.ada (Newsgroup)
- A# – Ada für .NET/Mono
- Steelman On-Line
- Ada, C, C++, and Java vs. The Steelman
- Modula-3 and Ada
Tutorial
- Ada Vorlesungsskript ( vom 28. September 2007 im Internet Archive) (PDF; 1,4 MB) Vorlesungsskript mit Aufgaben, Lösungen ( vom 28. September 2007 im Internet Archive) (PDF; 88 kB), Beispielprogrammen ( vom 28. September 2007 im Internet Archive) (Beuth-Hochschule für Technik Berlin, Prof. Dr. Grude; 1,30 MB; ZIP)
- Ada 95: The Craft of Object-Oriented Programming (PDF) Online-Buch von John English
- The Big Online Book of Linux Ada Programming Online-Buch von Ken O. Burtch
Referenz und Glossar
- Ada Reference Manual – freie Ada-95-Online-Referenz
- Javier Miranda: A Detailed Description of the GNU Ada Run-Time. 2002
Einzelnachweise
- ↑ www.adahome.com.
- ↑ blog.adacore.com.
- ↑ John Barnes: High integrity software: the spark approach to safety and security. Pearson Education, Boston, Mass. 2003, ISBN 0-321-13616-0.
- ↑ Aonix ObjectAda – Product – Atego. In: atego.com. Archiviert vom (nicht mehr online verfügbar) am 6. August 2013; abgerufen am 17. Oktober 2011 (englisch).
- ↑ AdaMULTI IDE. In: ghs.com. Abgerufen am 17. Oktober 2011 (englisch).
- ↑ DDC-I: Ada Compilers. In: adacompiler.com. Abgerufen am 17. Oktober 2011 (englisch).
- ↑ IBM Software – Ada Developer Product Line. In: ibm.com. Abgerufen am 17. Oktober 2011 (englisch).
- ↑ XD ADA. In: swep-eds.com. Archiviert vom (nicht mehr online verfügbar) am 9. Mai 2014; abgerufen am 17. Oktober 2011 (englisch).
- ↑ ISO-Norm ADA 2005. In: iso.org. Archiviert vom (nicht mehr online verfügbar) am 2. Mai 2007; abgerufen am 17. Oktober 2011 (englisch).
- ↑ Ken Garlington: Critique of “Put it in the contract: The lessons of Ariane”. In: lore.ua.ac.be. 7. August 1997, abgerufen am 14. Oktober 2011 (englisch).
- ↑ Joab Jackson: The return of Ada. In: gcn.com. Abgerufen am 17. Oktober 2011 (englisch).