OCaml
Caml程式語言的擴充 / 维基百科,自由的 encyclopedia
OCaml(/oʊˈkæməl/ oh-KAM-əl),是一个函数式、指令式、模块化[1]、面向对象的通用的编程语言。在Xavier Leroy(英语:Xavier Leroy)和Damien Doligez(英语:Damien Doligez),于1990年和1991年实现的ML方言Caml Light之上[5],Didier Rémy和Jérôme Vouillon,于1996年增加了面向对象特征[2],从而形成了“Objective Caml”[6],在2011年时重命名为“OCaml”[7]。
Quick Facts 编程范型, 语言家族 ...
编程范型 | 多范型:函数式,指令式,模块化[1],面向对象[2] |
---|---|
语言家族 | ML |
设计者 | Xavier Leroy(英语:Xavier Leroy), Damien Doligez(英语:Damien Doligez), Didier Rémy, Jérôme Vouillon |
实作者 | INRIA |
发行时间 | 1996年,28年前(1996) |
当前版本 |
|
型态系统 | 静态,强,类型推论 |
操作系统 | 跨平台 |
许可证 | GNU宽通用公共许可证 |
网站 | ocaml |
衍生副语言 | |
F#, JoCaml(英语:JoCaml), MetaOCaml[4] | |
启发语言 | |
C, Caml, Modula-2[1], Standard ML | |
影响语言 | |
ATS(英语:ATS (programming language)), Coq, Elm, F#, F*, Haxe, Opa(英语:Opa (programming language)), Rust, Scala |
Close
OCaml工具链包括交互式顶层解释器、字节码编译器、优化的本机代码编译器,可逆调试器和一个包管理器(OPAM)。OCaml最初开发于自动定理证明的场景中,并在静态分析和形式方法软件中有超凡的存在感。此外,它在系统编程、网页编程和金融工程及其他应用领域都有严肃的应用。
历史上,Ascánder Suárez于1987年基于Guy Cousineau(法语:Guy Cousineau)的范畴抽象机器(英语:Categorical abstract machine)(CAM)[8],重新实现了Gérard Huet(英语:Gérard Huet)早先的ML方言[9],并用“范畴抽象机语言”的首字母简写将其命名为Caml[10],Caml Light放弃了这个抽象机器又进行了重新实现[11]。OCaml是开放源代码项目,此项目的管理和大部分维护工作,已经交由法国国家信息与自动化研究所(INRIA)。在2000年代早期,来自OCaml的元素被很多语言接纳,特别是F#和Scala。