COBOL2002 ユーザーズガイド


33.3.2 スタックコンパイル機能(連続コンパイル機能)の利用

スタックコンパイル機能とは,複数個の翻訳単位のソース単位を含む翻訳グループを一つのコンパイル単位としてコンパイルする機能です。この機能には次のような利点があります。

〈この項の構成〉

(1) コンパイラオプションとの関係

主プログラム指定(-Main,System/-Main,V3)以外のオプションは,すべての翻訳単位のソース単位に対して有効となります。-Main,System,-Main,V3オプションとほかのオプションとの関係については,「33.5.5 最終生成物の種類(プロジェクトの種類)の設定」を参照してください。

(2) 主プログラム指定

主プログラム指定(-Main,System/-Main,V3)を指定した場合は,ソースファイル中の先頭の最外側のプログラムが主プログラムとなります。したがって,制御プログラムからは先頭の最外側のプログラムだけが呼び出せます。2番目以降の最外側のプログラムは,呼び出せません。

[図データ]

(3) スタックコンパイル(連続コンパイル)時の出現順序

クラス定義,インタフェース定義を含むソースファイルを,連続コンパイルできます。ただし,リポジトリ段落に指定された翻訳単位が別のソースファイルで定義されている場合,別のソースファイルを先にコンパイルしておく必要があります。詳細は,「34 定義別のコンパイル方法とリポジトリファイル」を参照してください。

なお,インタフェース定義は,ほかのソース単位より先に記述されていてもかまいません。

(4) コンパイルリスト

スタックコンパイルを実行したときのコンパイルリストについては,「付録E コンパイルリスト」を参照してください。

(5) プログラム間連絡

一つのコンパイル単位に最外側のプログラムが複数個含まれていても,これらの最外側のプログラムはすべて別のコンパイル単位のCALL文で呼び出せます。

(6) ソースファイルと各種ファイルの関係

スタックコンパイル時にコンパイラが生成するファイルは,通常のコンパイル時に生成するファイルと同じです。

(7) 実行可能ファイルの作成単位

スタックコンパイル機能を使用した場合,オブジェクトファイルは,ソースファイル単位で作成されます。このため,ソースファイル中の複数のプログラムから,別々の実行可能ファイルを作成することはできません。

[図データ]

複数の最外側のプログラムを含むソースファイルをスタックコンパイルし,生成されたオブジェクトファイルの一部のプログラムだけを利用するような実行可能プログラムは,作成できます。ただし,使用しないプログラムを含んでいるため,必要以上に実行可能ファイルのサイズが大きくなります。

[図データ]