Categorical Abstract Machine Language


Categorical Abstract Machine Language

(language)(Originally "CAML" - Categorical Abstract MachineLanguage) A version of ML by G. Huet, G. Cousineau, AscanderSuarez, Pierre Weis, Michel Mauny and others of INRIA andENS. CAML is intermediate between LCF ML and SML It has first-class functions, static type inference with polymorphic types, user-defined variant types and product types, and pattern matching. It isbuilt on a proprietary run-time system.

The CAML V3.1 implementation added lazy and mutable datastructures, a "grammar" mechanism for interfacing with theYacc parser generator, pretty-printing tools,high-performance arbitrary-precision arithmetic, and acomplete library. CAML V3 is often nicknamed "heavy CAML",because of its heavy memory and CPU requirements compared toCaml Light.

in 1990 Xavier Leroy and Damien Doligez designed a newimplementation called Caml Light, freeing the previousimplementation from too many experimental high-level features,and more importantly, from the old Le_Lisp back-end.

Following the addition of a native-code compiler and apowerful module system in 1995 and of the object andclass layer in 1996, the project's name was changed toObjective Caml.

["The CAML Reference Manual", P. Weis et al, TR INRIA-ENS,1989].