
OCamlは1996年にフランス国立情報学自動制御研究所(INRIA)のXavier Leroyらが開発した、ML(Meta Language)系の静的型付け関数型プログラミング言語である。Standard MLの兄弟に当たり、強力な型推論、代数的データ型、パターンマッチング、オブジェクト指向機能を併せ持つ。コンパイラのコンパイラ的な用途を超え、Jane Streetなど金融業界の本番システムや、定理証明系Coq、Webブラウザ言語Reasonの基盤として現代も使われ続けている。
この記事の目次
- Caml LightからObjective Camlへ
- Hindley-Milner型推論と代数的データ型
- Jane Streetと金融業界での実利用
- Coq・Reason・F#への影響
- まとめ
Caml LightからObjective Camlへ

OCamlの源流は、1980年代後半にINRIAで開発されたCaml(Categorical Abstract Machine Language)にある。Gérard Huetらが立ち上げ、Xavier Leroyが博士課程の研究としてCaml Lightと呼ばれる軽量実装を1990年代初頭に作成した。これに続き、Didier RémyとJérôme Vouillonが設計したオブジェクト指向拡張を統合し、1996年にObjective Caml(後にOCamlへと改称)として公開された。
OCamlは2000年代を通じて改良が続き、ジェネリクスやモジュールシステムの強化、ネイティブコンパイラの最適化が進められた。Jane Streetの寄付を受けて2010年代にはマルチコア対応の研究プロジェクト「Multicore OCaml」が開始され、2022年12月に公開されたOCaml 5.0で並列実行とエフェクトハンドラが言語仕様に取り込まれた。
Hindley-Milner型推論と代数的データ型

OCamlの特徴は、強力なHindley-Milner型推論を持ちながら開発者が明示的な型注釈をほとんど書かずに済む点にある。「let f x = x + 1」と書けば自動的に「int -> int」と推論され、誤った型の組み合わせはコンパイル時に検出される。MLファミリーの伝統である代数的データ型と網羅性チェック付きパターンマッチングは、状態遷移やAST処理を非常に簡潔に書ける手段となる。
モジュールシステムも特徴的で、シグネチャ、ストラクチャ、ファンクタ(モジュールを引数に取るモジュール)といった概念を備える。これにより、抽象化レイヤを言語レベルで設計でき、大規模システムの整理に向いている。可変参照やループ構文も用意されているため、関数型・命令型・オブジェクト指向のいずれのスタイルも自然に混在させられるマルチパラダイム言語である点も実務での利便性を高めている。
Jane Streetと金融業界での実利用

OCamlを世界的に有名にしたのが、米国の高頻度取引会社Jane Streetである。同社は2003年頃にOCamlを社内標準言語に採用し、トレーディングシステム、リスク管理、データ解析の中核をOCamlで構築している。社内ライブラリCoreは2009年にオープンソース化され、OCamlコミュニティの標準ライブラリ的役割を果たしている。
Jane Streetの採用理由は単純で、強い型システムが本番障害を未然に防ぎ、関数型の表現力が金融ロジックの複雑さを抑え込むからとされる。ヨーロッパでもLexiFiが金融商品記述DSLをOCamlで実装し、Bloombergも一部の言語処理ツール開発にOCamlを使っている。型安全性が誤発注を抑制する現場で、OCamlは「実利のための関数型」という独自の地位を保つ。
Coq・Reason・F#への影響

OCamlは他言語の実装基盤としても重要である。INRIAが開発する定理証明支援系Coqは長くOCamlで書かれており、形式手法の研究や暗号プロトコル検証の現場で広く使われてきた。FacebookのFlow型チェッカーやHackコンパイラもOCamlで実装されており、大規模Webサービスの型安全化を支えてきた。
Facebook主導のReasonは、OCamlの意味論をベースにJavaScript開発者にも親しみやすい構文を提供する言語で、ReactアプリのReScript(旧BuckleScript)と組み合わせて利用される。後述のF#もOCamlの強い影響下にあり、初期の構文はOCamlに非常に近かった。INRIAの研究言語として始まったOCamlが、世界中の言語設計やインフラに広く影を落としている点は注目に値する。
まとめ
OCamlは1996年にINRIAで生まれて以降、Hindley-Milner型推論と代数的データ型を武器に「学術と実務の橋渡し」を果たしてきた。Jane Streetをはじめとする金融現場、Coq・ReasonなどのOCaml製プロジェクトを通じて、関数型プログラミングが現場で機能することを実証し続けている。
※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

コメント