ML (Programmiersprache)

ML (Programmiersprache)

Meta Language (ML) beschreibt eine Familie funktionaler Programmiersprachen mit statischer Typisierung, Polymorphie, automatischer Speicherbereinigung und im Allgemeinen strenger Auswertung. ML ist allerdings keine rein funktionale Sprache wie Haskell, sondern erlaubt an manchen Stellen auch imperative Konstrukte und Wirkungen, beispielsweise für File I/O. ML wurde 1973 von Robin Milner an der Universität Edinburgh als Teil eines Theorem-Beweis-Programms LCF (Logic of Computable Functions) entwickelt, welches automatisiert die Korrektheit von Programmen beweisen sollte. Seither hat sich ML zu einer vollständigen und eigenständigen Programmiersprache entwickelt, die insbesondere im wissenschaftlichen Umfeld verwendet wird. Die Sprache wird an vielen Universitäten als primäre Programmiersprache gelehrt.

Die ML-Familienmitglieder

Unter rund einem Dutzend Varianten sind die bekanntesten Vertreter von ML „Standard ML“ (im folgenden SML genannt), „Lazy ML“ und „Caml“. Caml steht für „Categorical Abstract Machine + ML“ und wurde am INRIA (Institut National de Recherche Informatique et en Automatique) in Frankreich von Gérard Huet in den Jahren 1984-85 entwickelt und 1990 unter Xavier Leroy zu Objective CAML (OCaml) erweitert. OCaml vereinigt funktionale, imperative und objektorientierte Sprachkonzepte. Lazy ML ist ein Dialekt von ML, der mit dem Grundsatz der strikten Semantik bricht. Standard ML hingegen war Robin Milners Versuch 1984, die Sprachdialekte von ML zu vereinigen. Neben dem ML-Kern sind auch andere Ideen, z. B. die Funktionsdeklaration durch Muster der Programmiersprache Hope, in SML eingeflossen. Es gibt eine 1997 überarbeitete Version von SML, die in der Literatur meist „Standard ML’97“ genannt wird, um sie von der Ursprungsversion zu unterscheiden. Die Referenzimplementierung von SML ist Standard ML of New Jersey (SML/NJ).

Literatur

Weblinks


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Programmiersprache — Programmiersprache …   Deutsch Wörterbuch

  • Programmiersprache/Zeittafel — Jahr Name Entwickler, Hersteller Vorläufer, Vorgänger 1840 Erstes Programm Ada Lovelace * 1946 Plankalkül Konrad Zuse * 1952 A 0 Grace Hopper * …   Deutsch Wikipedia

  • Programmiersprache C — C Paradigmen: imperativ, strukturiert Erscheinungsjahr: 1972 Entwickler: Dennis Ritchie Bell Labs wichtige Implementierungen …   Deutsch Wikipedia

  • Programmiersprache Perl — Perl Paradigmen: prozedural, modular, teilweise objektorientiert Erscheinungsjahr: 1987 Entwickler: Larry Wall, Perl Porter Aktuelle  …   Deutsch Wikipedia

  • Programmiersprache — Quelltext eines Programms in der Programmiersprache C++. Eine Programmiersprache ist eine formale Sprache, die zur Formulierung von Computerprogrammen verwendet wird. Die Anweisungen (Befehle) können dabei entweder in Maschinencode geschrieben… …   Deutsch Wikipedia

  • Programmiersprache Smalltalk — Smalltalk Logo von Smalltalk Basisdaten Entwickler: diverse Aktuelle Version: Smalltalk 80  (1980) …   Deutsch Wikipedia

  • Programmiersprache Haskell — Haskell Basisdaten Paradigmen: funktional, nicht strikt, modular …   Deutsch Wikipedia

  • Programmiersprache Java — Java Objektorientierte Programmiersprache Basisdaten Paradigmen: Objektorientierte Programmiersprache Aktuelle  …   Deutsch Wikipedia

  • Programmiersprache Eiffel — Eiffel ist eine universelle, rein objektorientierte Programmiersprache und wurde 1985 von dem französischen Informatiker Bertrand Meyer und seiner Firma Interactive Software Engineering Inc. (Goleta, Kalifornien) als Alternative zu C++ entworfen …   Deutsch Wikipedia

  • Programmiersprache D — D Paradigmen: imperativ, objekt orientiert, generisch, modular Erscheinungsjahr: 2007 Entwickler: Walter Bright Aktuelle  …   Deutsch Wikipedia

  • Programmiersprache Pascal — Pascal Paradigmen: imperativ, strukturiert Erscheinungsjahr: 1972 Entwickler: Niklaus Wirth Dialekte: UCSD Pascal …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”