Categorical Abstract Machine Language
<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 and
ENS. 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 and mutable 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 and
class layer in 1996, the project's name was changed to
Objective Caml.
["The CAML Reference Manual", P. Weis et al, TR INRIA-ENS, 1989].