ML (limbă)

ML (contracția Meta Language ) este un limbaj de programare funcțional cu scop general .

Istorie

ML a fost inițial dezvoltat de Robin Milner și alții în anii 1970 la Universitatea din Edinburgh , pentru sistemul de dovezi formale Logică pentru funcții calculabile  (în) (CFL). R. Milner a întâmpinat dificultăți cu sistemul de tastare al lui Lisp care a permis „afirmațiile false” să fie „dovedite”.

ML este un limbaj funcțional impur  : este posibil să se programeze în imperativ și, ca rezultat, funcțiile pot fi supuse unor efecte secundare nedorite (numite „margine”), spre deosebire de limbajele pur funcționale precum Haskell .

ML a fost standardizat în 1983 , apoi revizuit în 1997  ; limbajul rezultat se numește Standard ML (SML) și a fost implementat în special în Standard ML din New Jersey (SML / NJ). În același timp, echipele franceze au dezvoltat Caml , care este acum foarte popular în comunitatea internațională de ML.

Sistemul de tip ML a fost extins cu polimorfism de primă clasă prezent în sistemul F al lui Jean-Yves Girard, cu teza lui Botlan Didier și Didier Remy la începutul anilor 2000 este cunoscută sub numele de MLF. Această extensie a tastării a fost o problemă din 1980. Astăzi, acest limbaj este din ce în ce mai simplificat.

Caracteristici

Caracteristicile ML includ:

Alte avantaje ale ML sunt:

Punctele forte ale ML îl fac deosebit de potrivit pentru scrierea limbajelor, compilatoarelor și sistemelor de probă formale.

Implementări

Principalele implementări sunt Standard ML și OCaml.

ML standard:

OCaml (INRIA) nu respectă standardul SML, ci este mai degrabă o evoluție orientată obiect a ML. Acest limbaj este caracterizat de un compilator care produce programe cu viteză de execuție foarte mare, precum și de o bibliotecă mare. Dezvoltatorii și utilizatorii formează o comunitate foarte activă pentru un limbaj de cercetare. OCaml a servit ca bază pentru dezvoltarea limbajului F # pe platforma Microsoft .NET .

Note și referințe

  1. http://wwwdgeinew.insa-toulouse.fr/~lebotlan/papers/lbr03.pdf , articol în limba engleză prezentat la conferința ICFP 2003 | http://wwwdgeinew.insa-toulouse.fr/~lebotlan/mlf.html