"caml" "functional programming" "imperative" "language" "ml" "ocaml" "objective caml" "object oriented" "sml" "OCaml" is the common abbreviation of the actual name of the "language", "Objective Caml". The name of the language is a descendant of the name of another language, from which the OCaml language itself is descended: "ML", which stands for "metalanguage". "Caml", the name of an intermediate language, stands for "Categorical Abstract Machine Language", in a departure from the meaning of the initialization of its ancestor ML. The 'objective' part of 'Objective Caml' refers to its "object oriented" programming capabilities. A more traditional descendant of ML is still in use and actively developed, in the form of "SML", or 'Standard ML', but other members of the ML family are mostly unused and unsupported. The core language has a "functional programming" syntax derived from its ancestor, ML, but also incorporates "imperative" and object oriented programming characteristics for surprising flexibility. It is both "statically typed" and "strongly typed", and uses a modern "type inference" system, which provides all the benefits C and Java purport to have with relation to their declarative type systems but, in fact, don't really. Despite this, it imposes far less verbosity on the programmer because of type inference. Thus, the language lends itself to succinctness while maintaining clarity, "type correctness" at compile time, and fast execution. It can be run from an interactive shell-like environment very similar to the Lisp "REPL", as a fairly standard "shebang line" script using an "interpreter", within a "virtual machine" using the "bytecode" "compiler", or as a stand-alone compiled "binary" "executable". Compiled binary executables tend to rival C in speed -- averaging better than half the speed of C binaries, and faster than C++. All of this is part of the standard distribution of OCaml software, along with a core set of "libraries" that are known as "modules". Its module system is similar to Perl's and can also use Perl modules through its module system -- which makes most of CPAN, one of the biggest library collections for any language, available to OCaml. It also has the capacity to link in C libraries. (* This file is still in progress. *)