Ada 95 ist die zweite und aktuelle Version der Programmiersprache Ada 83. Wichtige Kon strukte sind hinzugekommen, insbesondere für Objektorientierung und Nebenläufigkeit. Ada entstand aus einer Initiative des Verteidigungsministeriums der USA (Department of Defense, DoD). Neben dem speziellen Anwendungsbereich Realzeitsysteme/eingebettete Systeme wer den verschiedene andere Anwendungsbereiche durch spezielIe Erweiterungen unterstützt. Im Gegensatz zu früheren Jahren sind mittlerweile auch preiswerte, ja sogar kostenlose Compiler verfügbar. In den USA findet derzeit ein merklicher Teil der Programmier-Grundausbildung in Ada statt. Dies alles wird die Verbreitung der Sprache über die bereits vorhandene Ada Gemeinde hinaus verstärken. Dieses Buch ist eine Einführung in die Sprache Ada 95. Es ist nicht für Ada-Compilerentwick Ier gedacht. Hier steht die methodische Verwendung der Sprache im Vordergrund und nicht die Abgrenzung erlaubter von nichterlaubten Konstruktionen. Trotzdem solI bei einer Unklarheit bezüglich der Verwendung von Ada hier eine Antwort auffindbar sein. Dieses Buch ist auch nicht als Einführung in das systematische Programmieren für Anfänger gedacht. Statt dessen wendet es sich an Personen, die bereits Erfahrung im Programmieren mit mindestens einer höheren Pro grammiersprache haben. Dies kann auch Fortran, Cobol oder Csein. Für diesen Personenkreis ist dieses Buch sowohl als Grundlage und Begleittext sowohl für Vorlesungen oder Kurse, als auch zum Selbststudium geeignet. Die Kenntnis einer neueren, höheren Ausbildungs-Programmier sprache, wie etwa Modula-2 oder -3, ist zwar nicht Voraussetzung für das Lesen, erleichtert jedoch den Einstieg.
Inhaltsverzeichnis
1 Softwaretechnik und Ada.- 1.1 Geschichte der Ada-Sprachentwicklung.- 1.2 Ziele der Ada-Initiative und Softwaretechnik-Verbindung.- 1.3 Softwaretechnik: Phasen, Arbeitsbereiche und Zusammenhang.- 1.4 Ada im Entwicklungsprozeß großer Softwaresysteme.- 1.5 Gütekriterien für Programmsysteme, Fehler und Risiken.- 1.6 Wiederverwendung.- 1.7 Ada-Programmiersysteme, Validierung.- 1.8 Umgebungen für die Entwicklung in Ada.- 1.9 Informationsfülle, Übersicht und Lesehilfen.- 1.10 Zusammenfassung.- Aufgaben zu Kapitel 1.- 2 Programmiersprachen-Grundbegriffe und lexikalische Einheiten.- 2.1 Syntaxnotation für den Programmaufbau.- 2.2 Alphabet, Trennzeichen und lexikalische Einheiten.- 2.3 Bezeichner, Zahlen und Zeichenkettenliterale.- 2.4 Quellprogramm-Darstellung, Lesbarkeit und Pragmas.- 2.5 Programme und Maschinen, Semiotik, Fehler.- 2.6 Spracherweiterung, Aufwärtskompatibilität und Konformität.- 2.7 Ada in der Programmiersprachen-Landschaft.- 2.8 Zusammenfassung und Änderungen.- Aufgaben zu Kapitel 2.- 3 Objekte für das Programmieren im Kleinen.- 3.1 Vorschau: Einfache Objekt- und Typdeklarationen.- 3.2 Ausdrücke, Wertzuweisungen und Anweisungsfolgen.- 3.3 Fallunterscheidungen (if- und case-Anweisung).- 3.4 Schleifen (for- und while-Anweisung).- 3.5 Geschachtelte Kontrollstrukturen und Sprünge.- 3.6 Blockstruktur, Gültigkeit, Sichtbarkeit.- 3.7 Funktionen und Operatoren.- 3.8 Prozeduren und Allgemeines über Unterprogramme.- 3.9 Ausnahmebehandlung bei Blöcken und Unterprogrammen.- 3.10 Text-Ein-/Ausgabe.- 3.11 Zusammenfassung und Änderungen.- Aufgaben zu Kapitel 3.- 4 Datenstrukturierung detailliert.- 4.1 Skalare Basisdatentypen und Aufzählungstypen.- 4.2 Felder mit spezifizierten Grenzen.- 4.3 Feldtypen mit unspezifizierten Grenzen und der DatentypString.- 4.4 Einfache Verbunde.- 4.5 Verbunde mit Diskriminanten.- 4.6 Das Typkonzept von Ada, Untertypen, abgeleitete Typen.- 4.7 Ganzzahlige Datentypen.- 4.8 Typen numerisch-reeller Zahlen: Gleitpunkttypen, Festpunkttypen.- 4.9 Ausdrücke.- 4.10 Zeigertypen und Haldenobjekte, Listenverarbeitung.- 4.11 Zugriffe auf deklarierte Objekte und Prozeduren, Zugriffsparameter.- 4.12 Zusammenfassung und Änderungen.- Aufgaben zu Kapitel 4.- 5 Programmieren im Großen.- 5.1 Der generische Mechanismus und generische Unterprogramme.- 5.2 Pakete, die Ada-Programmeinheiten für Module und Teilsysteme.- 5.3 Anwendungen von Paketen.- 5.4 Objektorientierte Systemgestaltung.- 5.5 Getrennte Übersetzung: Untereinheiten, Bibliothekseinheiten.- 5.6 Hierarchische Bibliotheken.- 5.7 Programmstruktur, Sichtbarkeit, Abarbeitung, Ausführung.- 5.8 Zusammenspiel und Vergleich der Konzepte.- 5.9 Ein Beispielsystem.- 5.10 Zusammenfassung, Wertung und Änderungen.- Aufgaben zu Kapitel 5.- 6 Nebenläufige Programmsysteme.- 6.1 Prozeßeinheiten als Programmeinheiten für nebenläufige Programmierung.- 6.2 Das Rendezvous-Konzept zur direkten Prozeßkommunikation.- 6.3 Mechanismen für bedienende Prozesse.- 6.4 Gemeinsame Daten und indirekte Prozeßkommunikation.- 6.5 Signale, requeue-Anweisung und Ressourcenzuteilung.- 6.6 Verzögerung, zeitliche Begrenzung, asynchroner Kontrollfluß.- 6.7 Prozeßtypen, Entry-Familien, Implementierungsaspekte.- 6.8 Beendigung, Unterbrechung, explizite Kontrolle und Ausnahmebehandlung.- 6.9 Das Decodierbeispiel aus Architektursicht.- 6.10 Zusammenfassung und Änderungen.- Aufgaben zu Kapitel 6.- 7 Beziehungen zur Umgebung des Ada-Programmsystems.- 7.1 Ein-/Ausgabe und Dateiverwaltung.- 7.2 Sequentielle EA, Text-, Direktzugriffs-EA.- 7.3 Andere Formen derEin-/Ausgabe.- 7.4 Angaben zur Darstellung auf der Basismaschine.- 7.5 Anbindung weiterer Teile an ein Ada-Programm.- 7.6 Zusammenfassung und Änderungen.- Aufgaben zu Kapitel 7.- Literatur.- Anhänge.- 1 Ada-Wortsymbole.- 2 Vordefinierte Attribute.- 3 Vordefinierte Pragmas.- 4 Ausnahmen und zugehörige Laufzeitprüfungen.- 5 Übersicht über die Annexe.- 5 Ada-Grammatik.- Stichwortverzeichnis.