ML (Sprache)

ML (Kontraktion der Metasprache ) ist eine funktionale Allzweck- Programmiersprache .

Geschichte

ML wurde ursprünglich von Robin Milner und anderen in den 1970er Jahren an der Universität von Edinburgh nach dem System der formalen Beweise Logic for Computable Functions  (in) (CFL) entwickelt. R. Milner stieß auf Schwierigkeiten mit dem Schreibsystem von Lisp , wodurch falsche Behauptungen "bewiesen" werden konnten.

ML ist eine unreine funktionale Sprache  : Es ist möglich, im Imperativ zu programmieren, und infolgedessen können Funktionen im Gegensatz zu rein funktionalen Sprachen wie Haskell unerwünschten Nebenwirkungen (als "Rand" bezeichnet) unterliegen .

ML wurde 1983 standardisiert und 1997 überarbeitet  . Die resultierende Sprache heißt Standard ML (SML) und wurde insbesondere in Standard ML von New Jersey (SML / NJ) implementiert . Gleichzeitig haben französische Teams Caml entwickelt , das mittlerweile in der internationalen ML-Community sehr beliebt ist.

Das ML-Typ-System wurde um einen erstklassigen Polymorphismus erweitert, der im System F von Jean-Yves Girard vorhanden ist. Die These von Botlan Didier und Didier Remy in den frühen 2000er Jahren ist als MLF bekannt. Diese Erweiterung der Eingabe ist seit 1980 ein Problem. Heute wird diese Sprache immer einfacher.

Eigenschaften

Zu den ML-Funktionen gehören:

Weitere Vorteile von ML sind:

Aufgrund seiner Stärken eignet sich ML besonders zum Schreiben von Sprachen, Compilern und formalen Beweissystemen.

Implementierungen

Die Hauptimplementierungen sind Standard ML und OCaml.

Standard ML:

OCaml (INRIA) folgt nicht dem SML-Standard, sondern ist eine objektorientierte Entwicklung von ML. Diese Sprache zeichnet sich durch einen Compiler aus, der Programme mit sehr hoher Ausführungsgeschwindigkeit sowie eine große Bibliothek erstellt. Entwickler und Benutzer bilden eine sehr aktive Community für eine Forschungssprache. OCaml diente als Grundlage für die Entwicklung der F # -Sprache auf der .NET- Plattform von Microsoft.

Anmerkungen und Referenzen

  1. http://wwwdgeinew.insa-toulouse.fr/~lebotlan/papers/lbr03.pdf , Artikel in englischer Sprache, vorgestellt auf der ICFP 2003-Konferenz | http://wwwdgeinew.insa-toulouse.fr/~lebotlan/mlf.html