The notion of the categorical abstract machine arose in the mid-1980s. It took its place in computer science as a kind of
theory of computation for programmers, represented by
Cartesian closed category and embedded into the
combinatory logic. CAM is a transparent and sound mathematical representation for the languages of functional programming. The machine code can be optimized using the equational form of a theory of computation. Using CAM, the various mechanisms of computation such as
recursion or
lazy evaluation can be emulated as well as parameter passing, such as
call by name,
call by value, and so on. In theory, CAM preserves all the advantages of object approach towards programming or computing. The main current implementation is OCaml, which added class inheritance and dynamic method dispatch to
Caml the Categorical Abstract Machine Language. Both are variants of MetaLanguage
ML, and all three languages implement
type inference. == Implementation ==