Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

FAQ - General questions

What is Caml?
Caml is a programming language. It is a functional language, since the basic units of programs are functions. It is a strongly-typed language; it means that the objects that you use belong to a set that has a name, called its type. In Caml, types are managed by the computer, the user has nothing to do about types (types are synthesized). The language is available on almost every Unix platform (including Linux and MacOS X) and on PCs under Windows. A brief tour on main features of Caml.
What is the meaning of the name “Caml”
“Caml” is an acronym: it stands for “Categorical Abstract Machine Language”. The “Categorical Abstract Machine” is an abstract machine to define and execute functions. It is issued from theoretical considerations on the relationship between category theory and lambda-calculus. The first Caml compiler produced code for this abstract machine (in 1984).
In addition, Caml is issued from the ML programming language, designed by Robin Milner in 1978, and used as the programming language to write the “proof tactics” in the LCF proof system.
Do you write “Caml” or “CAML”, and “OCaml”, “Ocaml” or “OCAML”??
We write Caml and OCaml.
According to usual rules for acronyms, we should write CAML, as we write USA or INRIA. On the other hand, this upper case name seems to yell all over the place, and writing Caml is far more pretty and elegant. The same principle applies for OCaml; we capitalize the “C” for consistency.
Is Caml a compiled or interpreted language?
Caml is compiled. However each Caml compiler offers a top-level interactive loop, that is similar to an interpreter. In fact, in the interactive system, the user may type in program chunks (we call these pieces Caml “phrases”) that the system handles at once, compiling them, executing them, and writing their results.
What are the differences between Caml V3.1, Caml Light, and OCaml?
These are different Caml implementations that have been developed successively at INRIA. These systems share many features since they all implement the core of the Caml language; so the basic syntax is nearly the same. However, all these systems have their own extensions to the Caml core language.
Caml V3.1 is no longer maintained nor distributed. Caml Light is no longer developed, but still maintained. Because of its stable status, it is actively used in education. Most other users have switched to OCaml, the latest variant of the language, and we suggest using OCaml in new software developments. See our brief history of the Caml language.
How to contact the developers of Caml? How to report a bug in the compilers?
Please consult this page.