マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】OCaml

【OSS情報アーカイブ】OCaml

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「OCaml」とは

基本情報

概要

OCaml(オーキャムル)とは、オブジェクト指向を取り入れた関数型プログラミング言語です。言語理論研究の成果が取り入れられており、高信頼で簡潔なコードを記述できます。プログラミング言語「ML」から派生しています。

プログラミング言語「ML(Meta Language)」とは

「ML(Meta Language)」は、「静的型チェックを行う型付き言語」でありながら、「Lispのような柔軟なプログラミング」が可能です。「パターンマッチング」「多相型関数」「モジュール」などの特徴があります。

基本説明

OCamlは、「ML」言語をベースとし、オブジェクト指向的要素が追加された関数型言語です。

経緯

OCamlは、フランスのINRIA(フランス国立情報学自動制御研究所)で開発された言語です。

「OCaml」は「Objective Categorical Abstract Machine Language」の略称名です。

かつては「Objective Caml」という名前でしたが、「OCaml」に改名されました。

主な特徴

オブジェクト指向

「関数型」と「オブジェクト指向」の両方の特徴を併せ持ちます。

オブジェクト指向を利用して、破壊的操作を伴うプログラムを容易に書けてしまう一面があります。

高信頼/簡潔コード

型安全な静的型システムを基盤にしているため、バグの少ない高信頼なプログラムを作成できます。

「型推論」「代数的データ型」「モジュールシステム」「多相バリアント」「オブジェクト」「第一級モジュール」「GADT」などのさまざまな機能を利用して、整理された簡潔なコードを記述できます。

高速性

関数型言語としてはかなり高速に動作します。gccでコンパイルされたC言語と同等程度とされています。

コンパイラ

「バッチコンパイラ」はプログラムをコンパイルして実行可能ファイルを生成します。バイトコード変換用コンパイラ「ocamlc」/ネイティブコード変換用コンパイラ「ocamlopt」の2種類が用意されています。

ネイティブコード変換用コンパイラ「ocamlopt」は、x86/x86-64/ARM/PowerPCなど、多数のアーキテクチャのネイティブコードを出力できます。Android/iOS向けのクロスコンパイルも可能です。

「対話式コンパイラ」も利用できます。

高階関数(higher-order function)

「関数を他の関数への引数として渡す」「結果として関数を受け取る」などが可能です。

パターンマッチング(pattern matching)

宣言的なプログラミングサポートを利用できます。

静的型システム(static type system)

型安全性を高めます。

多相型システム(polymorphic type system)

「プログラム中の1つの式に複数の型を割り当てる」ことが可能です。コード再利用性を高めます。

型推論(type inference)

煩雑な型宣言を省略できます。

モジュール・システム(module system)

「分割コンパイル」「抽象データ型によるプログラム部品間の情報隠蔽」「言語に新たな基本データ型を加えるようなプログラミング」が可能です。

パラメータを持つモジュール「ファンクタ(functor)」により、再利用性を高められます。

ガベージコレクション(garbage collection)

自動メモリ管理が行われます。エンジニアがメモリ管理に悩まされることはありません。

同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「F#」「Scala」「Lisp」など。

導入事例

関数型言語としては比較的多くのアプリケーション開発に利用されています。

プログラミング言語/コンパイラ実装「Haxe」、C言語用プログラム解析フレームワーク「Frama-c」などへの採用実績があります。

ライセンス情報

OCamlのライセンスは「Q Public License」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

ダウンロード

ダウンロードページ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

経済産業省による「 生成AI 利活用ガイドブック 」は、企業やクリエイター向けに、安心して「生成AI」を利用するための、「指針」「実例」「注意点」を明示しています。「業務効率化」や「新しいアイデア創出」の支援を目的としています。

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

「 2029年問題 」とは、高校でのデジタル教育改革により、新入社員と既存社員間でデジタルスキル格差が拡大する懸念を指します。企業は早急に対応が求められています。この格差は、企業競争力や業務効率にも、影響を及ぼす可能性があります。

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

「 VMWare 」の仮想化技術は、「ITインフラの効率化」に大きく貢献する技術ですが、Broadcomによる買収後のライセンス変更が大きな問題として注目されています。柔軟で慎重な契約見直しが今後の鍵となります。