Objective Caml (OCaml)
Definition of the Language
OCaml or Objective Caml is the major implementation of the Caml Language. It adds an additional feature, object oriented constructs, to the main Caml Language. The toolset for OCaml consists of: a bytecode compiler, a top-level interpreter, a package manager, a native code compiler and a reversible debugger.
It possesses a large standard library, making it suitable for software engineering on the large scale. The project, managed by INRIA, is free and open-source. Many languages, such as F# have been influenced and have even taken certain elements from OCaml.
A History of OCaml
OCaml was released as the successor to Caml light, an earlier implementation of the Caml language. The name Caml stands for ‘Categorical Abstract Machine Language’. However, OCaml does not have any relation whatsoever with CAM.
Since the start of the 1990’s, type systems and inferences for object oriented programming have been subject of much research. Didier Rémy, along with Jérôme Vouillon (who joined forces with Didier later), managed to design a type system for objects and classes which was elgant, as well as quite expressive. The newly created design was implemented, as well as integrated inside the Caml Special Light and this led to the creation of the Objective Caml language and implementation in 1996. It was renamed to OCaml in 2011.
Following its release, Objective Caml became the first language ever to make use of the complete power of object oriented programming along with ML style static typing and inference. It has support for many OO programming idioms via a statically type-safe way. In contrast, these idoms cause trouble in other languages of the same type, such as Java or C++.
In 2000, further features were added to Objective Caml by Jacques Garrigue. Some of these features were polymorphic variants, optional and labeled functional arguments, as well as polymorphic methods.
The popularity of OCaml has been increasing steadily since its introduction in the 1990s and it has been attracting large numbers of users too. This is attributable to the many high quality programs which have been written using OCaml, as well as the valuable contributions from the user communities.
These contributions include numerous libraries, tools and frameworks to do with a wide variety of areas like graphical user interfaces and network programming. Meanwhile, the OCaml development team also works on improving the quality of the language and making it portable to latest systems and architectures.