ML (programlingvo)

El Vikipedio, la libera enciklopedio
Salti al navigilo Salti al serĉilo
ML
Paradigmo: plurparadigma: funkcia, ordonema
Aperis en: 1973
Aŭtoro(j): Robin Milner k.a. ĉe la Universitato de Edinburgo
Dialekto(j): Standard ML, Caml, OCaml, F#
Kreita sub la influo de: ISWIM
Havas influon sur: Clojure, Coq, Cyclone, C++, Elm, F*, Haskell, Idris, Miranda, Nemerle, Opa, Erlang, Rust, Scala
v  d  r
Information icon.svg

ML (angle Meta Language) estas ĝeneralcela funkcia programlingvoj. Ĝi radikas el Lisp, kaj taksitas kiel “Lisp kun tipoj”. Ĝi famas pro sia uzo de plurforma tipsistemo Hindley–Milner, kiu aŭtomate asignas la tipojn de la plejmulto de esprimoj sen postuli eksplicitajn tipnotojn, kaj certigas tipsekurecon – estas formala pruvo, ke bontipa ML-programo ne kaŭzas dumrulajn tiperarojn.[1] ML provizas modelkongruigon por funkciargumentoj, rubokolektado, obeema programado, voko-laŭ-valoro kaj curry-igo. Ĝi forte uzatas ĉe programlingva esplorado kaj estas unu el la malmultaj lingvoj tute specifigitaj kaj kontrolitaj per uzo de formala semantiko. Ĝiaj tipoj kaj modelkongruadoj igas ĝin bonsitua kaj ofte uzata por operacii sur aliaj formalaj lingvoj, kiel ĉe skribado de tradukiloj, aŭtomata teorempruvado kaj formalkontrolo.

Superrigardo[redakti | redakti fonton]

Nuntempe estas kelkaj lingvoj en la familio ML; la tri plej elstaraj estas Standard ML (SML), OCaml kaj F#. Ideoj el ML influis grandan nombron de aliaj lingvoj, kiel Haskell, Cyclone, Nemerle, ATS kaj Elm.

Vidu ankaŭ[redakti | redakti fonton]

  • Dependent ML, etendo de ML kun dependaj tipoj, kiu kondukis al la ellaborado de ATS
  • Lazy ML, eksperimenta pigre taksa ML-dialekto el la komencaj 1980j, kiu paved the way por tradukado de voko-laŭ-bezono-lingvoj, kiel ekzemple Haskelo kaj Clean
  • PAL, eduka lingvo rilata al ML

Referencoj[redakti | redakti fonton]

  1. MILNER, Robin. A theory of type polymorphism in programming. Journal of Computer and System Sciences, 17(3):348–375, 1978.

Plua legado[redakti | redakti fonton]

Eksteraj ligiloj[redakti | redakti fonton]