ML (programming language)

from Wikipedia, the free encyclopedia

Meta Language ( ML ) describes a family of functional programming languages with static typing , polymorphism , automatic garbage collection, and generally strict evaluation . However, ML is not a purely functional language like Haskell , but also allows imperative constructs and effects in some places , for example for file access.

ML was developed in 1973 by Robin Milner at the University of Edinburgh as part of a theorem-proof program LCF (Logic of Computable Functions), which was supposed to automatically prove the correctness of programs. Since then, ML has developed into a complete and independent programming language that is used in particular in the scientific environment. The language is taught as the primary programming language in some universities.

The ML family members

Among around a dozen variants, the best-known representatives of ML are “ Standard ML ” (hereinafter referred to as SML), “ Lazy ML ” and “Caml”. Caml stands for "Categorical Abstract Machine + ML" and was developed at INRIA (Institut National de Recherche Informatique et en Automatique) in France by Gérard Huet in the years 1984–85 and expanded in 1990 under Xavier Leroy to Objective CAML (OCaml). OCaml combines functional, imperative and object-oriented language concepts. Lazy ML is a dialect of ML that breaks with the principle of strict semantics . Standard ML, on the other hand, was Robin Milner's attempt in 1984 to unite the language dialects of ML. Besides the ML core, other ideas are also available, e.g. B. the function declaration by samples of the programming language Hope , flowed into SML. There is a 1997 revised version of SML, which is mostly called “Standard ML'97” in the literature in order to differentiate it from the original version. The reference implementation of SML is Standard ML of New Jersey (SML / NJ).


  • Gert Smolka : Programming - an introduction to computer science with Standard ML . Oldenbourg Wissenschaftsverlag, Munich 2008, ISBN 978-3-486-58601-5 .
  • LC Paulson: ML for the working programmer . University Pr., Cambridge 1991, ISBN 0-521-42225-6 .

Web links