Objektorientierte Programmiersprache: Objective Caml ist 25

OCaml gibt es seit inzwischen 25 Jahren: Die erste stabile Version 1.0.0 war am 9. Mai 1996 erreicht. Seither hat die objektorientierte Sprache sich gewandelt.

In Pocket speichern vorlesen Druckansicht 18 Kommentare lesen

(Bild: AlexAnton / Shutterstock.com)

Lesezeit: 5 Min.
Von
  • Silke Hahn
Inhaltsverzeichnis

Die objektorientierte Programmiersprache Objective Caml (OCaml) feiert silbernen Geburtstag: Vor 25 Jahren erreichte sie die erste stabile Version 1.0. Caml ist ein Dialekt von ML (Meta Language), einer Familie funktionaler Programmiersprachen mit statischer Typisierung, Polymorphie und automatischer Speicherbereinigung.

Ursprünglich stand "Caml" als Akronym für Categorical Abstract Machine Language beziehungsweise Meta Language, hergeleitet von CAM und ML. Die heutige Version hat mit der Wortwurzel CAM (Categorical Abstract Machine) nichts mehr zu tun, aber der Name blieb über mehrere technische Wandlungen hinweg erhalten. Aktuelle Releases unterstützen funktionale, imperative und objektorientierte Anwendungsentwicklung, und OCaml gilt heute als Multiparadigmensprache.

Ziel war die Entwicklung einer Hochsprache mit erweiterten Ausdrucksmöglichkeiten und Fokus auf Sicherheitsaspekte, die auf dem funktionalen Programmier-Paradigma beruht. Automatische Fehlererkennung durch das Typsystem und statische Analyse, verlässliche Werkzeuge zum Erzeugen von Code und zum Verifizieren von Programmen sowie linguistischer Support für formale Methoden gehören zum Repertoire von Caml.

Die Ursprünge gehen zurück in die frühen 1980er Jahre, als Meta Language mittels eines in Lisp geschriebenen Übersetzers zum Einsatz kam. Gérard Huet, der spätere Entwickler von Caml, begann damals, die ML-Implementierung mit zahlreichen Lisp-Compilern kompatibel zu machen, gemeinsam mit weiteren Entwicklern entwarf er neue Compiler. Um 1984 herum kam es zur Definition der Categorical Abstract Machine (CAM). Aus kategorischen Kombinatoren heraus entstand eine Kompiliertechnik für ML, die nah dran war an der Original-Implementierung, sich jedoch einfacher beschreiben, überprüfen und verbessern ließ. Der französische Entwickler Guy Cousineau entwarf auf der Grundlage von CAM eine neue Implementierung von ML, die Urversion des heutigen Caml.

Damals sträubte das Entwicklerteam sich noch gegen eine Standardisierung, denn Caml kam vor allem intern im Formel-Team von Inria (einem französischen Informatikinstitut) bei der Softwareentwicklung zum Einsatz und sollte zunächst möglichst anpassungsfähig bleiben. Eine erste Implementierung entstand 1987 und durchlief Entwicklungen bis 1992, mit ihr ließ sich Caml runterkompilieren für LLM3, die virtuelle Maschine des Lisp-Systems. Zwischen 1990 und 1991 entwarf Xavier Leroy eine neuartige Implementierung von Caml, die auf einem Bytecode-Interpreter beruhte, der in C geschrieben war. Sein Kollege Damien Doligez steuerte die Speicherverwaltung bei. Die neue Version hieß Caml Light, galt als portierbar und etablierte Caml im Bildungs- und Forschungsbereich. Leroy gilt in der Community als "Benevolent Dictator for Life" (BDFL) der OCaml-Sprache, da er seither Lead Developer, Vorsitzender des Caml Consortium und Eigentümer der Projekt-Domain OCaml.org ist. Details zur Geschichte der Programmiersprache sind im Bereich History auf der OCaml-Website zu finden.

1995 folgte eine Special Edition (Caml Special Light), die hauptsächlich einen nativen Code-Compiler hinzufügte und ein Modulsystem einführte, das sich an dem von Standard ML orientierte. Im Mai 1996 folgte das Release von Objective Caml, seit 2011 heißt die Sprache OCaml. Objective Caml war seinen Herausgebern zufolge die erste Sprache, die die Möglichkeiten objekorientierten Programmierens mit statischem Typisieren und Typeninferenz nach Art der Meta Language kombinierte, und zwar auf statisch typsischere Weise. Ab dem Jahr 2000 kamen Erweiterungen des Funktionsumfangs hinzu, unter anderem die polymorphe Methode, gelabelte und optionale Funktionsargumente sowie polymorphe Varianten.

Mehr Informationen lassen sich dem Geburtstags-Thread des OCaml-Forums entnehmen. Hier findet sich auch ein Link zur archivierten Originalmeldung des ersten stabilen Release, und die Community diskutiert Erfahrungen sowie konkrete Projekte. Eine Übersicht aktueller und vergangener Versionen ist auf der OCaml-Website mit entsprechenden Downloadmöglichkeiten versehen. Die aktuellste Version OCaml 4.12., die im Februar 2021 herauskam, unterstützt unter anderem macOS mit dem ARM-64-Prozessor.

Hinter Caml steht das französische Informatik-Forschungsinstitut Inria (Institut national de recherche en sciences et technologies du numérique), zu dem auch eine gleichnamige Stiftung gehört. Das Formel-Team des Instituts hatte das Design und die erste Implementierung der Sprache entworfen. Die weitere Entwicklung übernahm dann zunächst das Cristal-Team, das an den theoretischen und praktischen Grundlagen für stark typisierte Programmiersprachen arbeitete und dessen Forschungsergebnisse in Caml einflossen. Später übernahm eine Forschungseinheit namens Gallium das Projekt, das seit 2019 unter der Bezeichnung Team Cambium weiterläuft.

Seit 2018 existiert auch eine spracheigene Stiftung: Die OCaml Software Foundation hat es sich zur Aufgabe gemacht, die Community rund um die funktionale Programmiersprache und ihr technisches Ökosystem zu stärken. Gründungsziel war insbesondere, durch eine Online-Lernplattform OCaml weiteren Nutzerkreisen zugänglich zu machen.

(sih)