ebook img

ADA: Eine Einführung in die Programmiersprache der Softwaretechnik PDF

352 Pages·1992·21.174 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview ADA: Eine Einführung in die Programmiersprache der Softwaretechnik

Manfred Nagl ADA Eine Einfiihrung in die Programmiersprache der Softwaretechnik ~ __ Informatikliteratur zur Programmierung __- -., Pascal - Lehrbuch fur das strukturierte Programmieren von D. Cooper und M. Clancy Einfuhrung in die Programmiersprache Modula 2 von H. Pudlatz Einfuhrung in die Programmiersprache C++ von F. Bause und W. Tolle Einfuhrung in die Programmiersprache COBOL von W.-M. Kahler Programmieren in PL / I - Eine moderne Einfuhrung von E. Sturm ADA - Eine Einfiihrung in die Programmiersprache der Softwaretechnik von M. Nagl Die WissensreprCisentationssprache OPS 5 von R. Krickhahn und B. Radig Prolog - Eine methodische Einfiihrung von R. Cordes, R. Kruse, H. Langendorfer und H. Rust JSP - Einfuhrung in die Methode des Jackson Structured Programming von K. Kilberth Modulare Reg~lprogrammierung von S. Bocionek Logische und Funktionale Programmierung von U. Furbach '--__ Vieweg ________________- ---' MANFRED NAGL Eine Einfiihrung in die Programmiersprache der Softwaretechnik 4./ verbesserte Auflage I I Vleweg 1. Auflage 1982 Nachdruck 1983 2., neubearbeitete und erweiterte Auflage 1988 Diese Auflagen sind erschienen unter dem Titel "EinfOhrung in die Programmiersprache Ada" 3., verbesserte Auflage 1991 4., verbesserte Auflage 1992 Das in diesem Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Die Autoren und der Verlag Obernehmen infolgedessen keine Verantwortung und werden keine daraus folgende oder sonstige Haftung Obernehmen, die auf irgendeine Art aus der Benutzung dieses Programm-Materials oder Teilen davon entsteht. DerVeriag Vieweg ist ein Unternehmen derVeriagsgruppe Bertelsmann International. Aile Rechte vorbehalten © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig /Wiesbaden, 1992 Das Werk einschlieBlich aller seiner Teile ist urheberrechtlich geschOtzt. Jede Verwertung auBerhalb der eng en Grenzen des Urheberrechtsge setzes ist ohne Zustimmung des Verlags unzulassig und strafbar. Das gilt insbesondere fOr Vervielfaltigungen, Obersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Umschlag: Schrimpf + Partner, Wiesbaden Gedruckt auf saurefreiem Papier ISBN-13:978-3-528-33347-8 e-ISBN-13:978-3-322-83230-6 DOl: 10.1007/978-3-322-83230-6 v Vorwort zur 1. Auflage Dieses Buch ist nicht fiir jemanden gedacht, der einen Ada-Ubersetzer schreiben will. Es steht hier eher die methodische Verwendung der Sprache im Vordergrund als die Abgrenzung erlaubter von nichterlaubten (syntak tischen) Konstruktionen. 'frotzdem solI beim Nachschlagen wegen einer Unklarheit beziiglich Ada hier eine priizise Antwort auffindbar sein. Dieses Buch ist auch niehl als Fin./iihrung in das systematische Programmieren fUr Alif'anger gedacht. Statt dessen wendet es sich an Personen, die bereits eine gewisse Erfahrung im Program mieren mit mindestens einer hOheren Programmiersprache haben. Dies kann auch FORTRAN oder COBOL sein. Fiir diesen Personenkreis sollte die nachfolgende Ausarbeitung sowohl als Thxtbuch fiir Programmierkurse (auch wenn diese mangels eines verfiigbaren Obersetzers vielerorts noch als 'frockenkurs abgehalten werden miissen) als auch zum Selbststudium geeignet sein. Die Kenntnis einer neueren hoheren Programmiersprache, wie etwa PASCAL, ist zwar nicht Voraussetzung fiir das Lesen, doch erleichtert sie den Einstieg. Ada entstand aufgrund einer Initiative des Verteidigrmgsministeriums der USA, das seine Ausgaben fiir Soft ware in den Griff zu bekommen versuchte (1975 etwa 3,5 Milliarden $). Ein gro6er Teil dieser Ausgaben ging in den Bereich der sogenannten eingebetteten Systeme (z.B. Bordcomputer eines Flugzeugs), der sich durch Ef fazienzvorgaben (Speicherplatz, Laufzeit), Hardwareniihe (z.B. durch Einsatz nichtstandardmiiSiger Ein-/A us gabe) und Notwendigkeit von Konzepten fiir RealzeitanforderungenlNebenliiufigkeit auszeichnet. Insbeson dere durch Unterstiitzung der Zuverliissigkeit, Portabilitiit und Wartungsfreundlichkeit von Software sollte eine RedukJion der Kosten erzielt werden. Das Ergebnis der Initiative ist eine universelle hOhere Program miersprache, die sich fiir einen breiten Einsatz eignet, nicht nur auf dem Gebiet der eingebetteten Systeme. Ada bietet fiir Kontroll-und Datenstrukturen vielfilltige Konstrukte an. Ada eignet sich wegen des Paketkon zepts, der Hilfsmittel zur getrennten Obersetzung und der generb:hen Programmeinheiten insbesondere auch fiir das Programmieren "gro6er" Probleme, die von einer Programmierermannschaft und nicht von einem ein zelnen Programmierer bearbeitet werden. Hier ist die Beachtung der Erkenntnisse des Software-Engineering, insbesondere beziiglich der Programmiermethodik, unerliiSlich. Wir haben deshalb in Kapitel1 die wichtigsten Grundbegriffe aus diesem Bereich zusammengetragen. Aber auch wiihrend der restlichen Ausarbeitung wurde stets versucht, die methodische Sicht bei der Erorterung der Ada-Sprachelemente zu betonen. Ada ist kein Forschungsergebnis, sondem das Resultat eines Entwieklungsprozesses, der offentlieh und unter gro6er Anteilnahme der Offentlichkeit (aus Industrie, Verwaltung und Universitiiten) ablief. Insoweit faSt Ada eherbisher Bekanntes zusammen und repriisentiert den Stand der Thchnik auf dem Programmiersprachensek tor, als neue, bahnbrechende Wege zu gehen. Aus dieser Offentlichkeit ist bereits jetzt, vor uem Gro6einsatz dieser Sprache, ein Erfolg der Ada-Untemehmung erkenntlich: Mit der Diskussion iiber Ada wurde auch stets iiber Konzepte in Programmiersprachen diskutiert und damit zur Verbreitung und Erweiterung von Kenntnis iiber Programmiersprachen beigetragen. Biicher iiber Programmierung fallen hauptsiichlich in zwei Kategorien. Die eine Kategorie enthiilt Ein fiihrungen in die Programmierung, heute meist mit dem Zusatz methodisch oder systematisch. Urn dieser Ziel setzung gerecht zu werden, sollten hierbei aIle Gesichtspunkte des Programmierens angesprochen werden, ins besondere die Verifikation, die Effizienzanalyse und die Programmiermethodik. Eine solche Darstellung ist jedoch einerseits weitgehend programmiersprachenunabhiingig und andererseits nur fiir "kleine" Probleme machbar. Man sollte sich dabei einer einfachen aber sauberen Programmiersprache bedienen, wie etwa PAS CAL oder ELAN. Ein Buch iiber Ada mllS schon wegen des Umfangs der Sprache, die ja auch weniger fiir die Ausbildung als fiir den Einsatz in gro6em MaSstab erfunden wurde, in die zweite Kategorie von Biichem fallen, niimlich in die der Fin./iihrungen in eine bestimmte Programmiersprache. Hier darf dann auch einige Kenntnis iiber die Programmierung vorausgesetzt werden. Wir haben bei der Erliiuterung von Ada versucht, die sinnvolle und methodische Verwendung dieser Sprachkonstrukte in den Vordergrund zu riicken und nicht nur die Details zu sehen, wie das eine oder andere hinzuschreiben ist. Jede Programmiersprache, insbesondere abe~ eine so umfangreiche wie Ada, ist stark rekursiv. Man weill nicht, wo mit der Erliiuterung begonnen werden solI, da die einzelnen Konstrukte direkt oder indirekt gegen seitig voneinander abhiingen. Dadurch wird in vielen Fallen Wiederholung erzwungen. Wir haben versucht, aus dieser Not eine 1\Jgend zu machen. So wurden die komplizierten Sprachelemente im allgemeinen stets zuerst in einfacher Form erliiutert, die allgemeine Verwendung und das dahinterstehende Konzept wurde spater nach getragen. Eine Einfiihrung in eine Programmiersprache sollte sich in ihrem Aufbau nicht am Sprachreport ItI orientieren. Bei diesem ist es eine Zielsetzung, diese obige Rekursivitiit sichtbar werden zu lassen, wiihrend es hier aus didaktischen Griinden Zielsetzung ist, diese zuniichst zu verbergen. Ein einfiihrendes Buch iiber eine Programmiersprache ist kein geeigneter Platz, sich kritisch mit einer Programmiersprache auseinanderzusetzen. Wir haben deshalb an einigen Stellen bewuBt auf Randbemerkun gen verzichtet. Die Akzeptanz einer Programmiersprache hiingt nieht von ihren "technischen" Eigenschaften ab, sondern auch von dem Vorhandensein verstiindlicher Einfiihrungen und Nachschlagewerke. Wir hoffen, ZU diesem Gesichtspunkt der Pragmatik von Ada einen klein en Beitrag geleistet zu haben. Nun eine Ubersicht: Kapitell beschiiftigt sich nach einer kurzen Darstellung der Entwicklungsgeschiehte von Ada mit einigen Grundbegriffen der Softwaretechnik. In Kapitel2 wird die Notation der Syntax erliiutert, und die Grundsymbole der Sprache werden aufgefUhrt. Kapitel3 ist den Elementen des Programmierens im Kleinen gewidmet und dabei hauptsiichlich den Struk turen zur Ablaufkontrolle. Dazu zahlen insbesondere die schon klassischen Kontrollstrukturen if- , case-, while-und for-Anweisung, die Funktionen und Prozeduren und die Spriinge. Nicht klassisch ist hier lediglich die Ausnahmebehandlung. Datenstrukturen werden hier nur andeutungsweise angesprochen, urn kleine Pro gramme oder Programmstiicke formulieren zu konnen. Die 1extein-/ausgabe wird jedoch bereits hier abgehan delt. Kapitel 4 erliiutert die Datenstrukturierung, die in neuen Programmiersprachen umfangreicher ist als die Ablaufstrukturierung. Hierzu zahlen die Aufzahlungstypen, die Felder und Verbunde, die in Ada in speziellen Formen als Felder mit unspezifizierten Grenzen und Verbunde mit Diskriminanten auftreten konnen. Erst dann folgt das 'I)'pkonzept mit der Erkliirung der Begriffe Typ, Untertyp, abgeleiteter'I)'p. Den numerischen Typen, niimlich den ganzzahligen und den reellen Datentypen, ist hier in Ada mehr Aufmerksamkeit geschenkt worden als in anderen Programmiersprachen insoweit, als sich der Programmierer (iiber die Definition neuer numeri scher Typen) unabhiingig von den vordefinierten numerischen 'I)'pen machen kann. Ein ausfiihrlicher Abschnitt iiber Zeiger und Haldenobjekte und ihre Verwendung in der Listenverarbeitung schlieBt das Kapitel abo Wiihrend Kapitel 3 und 4 eher die konventionellen Sprachelemente enthiilt, die hauptsiichlich dem Programmieren im Kleinen, d.h. der Implementierung einzelner Moduln dienen, bietet das Kapitel 5, teilweise auch 6, Elemente fUr das Programmieren im GroBen, die wiihrend des Entwurfs bzw. wiihrend der Wartung gro Ber Software-Systeme benotigt werden. Hierzu zahlen hauptsiichlich das Paketkonzept, das Konzept der Generizitiit, der privaten 'I)'pen und die Hilfsmittel zur getrennten Ubersetzung, niimlich Bibliothekseinheiten und Untereinheiten. Da sich hinter letzterem mehr verbirgt als nur Hilfen fUr die textuelle Aufteilung des Programms, haben wir in einem sehr ausfUhrlichen Abschnitt versucht, den Bezug zu Modulkonzepten hera us zuarbeiten. KapiteI 6 dient der Erkliirung der nebenliiufigen Programmierung. Nach Einfiihrung der hierfiir vor gesehenen Programmeinheit (der Thsk), der automatischen Aktivierung und der normalen Beendigung, foIgt das Rendezvous-Konzept als Konstrukt zur Synchronisation und zum gegenseitigen AusschluB. Der niichste Abschnitt widmet sieh der nichtdeterministischen Auswahl zwischen verschiedenen Interaktionswiinschen auf der Seite der akzeptierenden Thsk. Verzogerung, Unterbrechung, Ausnahmebehandlung, normale und anomale Thskbeendigung schlieBen sieh an, sowie Ada-Spezielles wie Thsktypen und Entryfamilien. Ein groBeres Beispiel schlieBt das KapiteI abo Das letzte Kapitel erliiutert die Beziehungen zur Umwelt. Hierzu zahlt die Ein-/Ausgabe mit ihrer Un terscheidung zwischen internen und externen Dateien, die neben Ein-/A usgaberoutinen auch die Dateiverwal tung mit enthiilt. Schlie.Blich gibt es noch vielfaltige Moglichkeiten der Angabe von Darstellungen auf der Basis maschine. Jedes Kapitel endet mit Ubungsaufgaben, die der Leser zur Vertiefung seiner Ada-Kenntnisse benutzen kann. Ein umfangreiches Literaturverzeichnis soIl Hinweise zum weiteren Studium geben. Die vordefinierten Pragmas und die vordefinierten Ausnahmen sind in Form zweier Anhiinge am Ende zusammengestellt. Die vor definierten Attnbute werden in den entsprechenden Buchabschnitten erliiutert. Dem leichten Nachschlagen schlieBlich dient ein Anhang, der die gesamte Grammatik enthiilt, sowie ein ausfiihrliches Register. Ich mOchte dieses Vorwort mit einer Dan1csagung an aile diejenigen abschlieBen, die zu der Gestalt dieses Buches in seiner jetzigen Form durch Kritik, Anregungen und Hilfe beigetragen haben. Hier sind Herr Dr. H. Hummel und Dr. PlOdereder, Miinchen, sowie Herr Kollege J. Perl Oetzt Main:/i) zu nennen. Zu besonderem Dank wegen sehr intensiver Mitarbeit bin ich jedoch Herrn Kollegen J. Ebert und den Herren Dr. G. Engels und Dr. W. Schiifer (aile friiher in Osnabriick), sowie Herrn Dr. R. Gall, Erlangen, verpflichtet. SchIieBlich gilt mein Dank auch Frau K. Guss fUr die groBe Geduld und Sorgfalt beim Schreiben dieses Manuskripts, sowie dem Vieweg-Verlag fUr das Anfertigen der Zeichnungen. Fiir Fehler und Miingel ist der Autor allein verantwortlich. VII Es kann auch kein Compiler dafiir zur Rechenschaft gewgen werden, die (hoffentlich nicht zu zahlreichen) Syn taxfehler nicht erkannt zu haben. Osnabriick, im Juni 1982 Manfred Nag[ Vorwort zur 2. Autlage Seit dem Erscheinen der ersten Auflage dieses Buches hat sich ,iniges geiind,rt: Ada ist seit 1983 standar disiert worden, Ada-Veranstaltungen finden heute nicht mehr nur als Thockenkurse statt, weil in den letzten Jahren effizientere und preiswertere Ada-Compiler vediigbar wurden, in der Industrie gibt es mehr und mehr Software-Projekte, die in Ada implementiert werden, und die Initiativen und Aktivitiiten urn Ada herum, die man in den USA als 'Ada Culture' bezeiehnet, haben sich verstiirkt und ausgeweitet (Validierungsprozedur, Ada-Software-Entwicklungsumgebung, STARS-Projekt usw.). Ferner, was nieht gering geschlitzt werden dad, hat ein Arbeitskreis eine deutsche Ada-Thrminologie erarbeitet, die in dieser 2. Auflage iibernommen wurde. Ada ist fiir die Erstellung gro8er Softwaresysteme gedacht, wo die Erkenntnisse, Konzepte und Methoden der Softwaretechnik eingesetzt werden sollten. Ada bietet hiediir vielerlei Konstrukte an. Dies betrifft ins besondere die Konstrukte fiir das Programmieren im Gro8en, die insbesondere die Wartung vereinfachen, sich aber ebenfalls auf die lebenszyklusbegieitenden Bereiche Qualitiitssicherung, Projektmanagement und Dokumentation giinstig auswirken. Man kann Ada deshalb ohne Ubertreibung als di, Softwaretechnik-Program miersprache bezeichnen! Ein Buch iiber Ada sollte diesen Zusammenhang deutlich werden lassen. Nach Kenntnis des Autors war die 1. Auflage dieses Buches das erste Buch, das diesen Zusammenhang herausgearbeitet hat. Diese Vedlechtung mit der Softwaretechnik wurde in der 2. Auflage noch einmal betriichtlich verstiirkt (insbesondere durch Kap. 1 und Kap. 5). Edahrungen des Autors mit Ada-Vorlesungen und Industrieseminaren bestiitigen, daB bei diesem didaktischen Ansatz der gedankliche Hintergrund der Ada-Konzepte vermittelt werden kann, d.h. sich die Er orterung nicht nur auf die Aufziihlung der Sprachkonstrukte beschriinkt. Ada gehort zur Familie der imperativen und prozeduralen Programmiersprachen und liegt damit auf der Linie der ''klassisch,n'' Programmiersprach,n (FOKfRAN - Algol 60 - PUI - Algol 68 - Pascal). In Ada sind Ideen einer Reihe anderer neuerer Programmiersprachen eingeflossen (Modula, Alphard, CLU, US, Mesa etc.). Diese Sprachlinie zeiehnet sieh durch das Bestreben nach Sicherheit (durch viele Compilezeit-Priifungen) und Effizienz (insbesondere fiir den erzeugten Code) aus. Diese Ausrichtung ist ganz im Sinne der oben an gedeuteten Vedlechtung mit der Softwaretechnik. Thotz dieser eher konservativen Ausrichtung von Ada hat der Sprachllorschlag nicht nur Zustimmung hervor gerufen (vgl. Literatur in Abschnitt 3). Dabei richtet sich die Kritik weniger gegen den Ansatz der Sprache an sieh, sondern eher gegen einzelne Sprachkonstrukte, insbesondere jedoch gegen den Gesamtumfang der Sprache. Auf diese Kritik wird in der folgenden Darstellung nicht im einzelnen eingegangen. Obwohl sich der Autor in etlichen Punkten dieser Kritik anschlie8en kann, so teilt er doch die Uberzeugung, daB Ada fiir den profession ellen Bereich das beste ist, was an Programmiersprachen z.Zt. zur Vediigung steht und fiir den niichsten iiberschaubaren Zeitraum zur Vediigung stehen wird. Neben dieser eher konservativen Ausrichtung von Ada haben in den letzten Jahren einige Program miersprachen in der wissenschaftlichen Diskussion Bedeutung erlangt oder eine Renaissance edahren, die vollig anderen SoftwareersteUungs-Paradigmen folgen, und die wir in diesem Buch nicht erliiutern. Es sind dies, urn nur die wichtigsten aufzuziihlen: Programmieren ist Logik (logisChe Programmiersprachen), Programmieren ist Erstellen loser Einheiten mit Vererbung und Botschaftsaustausch (objektorientierte Sprachen), Program mieren ist Zusammenbau. von Funktionen (funktionale Spnichen), Programmieren ist Spezifizieren (Spezifikationssprachen, 1tansformationssprachen), Programmieren ist Zusammenstellen von Fakten und Regeln (KI-Sprachen) u.s. w. Diese Paradigmen konnen eines Thges fiir die tiigliche praktische Arbeit des Soft ware-Ingenieurs gr08e Bedeutung erlangen. Dies ist jedoch eher fiir einen liingedristigen Zeitpunkt der Fall. Eine verstiindliche Ada-EinJUhrung zu schreiben, ist niehl einfach. Dies hat zum einen mit der Vedlechtung mit der Softwaretechnik zu tun, da nicht bei jedem Leser Basiswissen iiber diesen Bereich vorausgesetzt werden kann. Zum anderen redet man bei der Erliiuterung von Ada, wegen des zusammenfassenden Charakters dieser Sprache, implizit auch immer iiber Konzepte von (klassischen) Programmiersprachen. Ein Blick in das In- VIII haltsverzeichnis so manchen Buches iiber Programmiersprachenkonzepte (vgl. Literaturabschnitt 4) bestlitigt dies. Dort findet man niimlich oft die Kapiteleinteilung des Ada-Sprachreports wieder. Letztlich erfordert das bereits im Vorwort der 1. Auflage diskutierte Rekursivitlitsproblem von Programmiersprachen und der Urnfang von Ada eine sorgfaltige didaktische Ausarbeitung. Jede Ada-Einfiihrung, die aile diese Probleme verschleiert und den Eindruck erweckt, als sei Ada eine Sprache fiir Anfanger oder im Handumdrehen zu vermitteln, ist die Zeit nicht wert, mit der man sich mit ihr beschiiftigt. Die Verflechtung mit der Softwaretechnik bzw. die Diskussion iiber Programmiersprachenkonzepte bereichert an sich die Denkwelt jedes Lesers und hat damit Auswirkungen auf seine tligliche Arbeit auch dann, wenn er in der niichsten Zeit keine Chance hat, Ada fiir ein konkretes Projekt einzusetzen. Dies gilt iibrigens auch fiir die oben angedeuteten anderen Softwareerstellungs-Paradigmen. Eine Beschiiftigung mit diesen Paradigmen bringt nicht nur Bereicherung, da sie in andere Denkwelten einfiihrt, sondem sie laBt auch die Kon zepte von Ada in einem deutlicheren Licht erscheinen. Wenn fiir Ada als Programmiersprache 7I!ilsprachenbi/dung verboten ist, d.h. jeder Compiler Ada voll "verstehen" konnen muB, so gilt dies nicht notwendigerweisefiir die Lehre. So ist der Pascal-leil von Ada allein durch Kap. 3 und 4 beschrieben, wobei noch einige Abschnitte wegfallen (etwa 3.9, 4.7 und 4.8) und einige sich vereinfachen. In diesem Sinne ist Ada auch fiir die Anfangerausbildung einsetzbar. 1st man nur an sequentieller Programmierung interessiert (z.B. iibliche mathematisch-technische Anwendungen, betriebswirtschaftliche Anwendungen, Systemprogrammierung ohne Nebenliiufigkeit), so kommt noch Kap. 5 hinzu. Fiir numerische Anwendungen ist dariiber hinaus ein detailliertes Studium der Abschnitte 3.7 und 3.8 notig. Nur wenn man sich mit nebenliiufiger und hardwarenaher Programmierung gleichzeitig beschiiftigt, ist ein Studium der gesamten Sprache (bis auf die numerischen Datentypen) notig. Ich mochte dieses Vorwort mit einem Dank an aile diejenigen abschlieBen, die zu der 2. Auf1age des Buches beigetragen haben. Hier ist zuniichst Herr Dr. C. Lewerentz zu nennen, der das Thxtsystem geschrieben hat, mit dem dieses Manuskript neu erstellt wurde, und der bei Auftreten von Schwierigkeiten seines Pilotsystems nie die Geduld mit den Bedienem und seinem Produkt verlor. Insbesondere m6chte ich mich bei Frau G. Holmann, Os nabriick, bedanken, die trotz des Urnfangs des Manuskripts, der Schwierigkeiten mit dem Thxtsystem und der mehrmaligen Verbesserungen stets mit Engagement, Sorgfalt und unglaublicher Geduld dieses Manuskript nicht nur geschrieben, sondem auch in eine druckreife Form gebracht hat. SchlieBlich bin ich Herrn Dr. Jackel, Koblenz, und Herrn Heimann, insbesondere aber den Herren A. Schiirr und B. Westfechtel fiir das kritische Durcharbeiten des Manuskripts und der vielen sich daraus ergebenden Verbesserungsvorschliige dankbar. Aachen, im September 1987 Manfred Nag! Vorwort zur 3. und 4. Auflage Der Inhalt der dritten und vierten Auflage ist nahezu identisch mit dem der zweiten. Es wurde lediglich je weils das Literaturverzeichnis aktualisiert. Wie bereits im Vorwort zur zweiten Auflage festgestellt, steht eine breite Anwendung von Ada in der Indus trie bzw. in Hochschulen zur Zeit noch aus. Das Buch hat somit, neben einer Grundlage der Schulung fiir Ada Programmierer, seine Bedeutung in erster Linie darin, die Konzepte modemer k1assischer Sprachen vor zufiihren, die in Ada sauberer als sonst definiert sind. Der Titel des Buches wurde geiindert, urn die Verflechtung mit der Softwaretechnik zum Ausdruck zu brin gen. Dies war bereits ein Anliegen der ersten Auf1age und wurde durch die Oberarbeitung der zweiten Auf1age noch deutlicher. Fiir das in Kap. 5 imgesprochene Modulkonzept ist inzwischen eine urnfangreiche Ausarbeitung entstanden /5. Na 90/. Da diese groBtenteils programmiersprachenunabhiingig ist, wurde daraufverzichtet, Kap. 5 auszuweiten. Die sich abzeichnenden Anderungen von Ada im Zusammenhang mit dem 9X-Standard werden in der niichsten Auflage beriicksichtigt. Aachen, im Oktober 1990 bzw. Oktober 1991 Manfred Nag! IX INHALT 1. ADA UNO SOFfWARETECHNIK 1 1.1 Ziele und Geschichte der Entwicklung von Ada 1 1.2 Programme, Programmiersprachen und Maschinen 4 1.3 Softwaretechnik und Phasen der Software-Entwicklung 6 1.4 Giitekriterien von Programmsystemen/Ziele der Software-Entwicklung 10 1.5 Ubliche Hilfsmittel der Software-Erstellung/Ada-Validierung 13 1.6 Ada-Programmentwicklungs-Umgebung 17 1.7 Das STARS-Projekt 20 Aufgaben zu Kap. 1 24 2. GRUNOBEGRIFFE 25 2.1 Syntaxnotation, Zeichen und lexikalische Einheiten 25 2.2 Bezeichner, Zahlen und Zeichenketten 28 2.3 Quellprogramm-Notation, Pragmas 32 Aufgaben zu Kap. 2 34 3. OBJEJcrE FUR DAS PROGRAMMIEREN 1M KLElNEN 36 3.1 Einfache Objekt-und Typdeklarationen 37 3.2 Ausdriicke, Wertzuweisungen und Anweisungsfolgen 41 3.3 Bedingte Anweisungen, Auswahlanweisungen (if, case) 44 3.4 zahlschleifen, Schleifen mit Bedingungen (for, while) 47 3.5 Ineinanderschachtelung von Kontrollstrukturen und saubere Spriinge 51 3.6 Blockstruktur, Giiltigkeit, Sichtbarkeit 58 3.7 Funktionen und Operatoren 63 3.8 Prozeduren 71 3.9 Ausnahmebehandlung bei Blocken und Prozeduren 79 3.10 Thxt-Ein-/Ausgabe 86 Aufgaben zu Kap. 3 98 4. DATENSTRUKTURIERUNG DETAIlliERT 102 4.1 Basisdatentypen BOOLEAN, CHARACTER und allgemeine Aufzahlungstypen 103 4.2 Feldtypen mit spezifizierten Grenzen 108 4.3 Feldtypen mit unspezifizierten Grenzen und der Datentyp STRING 116 4.4 Einfache Verbunde 122 4.5 Verbunde mit Diskriminanten, variante Verbunde 127 4.6 Das 'JYpkonzept von Ada, Untertypen, abgeleitete 'JYpen 135 4.7 Ganzzahlige Datentypen 145 4.8 'JYpen numerisch-reeller Zahlen: Gleitpunkttypen, Festpunkttypen 149 x 4.9 Ausdriicke 158 4.10 Zeigertypen und Haldenobjekte, Listenverarbeitung 163 Aufgaben zu Kap. 4 177 5. PROGRAMMIEREN 1M GROSSEN 182 5.1 Generische Unterprogramme und der generische Mechanismus 183 5.2 Pakete, die Ada-Notation fUr Moduln 189 5.3 Programmstruktur, Giiltigkeit, Sichtbarkeit 200 5.4 Getrennte Ubersetzung 206 5.5 Ein Modulkonzept und seine Umsetzung in Ada 218 5.6 Ein Beispiel 240 Aufgaben zu Kap. 5 247 6. NEBENLAUFIGE PROGRAMMSYSTEME 249 6.1 ProzeBeinheiten als Programmeinheiten fUr nebenlliufige Programmierung 250 6.2 Das Rendezvous-Konzept 256 6.3 Nichtdeterministische Auswahl zwischen Alternativen 261 6.4 Verzogerung, Unterbrechung, Ausnahmebehandlung, Beendigung 268 6.5 ProzeBtypen, Entry-Familien, Implementierungsaspekte 275 6.6 Ein Beispiel 279 Aufgaben zu Kap. 6 287 7. EIN-IA USGABE UND BASISMASCHINENABHANGIGKEIT 289 7.1 Ein-/Ausgabe und Dateiverwaltung 290 7.2 Angaben zur Darstellung auf der Basismaschine 301 Aufgaben zu Kap. 7 311 LITERATUR 312 ANHANGE 318 Ada-Wortsymbole 318 Vordefinierte Pragmas 319 In der Sprache vordefinierte Ausnahmen u. zugehorige Laufzeitpriifungen 321 Ada-Grammatik 323 STICHWORTVERZEICHNIS 331

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.