OCaml | ||
---|---|---|
Desarrollador(es) | ||
Inria ocaml.org | ||
Información general | ||
Extensiones comunes | .ml, .mli | |
Paradigma | Multiparadigma, funcional, imperativa, modular, orientada a objetos | |
Apareció en | 1996 | |
Diseñado por | Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy, Ascánder Suárez | |
Sistema de tipos | Inferido, estático, fuerte, estructural. | |
Dialectos | ML: Caml | |
Influido por | C, Caml, Modula-3, Pascal, Standard ML | |
Ha influido a | ATS, Coq, Elm, F Sharp, F*, Haxe, Opa, Rust, Scala | |
Sistema operativo | Multiplataforma: Linux, Unix, macOS, Windows | |
Licencia | LGPLv2.1 | |
OCaml ( /oʊˈkæməl/, anteriormente Objective Caml) es un lenguaje de programación para propósitos generales, de alto nivel y multiparadigma que extiende el dialecto Caml de ML con características orientadas a objetos. OCaml fue creado en 1996 por Xavier Leroy, Jérôme Vouillon,[1] Damien Doligez, Didier Rémy,[2] Ascánder Suárez y otros.
La cadena de herramientas de OCaml incluye un intérprete interactivo de nivel superior, un compilador de código intermedio (bytecode), un compilador optimizado de código nativo, un depurador reversible y un gestor de paquetes (OPAM), junto con un sistema de construcción modular para OCaml (Dune). OCaml se desarrolló inicialmente en el contexto de la demostración automática de teoremas y se utiliza en software de análisis estático y métodos formales. Más allá de estas áreas, ha encontrado aplicaciones en la programación de sistemas, desarrollo web y utilidades financieras específicas, entre otros dominios.
El acrónimo CAML originalmente significaba «Lenguaje de Máquina Abstracta Categórica» (Categorical Abstract Machine Language), pero OCaml omite esta máquina abstracta.[3] OCaml es un proyecto de software libre y de código abierto gestionado y mantenido principalmente por el Instituto Nacional de Investigación en Informática y Automática de Francia (Inria). A principios de los años 2000, elementos de OCaml fueron adoptados por muchos lenguajes, especialmente F# y Scala.