ML (programming language)

Meta Language (ML ) describes a family of functional programming languages ​​with static typing, polymorphism, automatic garbage collection and generally stricter evaluation. However, ML is not a purely functional language like Haskell, but allowed in some places and imperative constructs and effects, for example, for file I / O. 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 automates the correctness of programs should prove. Since then ML has evolved into a complete and independent programming language that is especially used in a scientific environment. The language is taught in some universities as the primary programming language.

The ML family members

Among about a dozen variants are the most famous representatives of ML " Standard ML " ( hereinafter referred to as SML), " Lazy ML " and " Caml ". Caml stands for " Categorical Abstract Machine ML " and was at the 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 Objective CAML ( OCaml ). OCaml combines functional, imperative and object-oriented language concepts. Lazy ML is a dialect of ML, which breaks with the principle of strict semantics. Standard ML, however, was Robin Milner's attempt in 1984 to unite the language dialects of ML. In addition to the ML- core other ideas, such as the function declaration by patterns of Hope programming in SML have been incorporated. 1997 there is a revised version of the SML, which is usually referred to in the literature "Standard ML'97 ", to distinguish it from the original version. The reference implementation of SML is Standard ML of New Jersey (SML / NJ).