COBOL2002 ユーザーズガイド

[目次][用語][索引][前へ][次へ]

36.3.2 リポジトリファイルの単独生成

ソースファイルのコンパイル時に-Repository,Genオプションを指定すると,ソースファイルのコンパイルが実行されないで,リポジトリファイルだけを作成できます。-Repository,Genオプションは,インタフェース部分だけを作成した翻訳単位を含むソースファイルをコンパイルしたり,互いに参照し合う翻訳単位をコンパイルしたりする場合に使用します。

ここでは,-Repository,Genオプションの使用方法について説明します。-Repository,Genオプションの指定方法や規則の詳細については,「35. COBOLソースの作成とコンパイル」を参照してください。

<この項の構成>
(1) インタフェース部分だけを作成した翻訳単位のコンパイル
(2) 互いに参照し合う翻訳単位のコンパイル

(1) インタフェース部分だけを作成した翻訳単位のコンパイル

翻訳単位が未完成であっても,そのインタフェース部分だけが決まっていれば,-Repository,Genオプションによってリポジトリファイルを作成できます。必要なリポジトリファイルを作成しておけば,リポジトリ段落に未完成の翻訳単位の名前を指定した原始プログラムでも,コンパイルできるようになります。この機能を利用すると,参照先の翻訳単位が未完成の状態でも,参照元の翻訳単位に-Compile,NoLinkオプションを指定してコンパイルを実行し,構文レベルの誤りがないか確認できます。

例えば,インタフェース部分だけが決まっているクラス定義CLASS1およびそれをリポジトリ段落に指定したプログラム定義PROGRAM1があり,それぞれCLASS1.cblファイルおよびPROGRAM1.cblファイルに格納されているとします。この場合は,次の手順でPROGRAM1.cblをコンパイルします。

  1. CLASS1に対応するリポジトリファイルを生成する
    「ccbl2002 -Repository,Gen CLASS1.cbl」と指定すると,CLASS1がインタフェース部分だけ作成されていても,リポジトリファイルCLASS1.repが作成されます。
  2. CLASS1のリポジトリファイルの情報を取り込み,PROGRAM1をコンパイルする
    「ccbl2002 PROGRAM1.cbl」と指定すると,1で作成したCLASS1.repがCOBOL2002コンパイラによって取り込まれ,PROGRAM1.cblがコンパイルされます。

(2) 互いに参照し合う翻訳単位のコンパイル

プログラム単位を除く翻訳単位が,リポジトリ段落に互いの翻訳単位名を指定して,互いに定義情報を参照しあうような場合は,まず-Repository,Genオプションによって必要なリポジトリファイルを作成しておき,次にそれぞれの翻訳単位をコンパイルしてください。

例えば,互いに参照しているクラス定義CLASS1およびCLASS2があり,それぞれCLASS1.cblファイルおよびCLASS2.cblファイルに格納されているとします。CLASS1.cbl,CLASS2.cblの順序でコンパイルしたい場合は,次の手順で互いのクラス定義をコンパイルします。

  1. CLASS2に対応するリポジトリファイルを生成する
    「ccbl2002 -Repository,Gen CLASS2.cbl」と指定すると,リポジトリファイルCLASS2.repが作成されます。
  2. CLASS2のリポジトリファイルの情報を取り込み,CLASS1をコンパイルする
    「ccbl2002 CLASS1.cbl」と指定すると,1で作成されたCLASS2.repがCOBOL2002コンパイラによって取り込まれ,CLASS1.cblがコンパイルされます。このとき,CLASS1のリポジトリファイルCLASS1.repが作成されます。
  3. CLASS1のリポジトリファイルの情報を取り込み,CLASS2をコンパイルする
    「ccbl2002 CLASS2.cbl」と指定すると,2で作成されたCLASS1.repがCOBOL2002コンパイラによって取り込まれ,CLASS2.cblがコンパイルされます。

    [図データ]

注意事項
  • 一つのソースファイル中でスタックコンパイルとして翻訳単位を複数定義し,その中で互いに参照する場合は,リポジトリファイルを先に作成する必要はなく,一度にコンパイルできます。
  • 互いに参照し合う翻訳単位を含むソースファイルから別々のDLLを作成できません。