ML (nyelv)

Az ML ( Meta Language összehúzódása ) egy funkcionális általános célú programozási nyelv .

Történelem

ML eredetileg a Robin Milner és mások az 1970-es években , a University of Edinburgh , hogy a rendszer a hivatalos bizonyítékok Logic kiszámítható függvényt  (in) (CFL). R. Milner nehézségekbe ütközött Lisp gépelési rendszerében, ami lehetővé tette a hamis állítások "bizonyítását".

Az ML nem tiszta funkcionális nyelv  : lehetséges imperatív módon programozni, és ennek eredményeként a funkciók nemkívánatos mellékhatásoknak lehetnek kitéve (ún. „Élek”), ellentétben a tisztán funkcionális nyelvekkel, mint például a Haskell .

Az ML-t 1983- ban szabványosították , majd 1997-ben módosították  ; az így kapott nyelvet Standard ML-nek (SML) hívják , és főleg New Jersey-i Standard ML-ben (SML / NJ) valósították meg . Ugyanakkor a francia csapatok kifejlesztették a Caml-t , amely ma már nagyon népszerű a nemzetközi ML közösségben.

Az ML típusú rendszert kibővítették első osztályú polimorfizmussal, amely jelen volt Jean-Yves Girard F rendszerében . A 2000-es évek elején Botlan Didier és Didier Remy tézise MLF néven ismert. A gépelésnek ez a kiterjesztése 1980 óta jelent problémát. Ma ez a nyelv egyre egyszerűbb.

Jellemzők

Az ML jellemzői:

Az ML további előnyei:

Az ML erősségei különösen alkalmassá teszik nyelvek, fordítók és formális igazoló rendszerek írására .

Végrehajtások

A fő megvalósítások a Standard ML és az OCaml.

Normál ML:

Az OCaml (INRIA) nem követi az SML szabványt, inkább az ML objektumorientált evolúciója. Ezt a nyelvet egy fordító jellemzi, amely nagyon nagy végrehajtási sebességű programokat és nagy könyvtárat készít. A fejlesztők és a felhasználók nagyon aktív közösséget alkotnak egy kutatási nyelv számára. Az OCaml szolgált az F # nyelv fejlesztésének alapjául a Microsoft .NET platformján.

Megjegyzések és hivatkozások

  1. http://wwwdgeinew.insa-toulouse.fr/~lebotlan/papers/lbr03.pdf , angol nyelvű cikk az ICFP 2003 konferencián | http://wwwdgeinew.insa-toulouse.fr/~lebotlan/mlf.html