OCaml 言語ヒストリー
きくよむ文学 ラジオ
00:00 | 00:00
OCaml は、1996 年にフランスの INRIA の Xavier Leroy、Jérôme Vouillon、Damien Doligez、Didier Rémy によって作成されました。1960 年代に始まった ML に関する長い研究の流れに触発され、学術コミュニティと深いつながりを持ち続けています。
ML はもともと、1972 年に Robin Milner (スタンフォード大学、後にケンブリッジ大学) によってリリースされた LCF (Logic for Computable Functions) 証明アシスタントのメタ言語でした。ML は、LCF をさまざまなマシンで使いやすくするためにコンパイラーに変換され、1980 年代までに徐々に独自の本格的なシステムになりました。
Caml の最初の実装は 1987 年に登場しました。Ascánder Suárez は、Gérard Huet が率いる INRIA の Formel プロジェクトの一環として Caml を作成しました。その後、Pierre Weis と Michel Mauny が開発を続けました。 1990 年、Xavier Leroy と Damien Doligez は、高速でシーケンシャルなガベージ コレクターを備えたバイトコード インタープリターをベースにした Caml Light という新しい実装を構築しました。その後数年間で、Michel Mauny の構文操作ツールなどの便利なライブラリが登場し、教育および研究チームでの Caml の使用が促進されました。
Xavier Leroy は Caml Light を新機能で拡張し続け、1995 年に Caml Special Light をリリースしました。これにより、高速なネイティブ コード コンパイラーが追加され、実行ファイルの効率が大幅に向上し、Caml のパフォーマンスが C++ などの主流の言語と競合するようになりました。Standard ML にヒントを得たモジュール システムも、抽象化のための強力な機能を提供し、大規模なプログラムの構築を容易にしました。
現代の OCaml は、Didier Rémy と Jérôme Vouillon が強力で洗練されたオブジェクト システムを実装し 1996 年に登場しました。このオブジェクト システムは、多くの一般的なオブジェクト指向のイディオムを静的に型安全な方法でサポートしていることで有名ですが、C++ や Java などの言語では同じイディオムを実行するために実行時チェックが必要でした。2000 年に、Jacques Garrigue は OCaml を拡張し、ポリモーフィック メソッドやバリアント、ラベル付き引数やオプション引数などのいくつかの新機能を追加しました。
過去 20 年間で、OCaml は多くのユーザー ベースを獲得し、商用および学術的なコードベースの増加に対応するために言語の改善が着実に追加されてきました。2012 年までに、OCaml 4.0 リリースでは、言語の柔軟性を高めるために、一般化代数データ型 (GADT) とファーストクラス モジュールが追加されました。それ以来、OCaml は毎年安定したリリースペースを維持しており、マルチコアをサポートする OCaml 5.0 は 2022 年 12 月にリリースされました。
また、x86_64、ARM、RISC-V、PowerPC などの最新の CPU アーキテクチャに対する高速なネイティブ コード サポートもあるため、リソースの使用、予測可能性、パフォーマンスがすべて重要となるシステムには OCaml が適しています。
ML はもともと、1972 年に Robin Milner (スタンフォード大学、後にケンブリッジ大学) によってリリースされた LCF (Logic for Computable Functions) 証明アシスタントのメタ言語でした。ML は、LCF をさまざまなマシンで使いやすくするためにコンパイラーに変換され、1980 年代までに徐々に独自の本格的なシステムになりました。
Caml の最初の実装は 1987 年に登場しました。Ascánder Suárez は、Gérard Huet が率いる INRIA の Formel プロジェクトの一環として Caml を作成しました。その後、Pierre Weis と Michel Mauny が開発を続けました。 1990 年、Xavier Leroy と Damien Doligez は、高速でシーケンシャルなガベージ コレクターを備えたバイトコード インタープリターをベースにした Caml Light という新しい実装を構築しました。その後数年間で、Michel Mauny の構文操作ツールなどの便利なライブラリが登場し、教育および研究チームでの Caml の使用が促進されました。
Xavier Leroy は Caml Light を新機能で拡張し続け、1995 年に Caml Special Light をリリースしました。これにより、高速なネイティブ コード コンパイラーが追加され、実行ファイルの効率が大幅に向上し、Caml のパフォーマンスが C++ などの主流の言語と競合するようになりました。Standard ML にヒントを得たモジュール システムも、抽象化のための強力な機能を提供し、大規模なプログラムの構築を容易にしました。
現代の OCaml は、Didier Rémy と Jérôme Vouillon が強力で洗練されたオブジェクト システムを実装し 1996 年に登場しました。このオブジェクト システムは、多くの一般的なオブジェクト指向のイディオムを静的に型安全な方法でサポートしていることで有名ですが、C++ や Java などの言語では同じイディオムを実行するために実行時チェックが必要でした。2000 年に、Jacques Garrigue は OCaml を拡張し、ポリモーフィック メソッドやバリアント、ラベル付き引数やオプション引数などのいくつかの新機能を追加しました。
過去 20 年間で、OCaml は多くのユーザー ベースを獲得し、商用および学術的なコードベースの増加に対応するために言語の改善が着実に追加されてきました。2012 年までに、OCaml 4.0 リリースでは、言語の柔軟性を高めるために、一般化代数データ型 (GADT) とファーストクラス モジュールが追加されました。それ以来、OCaml は毎年安定したリリースペースを維持しており、マルチコアをサポートする OCaml 5.0 は 2022 年 12 月にリリースされました。
また、x86_64、ARM、RISC-V、PowerPC などの最新の CPU アーキテクチャに対する高速なネイティブ コード サポートもあるため、リソースの使用、予測可能性、パフォーマンスがすべて重要となるシステムには OCaml が適しています。