OCaml

OCaml
ParadigmsMulti-paradigm: functional, imperative, modular,[1] object-oriented
FamilyML: Caml
Designed byXavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy, Ascánder Suárez
DeveloperInria
First appeared1996; 28 years ago (1996)[2]
Stable release
5.2.0[3] Edit this on Wikidata / 13 May 2024; 6 months ago (13 May 2024)
Typing disciplineInferred, static, strong, structural
Implementation languageOCaml, C
PlatformIA-32, x86-64, Power, SPARC, ARM 32-64, RISC-V
OSCross-platform: Linux, Unix, macOS, Windows
LicenseLGPLv2.1
Filename extensions.ml, .mli
Websiteocaml.org
Influenced by
C, Caml, Modula-3, Pascal, Standard ML
Influenced
ATS, Coq, Elm, F#, F*, Haxe, Opa, Rust,[4] Scala

OCaml (/ˈkæməl/ oh-KAM-əl, formerly Objective Caml) is a general-purpose, high-level, multi-paradigm programming language which extends the Caml dialect of ML with object-oriented features. OCaml was created in 1996 by Xavier Leroy, Jérôme Vouillon,[5] Damien Doligez, Didier Rémy,[6] Ascánder Suárez, and others.

The OCaml toolchain includes an interactive top-level interpreter, a bytecode compiler, an optimizing native code compiler, a reversible debugger, and a package manager (OPAM) together with a composable build system for OCaml (Dune). OCaml was initially developed in the context of automated theorem proving, and is used in static analysis and formal methods software. Beyond these areas, it has found use in systems programming, web development, and specific financial utilities, among other application domains.

The acronym CAML originally stood for Categorical Abstract Machine Language, but OCaml omits this abstract machine.[7] OCaml is a free and open-source software project managed and principally maintained by the French Institute for Research in Computer Science and Automation (Inria). In the early 2000s, elements from OCaml were adopted by many languages, notably F# and Scala.

  1. ^ "Modules". Retrieved 22 February 2020.
  2. ^ Leroy, Xavier (1996). "Objective Caml 1.00". caml-list mailing list.
  3. ^ "OCaml 5.2.0 Release Notes". Retrieved 24 May 2024.
  4. ^ "Influences - The Rust Reference". The Rust Reference. Retrieved 31 December 2023.
  5. ^ "Jérôme Vouillon". www.irif.fr. Retrieved 14 June 2024.
  6. ^ "Didier Remy". pauillac.inria.fr. Retrieved 14 June 2024.
  7. ^ "A History of OCaml". Retrieved 24 December 2016.