33.1.1 概要
COBOL2002では,関数定義,クラス定義,およびインタフェース定義を使用できます。これらの翻訳単位が参照関係を持つ場合,参照先の翻訳単位と参照元の翻訳単位とで,それぞれ次のような処理が必要になります。
-
参照先の翻訳単位
参照元の翻訳単位から参照されるときに必要な定義情報を,参照元の翻訳単位のコンパイルより前に出力する必要があります。この定義情報を,外部リポジトリと呼びます。外部リポジトリの言語仕様については,マニュアル「COBOL2002 言語 標準仕様編」 「4.12 外部リポジトリ」を参照してください。
COBOL2002では,関数定義,クラス定義,またはインタフェース定義をコンパイルすると,自動的に翻訳単位の外部リポジトリをリポジトリファイル(.rep)に出力します。
-
参照元の翻訳単位
参照先の翻訳単位の定義情報を取り込む指定が必要です。
COBOL2002では,参照元の翻訳単位のリポジトリ段落に参照先の翻訳単位名を指定しておくことによって,参照元の翻訳単位のコンパイル時に参照先の翻訳単位に対応するリポジトリファイルを取り込めます。
- 規則
-
-
参照元の翻訳単位と参照先の翻訳単位が同じソースファイル中だけに存在する場合は,リポジトリファイルがなくても翻訳単位をコンパイルできます。
-
プログラム定義だけで構成されているCOBOLプログラムの場合,リポジトリファイルは出力されません。また,リポジトリ段落に参照するプログラム名を指定する必要もありません。詳細は,「33.3.3 プログラム定義だけのコンパイル」を参照してください。
-
参照元の翻訳単位をコンパイルする時点で,参照先の翻訳単位のリポジトリファイルが出力されていない場合,参照関係が解決できないためコンパイルエラーとなります。そのため,異なるソースファイルに存在する翻訳単位同士が参照関係を持つ場合は,ソースファイルをコンパイルする順序を意識する必要があります。
-