ML, kurz für Meta Language, ist eine universelle funktionale Programmiersprache. Es hat einen statischen Gültigkeitsbereich, was bedeutet, dass sich eine Variable immer auf ihre Umgebung auf oberster Ebene bezieht. ML kann als unreine funktionale Sprache bezeichnet werden, da es Nebenwirkungen zulässt, die die meisten funktionalen Programmiersprachen nicht zulassen. Ein Nebeneffekt ist, wenn eine Prozedur eine Variable von außerhalb ihres Gültigkeitsbereichs ändert.
Wie die meisten Programmiersprachen verwendet ML eine eifrige Auswertung, sodass ein Ausdruck ausgewertet wird, sobald er an eine Variable gebunden ist. Dies steht in direktem Widerspruch zu einer faulen Bewertung. Eine verzögerte Bewertung kann jedoch immer noch durch die Verwendung von Verschlüssen erreicht werden. ML wird zum Metaprogrammieren oder zum Schreiben von Programmen verwendet, die andere Programme manipulieren. ML ist bekannt für die Verwendung des Hindley-Milner-Typsystems, das automatisch die Typen der meisten Ausdrücke zuweist, ohne dass explizite Typanmerkungen erforderlich sind, und die Typensicherheit gewährleistet. ML wird auch verwendet für:
- Wissenschaftliche Anwendungen
- Satzanbieter
- Analysatoren, Compiler und Programmiersprachen
- Finanzsystemanwendungen
- Bioinformatik und genealogische Datenbanken
Eigenschaften von ML
ML ist eine streng typisierte Sprache, was bedeutet, dass eine gut typisierte Sprache keine Laufzeitfehler verursacht. Es verfügt über ein automatisches Speicherverwaltungssystem durch Speicherbereinigung, sodass der Speicher vom Compiler automatisch zugewiesen und freigegeben wird. Parametrischer Polymorphismus wird unterstützt, was bedeutet, dass eine einzelne polymorphe Funktion geschrieben werden kann, um einen Parameter eines beliebigen kompatiblen Typs aufzunehmen. Weitere Funktionen sind:
- Erstklassige Funktionen
- Statische Eingabe
- Typ Interferenz
- Mustervergleich für funktionale Argumente
- Ausnahmebehandlung
- Algebraische Datentypen
ML ist auch die Abkürzung für maschinelles Lernen, eine Art Datenanalyse, bei der Algorithmen zum Lernen aus Daten verwendet werden.