マジセミドライブ

ウェビナー関連のニュースや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」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

ダウンロード

ダウンロードページ

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

この記事のタグ一覧

おすすめの記事

【OSS情報】WebベースAPI開発スイート「 Hoppscotch 」🌐

OSS情報

2024.07.04

【OSS情報】WebベースAPI開発スイート「 Hoppscotch 」🌐

「 Hoppscotch 」は、オープンソースのAPI開発エコシステムで、使いやすさとアクセシビリティを重視した軽量なWebベースのスイートです。無料版と有料版があり、PostmanやInsomniaの代替として利用可能です。

【OSS情報】LLMトレーニング用ライブラリ「 GPT-NeoX 」📚

OSS情報

2024.07.18

【OSS情報】LLMトレーニング用ライブラリ「 GPT-NeoX 」📚

「 GPT-NeoX 」は、GPU上で大規模言語モデル(LLM)を効率的にトレーニングするためのライブラリです。NVIDIAのモデルを基に独自の最適化が加えられ、オートレグレッシブ言語モデルのトレーニング手法を集約しています。

経営活動に活用できる 原価管理 を実現するには? 〜製造業の現実的な課題に向き合い、現場視点から改善する原価管理手法の必達プロセスをご紹介〜

ウェビナーまとめ

2024.05.15

経営活動に活用できる 原価管理 を実現するには? 〜製造業の現実的な課題に向き合い、現場視点から改善する原価管理手法の必達プロセスをご紹介〜

2024年3月12日に三菱電機ITソリューションズ株式会社とアットストリームパートナーズ合同会社の共催で、組立加工製造業向けのセミナー「なぜか高くなる原価を管理する 不確実性の時代を乗り切るためのコスト戦略とは」が開催されました。本セミナーでは、製造業における原価管理の現状と改善手法について深く掘り下げ、経営活動への具体的な活用方法を提示しました。今回は、その講演の要点をお伝えします。