ML, abréviation de Meta Language, est un langage de programmation fonctionnel à usage général. Il a une portée statique, ce qui signifie qu'une variable fait toujours référence à son environnement de niveau supérieur. Le ML peut être qualifié de langage fonctionnel impur car il permet des effets secondaires, ce que la plupart des langages de programmation fonctionnels ne permettent pas. Un effet secondaire est lorsqu'une procédure modifie une variable hors de sa portée.
Comme la plupart des langages de programmation, ML utilise une évaluation rapide, de sorte qu'une expression est évaluée dès qu'elle est liée à une variable. Ceci est en opposition directe avec l'évaluation paresseuse. Cependant, une évaluation paresseuse peut encore être réalisée grâce à l'utilisation de fermetures. ML est utilisé pour la méta-programmation ou l'écriture de programmes qui manipulent d'autres programmes. ML est connu pour son utilisation du système de types Hindley-Milner, qui attribue automatiquement les types de la plupart des expressions sans nécessiter d'annotations de type explicites et garantit la sécurité des types. ML est également utilisé pour:
- Applications scientifiques
- Fournisseurs de théorème
- Analyseurs, compilateurs et langages de programmation
- Applications des systèmes financiers
- Bioinformatique et bases de données généalogiques
Caractéristiques de ML
ML est un langage strictement typé, ce qui signifie qu'un langage bien typé ne provoquera pas d'erreurs de type d'exécution. Il dispose d'un système de gestion automatique de la mémoire via le garbage collection, de sorte que la mémoire est automatiquement allouée et libérée par le compilateur. Le polymorphisme paramétrique est pris en charge, ce qui signifie qu'une seule fonction polymorphe peut être écrite pour prendre un paramètre de n'importe quel type compatible. Les autres caractéristiques comprennent:
- Fonctions de première classe
- Typage statique
- Interférence de type
- Correspondance de modèle pour les arguments fonctionnels
- Gestion des exceptions
- Types de données algébriques
ML est également l'abréviation de machine learning, un type d'analyse de données qui utilise des algorithmes pour apprendre à partir des données.