モジュールと分割コンパイル

 

大きなソフトウェアを作るときは、プログラムを複数のモジュールに分割してコンパイルしたくなります。OCamlでは、「モジュールの名前.ml」というファイルに実装を、「モジュールの名前.mli」というファイルにインターフェースを記述するだけで、簡単に分割コンパイルができます。インターフェースには関数や定数、データ型や例外の宣言を記述します。

 

たとえばTestという名前のモジュールを作成したかったら、まずtest.mlというファイルに

 

let x = 123

let f y = x + y

let _ = print_int (f 456)

 

のように実装を定義しておき、test.mliというファイルに

 

val x : int

val f : int -> int

 

のようにインターフェースを宣言しておけば、他のモジュールからTest.xという整数やTest.fという関数が使えます。ただしインターフェースに記述されていない定義は、外部から参照できません。

 

もちろん、

 

> ocamlopt test.mli test.ml -o test

> ./test

579

 

のようにコンパイル実行も可能です。ファイルの数が多くなってきたら、OCamlMakefileという、コンパイルなどを自動でやってくれる便利なツールもあります。

 

次へ進む