Abhängige Typen in Ada: Ein unerwarteter Zufall
Dieser Artikel untersucht das wenig bekannte Feature abhängiger Typen in der Programmiersprache Ada. Der Autor argumentiert, dass das Ada-Designziel, unnötige dynamische Speicherallokation zu vermeiden, zu seiner einzigartigen Implementierung abhängiger Typen geführt hat: die Verwendung eines zweiten Nicht-Aufruf-Stacks, um Daten unbekannter Kompilierzeitgröße zurückzugeben und so geschickt den Bedarf an dynamischer Allokation zu umgehen. Dies fällt unerwartet mit der formalen Definition abhängiger Typen zusammen und zeigt eine unvorhergesehene glückliche Fügung im Ada-Design. Der Artikel erläutert außerdem Konzepte im Ada-Typsystem wie abgeleitete Typen, Subtypen, diskriminierte Datensätze und Typ-Prädikate und zeigt, wie diese Funktionen die Implementierung abhängiger Typen ermöglichen. Schließlich diskutiert der Autor das interessante Zusammenspiel zwischen der Ada-Designphilosophie und der akademischen Forschung zur Typentheorie und legt nahe, dass viele Merkmale des Ada-Typsystems nicht direkt aus der Forschung zur Typentheorie stammen, sondern sich eher natürlich entwickelt haben, um spezifischen Anforderungen gerecht zu werden.