Meta language

Image manquante
Langage_progr.png
image:Langage_progr.png

Cet article fait partie de la série
Langages de programmation
Langages à objets
Ada 95 - C++ - C#
Common Lisp
Delphi - Eiffel - Java
Nice - Oz - Python
Simula - Smalltalk
Visual Basic
Langages impératifs
APL - ASP - Assembleur
BASIC - C - COBOL
Forth - FORTRAN - Logo
Pascal - Perl - PHP
Langages fonctionnels
Erlang - Haskell
ML/OCaml - Oz
Lisp/Common Lisp
Scheme
Langages déclaratifs
Clips - Oz - Prolog
Langages concurrents
Ada 95 - Erlang
Java - Oz
Langages balisés
HTML - SGML - XML
Dialectes XML
S-expressions
Voir aussi
Conception - Codage
Tests - Optimisations

ML (contraction de Meta Language) est un langage de programmation généraliste fonctionnel

Histoire

ML fut initialement développé par Robin Milner et d'autres personnes dans les années 1980 à l'Université d'Edimbourg, pour le système de preuves formelles LCF. R. Milner rencontrait des difficultés avec le système de typage de LISP qui permettait de « prouver » des assertions fausses. ML est un langage fonctionnel impur, signifiant par là qu'il est possible de programmer en impératif, et que par conséquent, peut être sujet à des effets de bord, contrairement à des langages purement fonctionnels comme Haskell.

ML a été standardisé en 1983, puis révisé en 1997, le langage résultant s'appelant SML (Standard ML), notamment implémenté dans Standard ML of New-Jersey (SML/NJ). En parallèle, des équipes françaises ont développé Objective Caml, dont la popularité dans la communauté ML internationale est maintenant très grande.

Fonctionnalités

Les fonctionnalités de ML incluent :

D'autres avantages du ML sont une grande sûreté (well-typed programs can't go wrong : un programme qui compile ne peut pas « planter », sur une erreur de type bien sûr), une syntaxe compacte qui s'inspire de la notation mathématique, tout en restant lisible, et une rapidité d'exécution souvent comparable à C++, surtout dans la version Objective Caml.

Les points forts de ML le rendent particulièrement apte à l'écriture de langages, de compilateurs et de systèmes de preuve formelle.

Implémentations

Les principales implémentations sont le Standard ML et Objective Caml.

Standard ML :

Objective Caml (INRIA), ne suit pas le standard SML mais est plutôt une évolution orientée objet de ML. Ce langage se caractérise par un compilateur produisant des programmes disposant d'une très grande rapidité d'exécution ainsi qu'une bibliothèque importante. Les développeurs et les utilisateurs forment une communauté très active pour un langage issu de la recherche.

See also: Meta language, 1983, 1997, APL (langage), Active server pages, Ada (langage), Assembleur (langage), Basic, CLOS