In den USA eine regelrechte Ada-Kultur

Ada setzt sich langsam, aber sicher auf breiter Front durch

06.04.1990

Von der deutschen Informatik-Öffentlichkeit beinahe unbemerkt, hat die Programmiersprache Ada ihre Feuerprobe bestanden. Die derzeit etwa 300 verfügbaren Ada-Compiler ermöglichen die vollständige Portabilität von Ada-Quellprogrammen zwischen jeder gängigen Hardware und Betriebssystem-Software und zwischen Computern beliebiger Größenordnungen.

Anfang der 80er Jahre wurde noch recht viel über die damals neue Programmiersprache Ada geschrieben. Diese erste Phase war durch viel Optimismus gerade definierte in Hinblick auf die Wunderwaffe gegen die Softwarekrise geprägt. Aber wie so üblich in der Informatik setzte sich diese erfolgreiche Konzeption nach etwa zehn Jahren in einem Dreiphasen-Raster durch: zuerst Euphorie, dann Ernüchterung und schließlich allmähliche Akzeptanz.

Die Ernüchterungsphase war Hauptsächlich dadurch gekennzeichnet, daß anfänglich nur die Sprachnorm von Ada vorhanden war, es aber keine einsetzbaren Compiler gab. Somit konnten zunächst die Argumente der Kritiker von Ada, und das waren damals und sind auch heute noch führende Meinungsbildner in der Informatikwelt, nicht widerlegt werden.

Zirka 300 Compiler bereits auf dem Markt

Die Presse schloß sich deshalb der damaligen Kritik an, die hauptsächlich darin bestand, daß die Sprache zu umfangreich und deshalb Ada-Programme zu unsicher seien. Zudem seien keine praxistauglichen Ada-Compiler vorhanden.

Seit dem Jahre 1983 gibt es nun zunehmend qualitativ hochwertige Ada-Compiler, deren Anzahl Mitte 1983 auf 288 angestiegen war. Es stehen also heute für praktisch jede verbreitete Hardware und Betriebssystem-Software mehrere Ada-Compiler zur Auswahl. Sie unterscheiden sich nicht hinsichtlich ihres Sprachumfanges. Dieser ist streng genormt. Lediglich in Preis und Performance sind Unterschiede vorhanden.

Auch aus der Ecke der früheren prominenten Kritiker sind nun anerkennende Worte zu hören. So schreibt C.A.R. Hoar, dessen Kritik im Jahre 1980 maßgeblich zur Einleitung der Ernüchterungsphase beitrug, daß das lange Warten auf Ada nun zu Ende ginge und daß eine schnelle und weitreichende Verbesserung der Programmierpraxis aufgrund der Programmiersprache Ada zu erwarten sei.

Obwohl Ada mit besonderer Beachtung der Erfordernisse bei der Programmierung von computerintegrierten technischen Großsystemen entwickelt wurde, ist sie dennoch eine allgemeingültige, problemorientierte Programmiersprache für das prozedurale Programmieren. Ihre Spracheinrichtungen sind für die technische wie für die wissenschaftliche und auch für die kommerziell-administrative Programmierung in hohem Maße geeignet. Die Sprachelemente von Ada sind der wohlabgestimmte und m sich schlüssige Extrakt aus der Sprachforschung der späten 70er Jahre. Bis dato hat sich auf diesem Gebiet kaum etwas Wesentliches getan. Somit ist Ada auch heute noch die modernste Sprache für den breiten prozeduralen Progtammiereinsatz.

Mehrere Untersuchungen und Praxisberichte über den Ada-Einsatz im kommerziellen Bereich zeigen, daß Ada sowohl die Wirtschaftlichkeit des Software-Entwicklungs- und -wartungsprozesses als auch die Sicherheit der erzeugten Software im Vergleich zu anderen gängigen Programmiersprachen wesentlich verbessert.

Kosten, Risiken und Portabilität untersucht

In dem Bericht der Addamax Corporation sind Untersuchungsergebnisse über den Einsatz von Ada innerhalb von vier Management-Informationssystemen veröffentlicht worden. Zu untersuchen war hierbei, inwieweit die Entwurfsziele von Ada wie Kostenreduktion, Risikovermeidung und Portabilität der Software erreicht wurden.

Über ein Ada-Projekt der Firma CRI, Santa Clara/Kalifornien, die ein Softwaresystem zur Finanzanlage und Marktbeobachtung mit über 170000 Ada-Programmzeilen erstellt hat, wird ausgesagt, daß Ada eine erfolgreiche und wirkungsvolle Programmiersprache ist, wenn man Bewertungsmaßstäbe wie Gewinnerwartung, Kostensteuerung, Produktivität, steigender Marktanteil und Wettbewerbsvorteil zugrunde legt.

Die Firma Dowell-Schlumberger berichtet, daß zur Erstellung eines Ada-Projektes mit einem Umfang von 20 000 wiederverwendbaren Programmzeilen für Ölfeld-Dienste ein beträchtlicher Kostenerfolg und hohe Termintreue erzielt wurden. Für das Projekt wurden ursprünglich drei Softwerker für drei Monate eingeplant. Es konnten jedoch nur zwei Mann dem Projekt zugeordnet werden, die das Projekt nach acht Monaten dennoch abschlossen.

Die Reuters Information Services Inc. ließen einen Prototyp eines Finanzinformationssystems mit einem Umfang von 15000 Programmzeilen in Ada erstellen. Auch dieses Projekt bestätigt, daß Ada seinen Entwurfszielen gerecht wird. So geht aus der Bewertung hervor, daß die Zielvorgabe, Geld zu sparen, Übereinstimmung zwischen Software-Entwurf und Implementierung herzustellen, Wiederverwendbarkeit von Software zu fördern und die Softwarequalität zu erhöhen, erreicht wurden. Hinsichtlich Funktionalität und Leistungsfähigkeit ist der Prototyp zeitgerecht und mit dem geplanten Budget entstanden.

Über ein besonders großes Projekt im Banken- und Versicherungsbereich mit einem Umfang von zirka zwei Millionen Programmzeilen berichtet die Firma Nokia Information Systems, Finnland. Hierbei wird von Management-Seite festgestellt, daß die Wahl von Ada die richtige Entscheidung war und daß für die unternehmensinterne Produktentwicklung der Einsatz dieser Programmiersprache permanent erweitert wird.

Auch aus einer Studie der Reifer Consultants Inc. (RCI) geht hervor, daß durch Ada bei 41 Softwareprojekten mit zusammen mehr als 15 Millionen Programmzeilen die Produktivität der Entwickler und die Wiederverwendbarkeit der erarbeiteten Software erhöht sowie die Fehlerrate und der Entwicklungsaufwand im Vergleich zu anderen Programmiersprachen gesenkt werden konnte.

Die Eignung von Ada für die Programmierung kommerzieller Anwendungen wird heute nicht mehr wegen fehlender Schnittstellen in Frage gestellt. Zwischenzeitlich gibt es solche Interfaces zu marktgängigen Datenkommunikationsmonitoren wie CICS (IBM), Datenbankverwaltungssystemen wie DL/1 (IBM) und zu SQL.

Neben den oben angeführten kommerziellen Anwendungen wird der aktuelle Einsatz dieser Programmiersprache jedoch hauptsächlich durch militärische Vorhaben sowie durch Luft- und Raumfahrtprojekte mit hohen Sicherheitsanforderungen geprägt. Das anlaufende Raumstationsprogramm "Freedom" der NASA soll eine Größe von etwa neun Millionen Ada-Zeilen umfassen.

Auch in der neuen Flugzeuggeneration von Boeing wird Ada Anwendung finden. Das neue System für die zivile Luftraumüberwachung der USA, für das ein Finanzvolumen von 3,6 Milliarden Dollar geplant ist, wird hauptsächlich in Ada programmiert. Über die in diesem Zusammenhang geführten Prozesse wegen der Auftragsvergabe an die IBM wurde in der COMPUTERWOCHE schon häufiger berichtet.

US-Universitäten spielen Vorreiterrolle

Beim Einsatz in Forschung und Lehre sind die USA führend. Dort wird Ada an über 180 Universitäten eingesetzt und im Lehrplan angeboten. In der ACM (Association for Computing Machinery) gibt es eine Special Interest Group Ada (SIGAda), in der spezifische Themen diskutiert werden, die die alle zwei Monate erscheinende Zeitschrift "Ada Letters" veröffentlicht,

Weiterhin werden von der SIGAda in den USA zahlreiche nationale und lokale Veranstaltungen organisiert. Man kann feststellen, daß sich in den USA zwischenzeitlich eine regelrechte Ada-Kultur innerhalb der Informatik entwickelt hat.

In der BRD sieht es auf diesem Gebiet - wie üblich - eher bescheiden aus. Hier wird Ada an 16 Universitäten und an fünf Fachhochschulen gelehrt (...)ler ihr Einsatz in Forschung (...) Lehre ist beabsichtigt. Seit (...) 1988 gibt es auch bei uns eine Organisation von Interessenten mit der Bezeichnung Ada-Deutschland. Seit Juni 1989 ist Ada-Deutschland eine Fachgruppe in der Gesellschaft für Informatik (GI). Auch in der europäischen Organisation Ada-Europe ist Ada-Deutschland assoziiertes Mitglied.

Die Mitglieder von Ada-Deutschland haben sich das Ziel gesetzt, die Aufmerksamkeit der Öffentlichkeit und der Fachwelt auf diese Programmiersprache sowie deren Bedeutung für die Softwaretechnologie zu lenken und die Verbreitung der Ada-Technologie zu fördern. Um dieses Ziel zu erreichen, organisiert Ada-Deutschland unter anderem ein Forum für die Diskussion und den freien Austausch von Informationen über diese Technologie, hält Arbeitssitzungen von spezialisierten Fachgruppen ab und unterstützt das Ada-Benutzertreffen, das bisher jährlich im Europäischen Patentamt in München von der GSE, München, organisiert wurde.

Königin unter den prozeduralen Sprachen

Aufgrund ihrer erlesenen, in einem langandauernden internationalen Falsifizierungsprozeß aufeinander abgestimmten und mächtigen Sprachkonstrukte darf Ada derzeit wohl als die Königin unter den prozeduralen Programmiersprachen angesehen werden. Hier sind in einzigartiger Weise die heute als relevant erachteten Prinzipien des Software-Engineering rogrammiersprachlich verwirklicht.

Dies führt dazu, daß die in Ada geschriebene Anwendungssoftware von hoher Produktqualität ist. Über ihren Lebenszyklus hinweg gesehen werden diese Anwendungen wirtschaftlichen Erfordernissen wie Kostenreduzierung, Kostenplanbarkeit und Termintreue gerecht.

Die hohe Produktqualität von Ada-Software kann mit den Begriffen Zuverlässigkeit, Verständlichkeit, Änderbarkeit, Effizienz und Portabilität umschrieben werden. Die Implementierung dieser Software. Entwurfsrichtlinien in die Anwendungssoftware wird in erheblichem Maß bereits von der Programmiersprache erzwungen. Ihr Vorhandensein ist somit in Ada-Software weniger von der persönlichen Qualifikation eines Software-Entwicklers abhängig; die Softwarequalität wird objektiv verbessert.

Aufgrund der in Ada implementierten Software-Engineering-Prinzipien kann ein Compiler bereits in der Übersetzungsphase wesentlich mehr Fehler feststellen als die Compiler anderer gängiger Programmiersprachen. Untersuchungen zeigen eine Tendenz in Richtung drei zu eins für Ada-Software an. Weiterhin zwingt die Ada-Syntax den Anwendungsprogrammierer, seine Programme gut lesbar und damit verständlich zu schreiben. Dieser heilsame Zwang zu sauberer Algorithmusdokumentation trägt wesentlich zur guten Wartbarkeit der Software bei.

Bereits beim Entwurf von Ada wurde erkannt, daß eine Programmiersprache allein die Verfolgung der angestrebten Ziele eines modernen Software-Entwurfs nicht abdecken kann. Deshalb wurde bereits in de späten siebziger Jahren mit der Erarbeitung einer hochqualifizierten Software-Entwicklungsumgebung begonnen. Die Programmiersprache Ada ist der zentrale Kern in diesem System.

Ausgeklügelt auf allen Ebenen der Optimierung

Moderne Ada-Compiler enthalten ausgeklügelte Optimierungseinrichtungen auf allen Ebenen. In die Schaffung dieser Einrichtungen sind die Erfahrungen der besten Compilerbauer eingegangen. Dadurch kann sich der von Ada-Compilern erzeugte Maschinencode heute mit dem der besten Fortran- und C-Compiler hinsichtlich seiner Effizenz messen, wobei auch hier noch die hohe und nur in Ada vorhandene einzigartige Zuverlässigkeit gewährleistet bleibt.

Durch die Normung der Sprache und die institutionell strikte Überwachung der Einhaltung der Norm bei allen Compilern, die die Bezeichnung Ada-Compiler fuhren dürfen, sind die in Ada geschriebenen Quellprogramme von portabel. Sie können somit auf jeder Hardware- und Betriebssystem-Software ausgeführt werden, für die es einen Ada-Compiler gibt.

Da es keine Dialekte geben kann, bestehen auch keine Portabilitätsprobleme, wie sie beim Einsatz jeder anderen Programmiersprache heute üblich sind. Ein Ada-Programm kann auf allen gängigen Einplatinencomputern, PCs, Großrechnern oder Superrechnern ohne zusätzlichen Aufwand portiert und dort ausgeführt werden.

Auch in der Fortran-Domäne

Eine ganz große Stärke von Ada liegt in ihrer Fähigkeit zum eleganten und sicheren Programmieren von Multitasking-Anwendungen. Dadurch ist Ada auch die Sprache, die den gegenwärtigen Trend zum Mehrprozessor- und Mehrrechnersystem bereits in der Programmiersprache selbst abdeckt.

Mehrere Ada-Compiler sind heute schon in der Lage, Vektorisierungsmöglichkeiten in Algorithmen zu erkennen und erzeugen automatisch vektorisierten Maschinencode. Damit kann auch in dieser Domäne von Fortran Ada mit all ihren weiteren Möglichkeiten eingesetzt werden. Durch die nach oben offene Architektur gibt es heute bereits ein reichaltiges Angebot mathematischer Bibliotheken, die das technisch-wissenschaftliche Rechnen ebenso ermöglichen wie in Fortran.

Die zentralen Ziele wie Wirtschaftlichkeit und Sicherheit in der Anwendungssoftware werden in der Ada-Software deshalb erreicht, weil bei der Definition der Sprache die fundamentalen Prinzipien des Software-Engineering Pate standen. So werden die Prinzipien der Komplexitätsreduzierung und der Sicherheit sowohl beim konventionellen programmieren im Kleinen als auch beim Ada-typischen programmieren im Großen wirkungsvoll von der Sprache unterstützt.

Ein Ada-Compiler überwacht beispielsweise die Schnittstellenverträglichkeit zwischen dem rufenden Programm und dem gerufenen Modul bereits zur Übersetzungszeit. An dieser bei konventionellen Programmiersprachen gefährlichen Stelle können bei Ada-Programmen keine Probleme mehr auftreten. Stellen sich während der Programmausführung Ausnahmesituation ein, werden sie in programmintegrierten Ausnahmebehandlungen übersichtlich und elegant geregelt.

Den Software-Engineering-Prinzipien Abstraktion und Geheimhaltung, Trennung von Funktionsbeschreibung und Funktionserfüllung, Modularität, Lokalität und Arbeitsteilung entspricht Ada nicht nur bei den prozeduralen Programmteilen, sondern hierzu symmetrisch auch bei den Datentypen. Auch für die konsistente Implementierung objektorientierter Software-Entwürfe eignet sich Ada in hohem Maße.

Software von der Kleiderstange

Dem Ziel der Wirtschaftlichkeit dient besonders das Prinzip der Wiederverwendung guter Software. Aufgrund der nach oben offenen Architektur von Ada steht schon bald für die meisten Anwendungen vorgefertigte, ausgetestete, qualitativ hochwertige und portable sowie gut dokumentierte Software "von der Stange" zur Verfügung.

Die anfänglich recht teuren Ada-Compiler werden zwischenzeitlich, verglichen mit Compilern für andere Programmiersprachen, zu wettbewerbsfähigen Preisen angeboten. Diese Compiler decken den gesamten Sprachumfang von Ada ab. Sie sind lediglich hinsichtlich der schreibbaren Programmgröße eingeschränkt.

Die Voraussetzung für eine erfolgreiche Verbreitung von Ada sind heute erfüllt.

Es bleibt nun abzuwarten, inwiefern die Chancen für eine industrielle Softwareproduktion von einer breiten Interessengemeinschaft in Deutschland rechtzeitig erkannt werden.

Vielleicht bleibt uns dadurch die Schlußlichtrolle innerhalb der führenden Industrienationen erspart.

Prof. Alfred Moos lehrt Kerninformatik, speziell Programmiersprachen, Datenbanksysteme, Datenkommunikationssysteme und Betriebssysteme, an der Fachhochschule des Berufsfördeningswerkes Heidelberg (BFW).