Wacker Art Software

Die Programmiersprache Ada

Wappen der Familie Wacker




Nächste Seite
Bild: "Der Traum" 56,4cm x 42cm

Großes Bild, Large Picture

Inspiriert haben mich zu diesem Bild die Arbeiten von Emil Nolde
Stiftung Seebüll Ada und Emil Nolde

Seiten Anfang Linksammlung Computerkunst

Die Programmiersprache Ada

Augusta Ada Byron

Some programms are elegant, some are exquisite, some are sparkling. My claim is that it is possible to write grand programms, noble programms, truly magnificent ones!
Donald Knuth, 1974 Turing Award Lecture.

Die Programmiersprache Ada wurde benannt nach: Augusta Ada Byron, Countess of Lovelace.

Ada Lovelace war Mathematikerin und die Tochter des Dichters Lord Byron. Sie arbeitete für Charles Babbage an dessen "Analytical Engine" einer mechanischen Rechenmaschine und machte Vorschläge, zu deren Programmierung. Sie gilt deshalb als die erste Programmiererin.

Die Programmiersprache Ada ist besonders zu empfehlen bei der Erstellung von großen, langlebigen Softwareprojekten.

Die Programmiersprache Ada hat die folgenden Vorteile:

  • 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 Mann 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.

  • Low-Level Features:
    Mit Ada ist es möglich, jedes Bit einzeln zu manipulieren. Die hochentwickelten Ada Datenstrukturen lassen sich auf vordefinierte Bitmuster und Adressen abbilden.

Resümee: Ada ist nicht nur eine Programmiersprache sondern ist ein Werkzeugkasten für die Implementierung moderner Software-Engineering Methoden. Nach dem ich über 16 Jahre Erfahrung mit der Entwicklung von Software habe und die verschiedensten Programmiersprachen ausprobiert habe, ist für mich Ada die Programmiersprache meiner Wahl.

Compiler Validierung und Auswahl:
Für Ada83 war es vorgeschrieben, daß jeder Compiler einmal im Jahr validiert werden mußte. Dadurch wurde sichergestellt, daß ein einheitlicher Ada-Standard implementiert ist. Dies führte zu einer hohen Portierbarkeit von Ada-Sourcen auf andere Zielsystem. In der Regel reicht eine Neucompilierung der Sourcen aus um wieder ein funktionierendes System zu bekommen.
Dieser Zwang zur Validierung des Ada-Compilers wurde für Ada95 aufgehoben. Meine Empfehlung ist nur validierte Ada-Compiler zu verwenden. Dadurch wird sichergestellt, daß der Compiler entsprechend des Ada-Standards implementiert ist.
Bei nicht validierten Ada-Compilern soll es vorgekommen sein, daß diese nicht vollständig entsprechend des Ada-Standards implementiert sind.
Ein Hinweis noch: Beim Ada95-Standard gibt es einen Kernstandard und "Special Need" Annexe, die in der Regel nicht alle implementiert sind. Vor der Auswahl eines Compilers sollte man sich deshalb überlegen, welche Annexe für das eigene Projekt implementiert sein müssen. Dies gilt insbesondere für die Portierung einer Ada-Application auf ein anderes Zielsystem.
Für das saubere Arbeiten einer Multitasking Applikation empfehle ich z.b. die Implementierung des Realtime Annexes. Da dieser ein sauberes Task Scheduling erzwingt (Preemtive Scheduling). Wenn das Ada-Laufzeitsystem mit einem Betriebssystem zusammen arbeitet, so sind Implementierungen zu empfehlen, die Ada-Tasks auf Threats des Betriebssystems abbilden. Dies gilt insbesondere für Implementierungen auf Unix Systemen. Dies stellt sicher, daß nicht das gesamte Ada-Multitaskingsystem zum Stehen kommt, wenn aus einer Ada-Task heraus ein Betriebssystem Aufruf erfolgt.



Ada und sicherheitskritische Systeme
In mehreren internationalen Standards zur Entwicklung sicherheitsrelevanter Systeme (z.B. IEC 61508, EN 50128 und DO-178B) wird Ada explizit als "highly recommended" geführt!
Ada wird deshalb häufig bei sicherheitskritischen Systemen eingesetzt.
Ein Beispiel für den Einsatz von Ada in sicherheitskritischen Systemen ist die Software der Boeing 777 die zu 99,9% in Ada geschrieben wurde.


Frage:
Was wurde aus Jean Ichbiah?



Wacker Art Java Applets Java Plugins und VM

Es gibt ein Wiki Diskussionsforum zu den Wacker Art Software-Seiten. Beiträge sind willkommen.
Eine Wiki Seite, ist eine Internetseite, die der Besucher selber Online ändern kann.

Ada Home: the Home of the Brave Ada Programmers
Ada Information Clearinghouse
SIGAda The Special Interest Group on Ada
Booch Components

Ada und Linux
The Big Online Book of Linux Ada Programming
Glide Dokumentation
Glide Development Environment Tutorial
GNU Ada Homepage
ACT-Europe
Ada Core Technologies
GNAT User's Guide for Unix Platforms

Ada Sourchen:
AdaBasis Bibliothek mit Ada Software-Komponenten
The Big_Number Page

Ada und Java:
Ada and the Web and Java
Programming the Internet in Ada 95 von S. Tucker Taft
Comparising Exception Handling in Ada and Java

Ada und C:
Ada-95: A guide for C and C++ programmers
Comparing Development Costs of C and Ada
Gnat and Linux: C++ and Java Under Fire
Ada versus C++

Ada International:
Ada World
Ada Europe
Ada Belgium
Ada Deutschland
Ada France
Ada Großbritanien
Ada Italy
Ada Malaysia
Ada Schweden
Ada Spain
Ada in Switzerland I
Ada in Switzerland II

Ada Homepages:
Ada Power
Ada in Astrophysics
Ada Resources
Ouaibe de Gautier
Ada95.ch
Michael B. Feldman
Ada Freunde

Internetseiten mit Ada Links:
Cetus Ada Links
Open Directory Ada Deutsch
Open Directory Ada Englisch
Google Web Directory Ada Deutsch
Google Web Directory Ada Englisch

Ada Online Dokumentation:

Ada 95:
Ada 95 Reference Manual
Ada 95 Rationale
Ada 95 Quality and Style Guideline for Professional Programmers
Rendezvous mit Ada Eine echtzeitige Annäherung
Browsable Ada 95 Syntax Diagrams

Tutorials:
Ada 95 Lovelace Tutorial
Ada 95: The Craft of Object-Oriented Programming
LAW - Learn Ada on the Web (Fintan Culwin)
Ada in Action
Ada in a Nutshell
How to run Ada95 in 11 Schritten

Ada 83
Ada 83 Reference Manual

Sonstiges:
Ada Augusta Byron Countess of Lovelace
Information for New Ada95 Programmers
Ada versus Modula-3
Ada und XML
Babbage die nächste Sprache


Ada Power







Inhaltsverzeichnis Wacker Art Homepage

Kontakt
E-Mail

6. Januar 2005 Version 2.4
GOWEBCounter by INLINE


Copyright: Hermann Wacker Am Mühlbachbogen 20a D-85368 Moosburg Germany Haftungsausschluß