Ada ist eine stark typisierte Programmiersprache, die Ende der 1970er-Jahre im Auftrag des US-Verteidigungsministeriums unter der Leitung von Jean Ichbiah entwickelt und 1983 als Standard veröffentlicht wurde — benannt nach Ada Lovelace. Sie ist für Sicherheit, Zuverlässigkeit und Wartbarkeit ausgelegt und dominiert sicherheitskritische Bereiche wie Avionik, Bahn- und Raumfahrttechnik. Seit Ada 2012 bringt die Sprache Design-by-Contract direkt mit (Vor-/Nachbedingungen und Invarianten); die aktuelle Version ist Ada 2022.

Erste Schritte

Der freie Compiler ist GNAT (Teil der GNU Compiler Collection). Ein einfaches Programm liegt in einer hallo.adb-Datei:

gnatmake hallo.adb     # Kompiliert, bindet und linkt in einem Schritt
gnat compile hallo.adb # Nur kompilieren
gnat bind hallo.ali    # Bind-Schritt (für komplexe Projekte manuell)
gnat link hallo.ali    # Link-Schritt
./hallo                # Ausführen

Projekte mit gprbuild

Für größere Projekte arbeitet man mit Projektdateien (.gpr) und gprbuild — dem Build-Manager der GNAT-Toolchain, vergleichbar mit make oder cmake:

gprbuild -P projekt.gpr        # Projekt aus der Projektdatei bauen
gprbuild -P projekt.gpr -c     # Nur kompilieren
gprclean -P projekt.gpr        # Build-Artefakte entfernen

Paketverwaltung mit Alire

alr init --bin projektname     # Neues Projekt anlegen
alr search paket               # Crate suchen
alr get paket                  # Crate herunterladen
alr add paket                  # Abhängigkeit ins Manifest aufnehmen
alr build                      # Projekt bauen
alr run                        # Projekt bauen und ausführen

Praxis-Tipps

  • Ada kompiliert typischerweise mit aktivierten Laufzeitprüfungen — das macht Programme sicherer, aber etwas langsamer; für Release-Builds lassen sie sich gezielt abschalten.
  • Die Untermenge SPARK erlaubt formale Verifikation und wird in Hochsicherheitsprojekten eingesetzt.
  • Ada-Code ist bewusst lesbar geschrieben: Blöcke enden mit end Name; statt geschweifter Klammern.

Verwandte Grundlagen: Pascal/Delphi-Befehle, C/C++-Befehle, Rust-Befehle, D-Befehle, Roc-Befehle.