{{위키데이터 속성 추적}}
{{Infobox programming language
 | name                   = OCaml
 | logo                   = OCaml Logo.svg
 | logo caption           = 
 | screenshot             = 
 | screenshot caption     = 
 | paradigm               = [[프로그래밍 패러다임|멀티 패러다임]]: [[함수형 프로그래밍|함수형]], [[명령형 프로그래밍|명령형]], [[객체 지향 프로그래밍|객체 지향]]
 | scope                  =
 | released               = {{시작 날짜와 나이|1996}}
 | designer               = [[Xavier Leroy]], Jérôme Vouillon, [[Damien Doligez]], Didier Rémy, Ascánder Suárez
 | developer              = [[French Institute for Research in Computer Science and Automation|INRIA]]
 | latest release version = {{wikidata|property|edit|reference|P548=Q2804309|P348}}
 | latest release date    = {{wikidata|qualifier|P548=Q2804309|P348|P577}} ({{Time ago| {{wikidata|qualifier|raw|P548=Q2804309|P348|P577}} }})
 | latest preview version = 
 | latest preview date    = <!-- {{시작 날짜와 나이|YYYY|MM|DD}} -->
 | typing                 = inferred, static, strong, structural
 | implementations        = 
 | influenced by          = [[Caml]], [[Standard ML]], [[파스칼 (프로그래밍 언어)|파스칼]]
 | influenced             = [[ATS]], [[Coq]], [[Elm]], [[F 샤프|F#]], [[F*]], [[Haxe]], [[Opa]], [[리즌 (프로그래밍 언어)|리즌]], [[러스트]], [[스칼라]]
 | programming language   = OCaml, [[C (프로그래밍 언어)|C]]
 | platform               = [[IA-32]], [[x86-64]], [[파워 ISA|파워]], [[SPARC]], [[ARM 아키텍처|ARM 32-64]]
 | operating system       = [[크로스 플랫폼]]: [[유닉스]], [[macOS]], [[마이크로소프트 윈도우|윈도우]]
 | license                = [[GNU LGPL|LGPLv2.1]]
 | file ext               = .ml, .mli
 | website                = {{URL|https://ocaml.org/}}
 | wikibooks              = Objective Caml
}}
'''OCaml'''(Objective Caml)은 [[ML (프로그래밍 언어)|ML]] 언어의 방언인 [[Caml]] [[프로그래밍 언어]]의 주요 구현체로서 [[Xavier Leroy]], [[Jérôme Vouillon]], [[Damien Doligez]], [[Didier Rémy]] 등의 사람들이 1996년에 작성하였다. OCaml은 [[Institut National de Recherche en Informatique et en Automatique|INRIA]]에서 주도적으로 관리하고 유지하는 [[오픈 소스]] 프로젝트이다.

OCaml은 Caml 언어의 핵심 부분에 [[객체 지향]] 구조를 추가한 것이다.

OCaml의 특징은 정적 타입 시스템, 타입 추론, 파라메트릭 폴리모피즘, 패턴 매칭, 펑터, 예외 처리, 쓰레기 수집 등이다.

Ocaml 도구 모음에는 대화식의 톱 레벨(top level) [[인터프리터]], [[바이트코드]] [[컴파일러]], 최적화 컴파일러 등이 포함되어 있다. 또한 많은 표준 라이브러리들이 포함되어 있고 탄탄한 모듈 방식 및 대형 소프트웨어에 적용 가능한 객체 지향 프로그래밍 구조 등을 가지고 있어서, [[파이썬]]이나 [[펄]]과 같은 언어들로 응용 프로그램을 작성해야 하는 경우에 Ocaml도 충분히 유용하게 사용할 수 있다.

Ocaml은 [[Caml Light]]를 계승하였다. CAML은 ''Categorical Abstract Machine Language''의 머리글자이지만, Ocaml은 abstract machine(추상 기계) 기능을 삭제하였다.

== 예제 ==
* [[헬로 월드 프로그램]]
<syntaxhighlight lang="ocaml">
print_endline "Hello World!"
</syntaxhighlight>
* [[피보나치 수 프로그램]]
<syntaxhighlight lang="ocaml">
let rec fib_aux n a b =
  match n with
  | 0 -> a
  | _ -> fib_aux (n - 1) b (a+b)
let fib n = fib_aux n 0 1
</syntaxhighlight>
* [[퀵소트]]
<syntaxhighlight lang="ocaml">
let rec qsort = function
   | [] -> []
   | pivot :: rest ->
       let is_less x = x < pivot in
       let left, right = List.partition is_less rest in
       qsort left @ [pivot] @ qsort right
</syntaxhighlight>

== 각주 ==
{{각주}}

== 외부 링크 ==
* {{공식 웹사이트}}

{{전거 통제}}

[[분류:함수형 프로그래밍 언어]]
[[분류:객체 지향 프로그래밍 언어]]
[[분류:1996년 개발된 프로그래밍 언어]]
[[분류:ML 프로그래밍 언어 계열]]
[[분류:크로스 플랫폼 자유 소프트웨어]]
[[분류:자유 컴파일러와 인터프리터]]
[[분류:패턴 매칭 프로그래밍 언어]]
[[분류:정적 타입 프로그래밍 언어]]