Categorical Abstract Machine Language definition language
(Originally "CAML" - Categorical Abstract Machine Language) A version of ML
by G. Huet, G. Cousineau, Ascander Suarez, Pierre Weis, Michel Mauny and others of INRIA
. CAML is intermediate between LCF ML and SML
[in what sense?]. It has first-class
functions, static type inference with polymorphic
types, user-defined variant types and product types, and pattern matching
. It is built on a proprietary run-time system.
The CAML V3.1 implementation added lazy
data structures, a "grammar
" mechanism for interfacing with the Yacc parser generator
, pretty-printing tools, high-performance arbitrary-precision arithmetic, and a complete library. CAML V3 is often nicknamed "heavy CAML", because of its heavy memory and CPU requirements compared to Caml Light
in 1990 Xavier Leroy and Damien Doligez designed a new implementation called Caml Light
, freeing the previous implementation 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 a powerful module
system in 1995 and of the object
layer in 1996, the project's name was changed to Objective Caml
["The CAML Reference Manual", P. Weis et al, TR INRIA-ENS, 1989].