ML (programlingvo)
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.
ML | |
---|---|
programlingvo • proceda programlingvo • funkcia programlingvo | |
Paradigmo: | plurparadigma: funkcia, ordonema |
Paradigmo(j): proceda programado • funkcia programado • ordonema programado | |
Aperis en: | 1973 |
Aŭtoro(j): | Robin Milner k.a. ĉe la Universitato de Edinburgo |
Programlingva(j) 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 |
Superrigardo
redaktiNuntempe 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- Standard ML kaj ĝiaj realigoj:
- SML/NJ, realigo kun etendoj por kunrula programado ellaborita ĉe Universitato Princeton kaj Bell Laboratories
- Moscow ML, realigo origine bazita sur Caml Light
- Alice ML, etendo de Standard ML kun subteno de paralela programado per uzo de estontaĵoj
- MLton, potenca plenprograme optimiga tradukilo strikte konforma al la Difino
- 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- ↑ MILNER, Robin. A theory of type polymorphism in programming. Journal of Computer and System Sciences, 17(3):348–375, 1978.
Plua legado
redakti- The Definition of Standard ML, Robin Milner, Mads Tofte, Robert Harper, MIT Press 1990; (reviziita eldono aldonas verkinton David MacQueen), MIT Press 1997, (ISBN 0-262-63181-4).
- Commentary on Standard ML, Robin Milner, Mads Tofte, MIT Press 1997, (ISBN 0-262-63137-7).
- ML for the Working Programmer, Lawrence Paulson, Cambridge University Press 1991, 1996, (ISBN 0-521-57050-6).
- HARPER, Robert. (2011) Programming in Standard ML (angle).
- Elements of ML Programming, Jeffrey D. Ullman, Prentice-Hall 1994, 1998, (ISBN 0-13-790387-1).