Inhaltsverzeichnis

Ada

FIXME

Ada wurde nicht vom amerikanischen Department of Defense (DOD, Verteidigungsministerium) entwickelt, wie oft angenommen wird. Dieses Gerücht hat leider zu vielen Vorurteilen und ablehnende Haltungen geführt. Sie war die gewinnende Sprache einer Ausschreibung des DOD und wurde daraufhin nach Ada Lovelace benannt, der Assistentin von Charles Babbage und sogenannte erste Programmiererin.

Die Syntax von Ada ähnelt Pascal oder Delphi.

Ada ist eine moderne objektorientierte Sprache. Sie ist sogar die erste international standardisierte objektorientierte Sprache. Für Compiler gibt es eine Test-Suite namens ACATS, durch die sie sich validieren können. Viele Fehler führen dazu, dass der Compiler kein lauffähiges Programm erzeugt, wodurch sie schon früh im Entwicklungsprozess gefunden werden. Dabei hilft auch die starke Typisierung.

Im Sprachstandard enthalten sind auch Tasks, durch die Nebenläufigkeit möglich wird. Bei anderen Sprachen wird hier meist auf eine externe Bibliothek zurückgegriffen (z.B. bei C oder C++ auf pthreads).

Ähnlich den Templates bei C++ und den Generics bei Java gibt es auch bei Ada sogenannte Generics.

Im Standard gibt es auch optionale Teile, z.B. für Echtzeitanwendungen (Real-Time Systems), verteilte Anwendungen (Distributed Systems) und Vektor-/Matrix-Berechnungen (Numerics).

Die erste Version war Ada 83. Danach kamen Ada 95 mit Unterstützung für Objektorientierung, Protected Types und Child Packages, Ada 2005 mit Interfaces und Container und Ada 2012 mit Pre-/Post-Conditions und Iteratoren.

Compiler

Für Ada gibt es folgende Compiler (kein Anspruch auf Vollständigkeit):

  • GNAT von AdaCore auf GCC-Basis, sowohl Open Source als auch kommerziell erhältlich, unterstützt Ada83, Ada95, Ada05 und teilweise Ada12.
  • ICC Ada von Irvine Compiler Corporation, rein kommerziell erhältlich, unterstützt Ada83, Ada95 und Ada05.
  • Janus/Ada 95 bzw. 83 von RR Software, rein kommerziell erhältlich, unterstützt Ada83 und Ada95.

Eine Portierung von GNAT auf das LLVM-Backend (also statt GCC) ist in Entwicklung.

Auf den Seiten hier werde ich von einer der freien GNAT-Installationen ausgehen. Prinzipiell sollte es aber mit allen funktionieren. Die Installation von GNAT wird hier erklärt.

Tutorial