ML (sprog)

ML (sammentrækning af metasprog ) er et funktionelt programmeringssprog til generelle formål .

Historie

ML blev oprindeligt udviklet af Robin Milner og andre i 1970'erne ved University of Edinburgh , til systemet med formelle beviser Logik til beregningsfunktioner  (in) (CFL). R. Milner stødte på vanskeligheder med Lisp's typesystem, der gjorde det muligt at "bevise" falske påstande.

ML er et urent funktionelt sprog  : det er muligt at programmere tvingende, og som et resultat kan funktioner være udsat for uønskede bivirkninger (kaldet "kant") i modsætning til rent funktionelle sprog som Haskell .

ML blev standardiseret i 1983 , derefter revideret i 1997  ; det resulterende sprog kaldes Standard ML (SML) og blev især implementeret i Standard ML i New Jersey (SML / NJ). Samtidig har franske hold udviklet Caml , som nu er meget populært i det internationale ML-samfund.

ML- typesystemet er blevet udvidet med førsteklasses polymorfisme til stede i systemet F af Jean-Yves Girard med afhandlingen fra Botlan Didier og Didier Remy i begyndelsen af ​​2000'erne er kendt som MLF. Denne udvidelse af typning har været et problem siden 1980. I dag er dette sprog mere og mere forenklet.

Funktioner

ML-funktioner inkluderer:

Andre fordele ved ML er:

ML's styrker gør det særligt velegnet til at skrive sprog, kompilatorer og formelle proof-systemer.

Implementeringer

De vigtigste implementeringer er Standard ML og OCaml.

Standard ML:

OCaml (INRIA) følger ikke SML-standarden, men er snarere en objektorienteret udvikling af ML. Dette sprog er karakteriseret ved en kompilator, der producerer programmer med meget høj eksekveringshastighed samt et stort bibliotek. Udviklere og brugere danner et meget aktivt fællesskab for et forskningssprog. OCaml tjente som grundlaget for udviklingen af F # -sproget på Microsofts .NET- platform.

Noter og referencer

  1. http://wwwdgeinew.insa-toulouse.fr/~lebotlan/papers/lbr03.pdf , artikel på engelsk præsenteret på ICFP 2003-konferencen | http://wwwdgeinew.insa-toulouse.fr/~lebotlan/mlf.html