OCaml
OCaml(Objective Caml)은 Caml 프로그래밍 언어의 주요 구현체로서 Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy 등의 사람들이 1996년에 작성하였다. OCaml은 INRIA에서 주도적으로 관리하고 유지하는 오픈 소스 프로젝트이다.
OCaml은 Caml 언어의 핵심 부분에 객체 지향 구조를 추가한 것이다.
OCaml의 특징은 정적 타입 시스템, 타입 추론, 파라메트릭 폴리모피즘, 패턴 매칭, 펑터, 예외 처리, 쓰레기 수집 등이다.
Ocaml 도구 모음에는 대화식의 톱 레벨(top level) 인터프리터, 바이트코드 컴파일러, 최적화 컴파일러 등이 포함되어 있다. 또한 많은 표준 라이브러리들이 포함되어 있고 탄탄한 모듈 방식 및 대형 소프트웨어에 적용 가능한 객체 지향 프로그래밍 구조 등을 가지고 있어서, 파이썬이나 펄과 같은 언어들로 응용 프로그램을 작성해야 하는 경우에 Ocaml도 충분히 유용하게 사용할 수 있다.
Ocaml은 Caml Light를 계승하였다. CAML은 Categorical Abstract Machine Language의 머리글자이지만, Ocaml은 abstract machine(추상 기계) 기능을 삭제하였다.
예제
print_endline "Hello World!"
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
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
바깥 고리
- Caml 언어 공식 사이트
- C, C++, Java, Perl 프로그래머를 위한 OCaml 튜토리얼
- 초급 OCaml 튜토리얼
- 실용적으로 접근한 튜토리얼
- OCaml Batteries Included, 사용자 커뮤니티에서 작성한 Ocaml 표준 라이브러리
- OCaml-Java, OCaml for Java
- OCamIL, Microsoft .NET를 위한 Ocaml 컴파일러
- 다양한 프로그래밍 언어의 속도 비교 Ocaml의 결과도 있음
- LablGL and LablGTK OpenGL+ 바인딩 (LablGL) 및 GTK+ 바인딩 (LablGTK)
- Sourceforge에 있는 최신 Ocaml 프로젝트
- MetaOCaml 홈페이지
- GODI Ocaml을 위한 GODI 패키지 매니저
- OCamlcore Planet Ocaml 메타 블로그
- OCamlForge
- Ocamlwizard