Die wichtigsten Eigenschaften der Programmiersprache Ada
Compiletime Checks:
Extensive Checks während der Compilierzeit. Dies führt dazu, dass die normalen Flüchtigkeitsfehler die bei anderen Programmiersprachen zu extremem Testaufwand führen, bei Ada schon während der Compilierzeit entdeckt werden. Der daraus resultierende verringerte Aufwand bei Test und Integration ist einer der Hauptgründe für die Kostenreduktion bei der Verwendung von Ada in großen Projekten.
Runtime Checks:
Während der Laufzeit eines Ada-Programmes werden definierte Checks durchgeführt. Bei der Verletzung dieser Regeln werden sofort Fehler ausgelöst. Durch die Verwendung von Exception Handlern, die man in jedem Block einbauen sollte, ist dann eine leichte Lokalisierung des Fehlers möglich.
Objektorientierung:
Ada ist eine durch eine Internationalen Standard definierte objektorientierte Programmiersprache. (Meines Wissens auch die einzige)
Grady Booch einer der Gurus der Objektorientierten-Softwareentwicklung und der UML (Unified Modeling Language) ist mit dem Buch "Software Engineering with Ada" bekannt geworden.
Ada gehört zu den Programmiersprachen über die Objektorientierung und andere moderne Software Engineering Methoden wie Datenkapselung und "Information Hiding" verbreitet wurden.
Multitasking:
Innerhalb eines Programmes können mehrere Tasks definiert werden, die als selbständige Threads laufen. Dadurch kann man elegant die Behandlung von asynchronen Ereignissen und Datenströmen programmieren. Bei anderen Programmiersprachen muß man in der Regel auf die Thread- oder Prozesstruktur des Betriebssystems zugreifen und wird dadurch abhängig vom verwendeten Betriebssystem.
Modularisierung:´
Das Ada Package Konzept bietet die Möglichkeit die größten Softwareprojekte zu gliedern und zu Modularisieren. Die separate Compilierbarkeit von Ada-Units ist ein mächtiges Werkzeuge um ein Software Projekt von einem großen Team durchzuführen.
Generische Komponenten:
Generische Komponenten sind ein mächtiges Werkzeug mit dem sich wiederverwendbare Komponenten erzeugen lassen die mit verschiedenen Datentypen, Prozeduren und Paketen parametrisiert werden können.
Portabilität:
Die Programmiersprache wird durch den Ada Sprachstandard definiert. Eine Validierung eines Ada-Compilers gegen den Ada Sprachstandard ist möglich und wird von den meisten Compilerherstellern durchgeführt. Dies sichert die Portierbarkeit zwischen verschiedenen Compilerherstellern und Hardwareplattformen.
Tipp: Man sollte nur validierte Ada Compiler verwenden.
Language Interfaces:
Die Programmiersprache Ada hat definierte Schnittstellen zu anderen Programmiersprachen. Dadurch werden auch diese Schnittstellen plattformunabhängig.
Insbesondere lassen sich dadurch vorhandene C-Komponenten elegant in ein Programm einbinden.
Error Recovery:
Durch den Exception Handling Mechanismus in Ada können Fehler abgefangen werden und auf den Fehler abgestimmte Programmschritte definiert werden.
Tipp: Bauen Sie in jeden Block einen Exception Handler ein, der es ihnen ermöglicht einen währen der Laufzeit auftretenden Fehler zu lokalisieren und zu analysieren. Dies erleichtert Ihnen die Arbeit beim Testen und Integrieren.
Mit Ada ist es möglich, jedes Bit einzeln zu manipulieren. Die hochentwickelten Ada Datenstrukturen lassen sich auf vordefinierte Bitmuster und Adressen abbilden.
Ada ist eine komplexe Programmierprache. Es dauert deshalb länger als bei anderen Programmiersprachen, bis man Ada beherrscht. (Rigide Checks zur Compilier- und zur Laufzeit des Programms)
Die Implementierung eines Ada Compilers und der notwendigen Laufzeitumgebung ist entsprechend der Komplexität der Sprache sehr aufwändig.
Der Tippaufwand ist im Vergleich zu C, C++ und Java höher. (Dies ist aber eine notwendige Voraussetzung für die Lesbarkeit und Wartbarkeit des Codes)
...
Typische Anwendungsbereiche:
militärische Anwendungen
embedded controler
sicherheitskritische Systeme
Software-Engineering
Lehrsprache im Grundstudium an mehreren Universitäten
Software Engineering with Ada von Grady Booch. Ein hervorragendes Buch und Nachschlagewerk zur Programmiersprache Ada und die Fundamente des Software Engineerings. Leider wurde dieses Buch nie auf Ada 95 abgedatet.
Ada from the Beginning von Jan Skansholm. Eine hervorragende Einführung in die Programmiersprache Ada. Das Thema Tasking wurde allerdings ausgelassen.
Ada as a second Language Second Edition von Norman H.Cohen. Ein sehr umfangreiches Buch aber lohnend. Zum lesen sollte man genügend Zeit mitbringen.