Hitachi

COBOL2002 Professional Tool Kit COBOLソース解析ガイド


10.12.1 主プログラム自動検出

資産分析の棚卸しでは,次に示すプログラムを取り扱うことが少なくありません。これらのプログラムでは,どれが主プログラムかがわからなくなっていることが多く,主プログラムが多数存在することもあります。そのため,主プログラムの洗い出しに多大な時間が掛かることがあります。

このような場合は,主プログラム自動検出を使用します。主プログラム自動検出を有効にすると,プロジェクト内の,オペレーティングシステムから呼び出される外部プログラムを,引数と返却項目の特徴から自動的に検出して主プログラムとして扱います。

注※

-Mainコンパイラオプションで主プログラム指定するプログラムのことです。

主プログラム自動検出を使用する場合は,[解析生成オプション設定]画面の[主プログラム指定]タブで[主プログラムをCOBOLソースファイル先頭の最外側プログラムの中から検出する]チェックボックスをチェックします。そして,主プログラムとして検出するCOBOLソースファイル先頭の最外側プログラムの特徴を[USING検出条件]と[RETURNING検出条件]で指定します。USING検出条件の各項目はOR条件です。USING検出条件とRETURNING検出条件の両方を満たすものが主プログラムとして検出されます。

USING検出条件をチェックした場合の動作を次の表に示します。なお,USING検出条件のすべての項目のチェックを外した場合は,COBOLソースファイル先頭のすべての最外側プログラムがUSING検出条件を満たすものとして扱われます。

表10‒16 USING検出条件をチェックした場合の動作

USING検出条件

USING検出条件をチェックした場合の動作

初期値

引数なし

COBOLソースファイルの先頭の最外側プログラムが引数を持たない場合に,USING指定の条件を満たすプログラムとして扱います。

コマンドラインに引数を持たないアプリケーションの主プログラムの特徴です。

チェックあり

引数1個で英数字である

COBOLソースファイルの先頭の最外側プログラムが引数1個で参照渡しの英数字項目の場合に,USING指定の条件を満たすプログラムとして扱います。

コマンドラインに引数を持つメインフレームアプリケーションの主プログラムで使用されている可能性のあるインタフェースです。

チェックなし

引数1個で可変長文字列型の集団項目である

COBOLソースファイルの先頭の最外側プログラムが引数1個で参照渡しの可変長文字列型の集団項目の場合に,USING指定の条件を満たすプログラムとして扱います。可変長文字列型の集団項目とは,長さ領域の2バイト2進整数と文字列領域の英数字項目(集団項目も可)の従属項目だけで構成される集団項目です。

コマンドラインに引数を持つメインフレームアプリケーションの主プログラムの特徴です。

(例1)

  01 ARG.
    02 ARG-LENGTH PIC 9(4) USAGE COMP.
    02 ARG-STRING PIC X(100).

(例2)

  01 ARG.
    02 ARG-LENGTH PIC 9(4) USAGE COMP.
    02 ARG-STRING OCCURS 100 TIMES.
       03 ARG-STRING-C PIC X.

チェックあり

引数2個で2進整数とポインタである

COBOLソースファイルの先頭の最外側プログラムが引数2個で,第1引数が値渡しの2進整数項目,第2引数が値渡しのポインタ項目または参照渡しでポインタ項目だけから成る集団項目(従属基本項目がすべてポインタ項目)の場合に,USING指定の条件を満たすプログラムとして扱います。ポインタ項目はアドレス項目と同じ意味です。

コマンドラインに引数(argc,argv)を持つUNIXやWindowsのアプリケーションの主プログラムの特徴です。

(例1)

  LINKAGE SECTION.
  01 ARGC PIC 9(9) COMP.
  01 ARGV USAGE ADDRESS.
  PROCEDURE DIVISION USING BY VALUE ARGC ARGV.

(例2)

  LINKAGE SECTION.
  01 ARGC PIC 9(9) COMP.
  01 ARGV.
    02 ARGV-LIST USAGE POINTER OCCURS 10 TIMES.
  PROCEDURE DIVISION USING BY VALUE ARGC
                           BY REFERENCE ARGV.

チェックあり

RETURNING検出条件をチェックした場合の動作を次の表に示します。なお,RETURNING検出条件のチェックを外した場合,COBOLソースファイルの先頭の最外側プログラムは,常にRETURNING検出条件を満たすものとして扱われ,USING検出条件だけで主プログラムとするかどうかが決定されます。

表10‒17 RETURNING検出条件をチェックした場合の動作

RETURNING検出条件

RETURNING検出条件をチェックした場合の動作

初期値

RETURNING指定なし

COBOLソースファイルの先頭の最外側プログラムがRETURNING指定を持たない場合に,RETURNING指定の条件を満たすプログラムとして扱います。

チェックあり

注意事項
  • 次の主プログラムは,主プログラム自動検出では検出できません。

    ・COBOL言語以外のプログラムから呼び出される外部プログラム

    ・部品ライブラリの外部プログラム

    これらの主プログラムを「主プログラム」扱いにする場合は,主プログラム名を明示的に指定する方法を使用します。主プログラム名を明示的に指定する方法については,「10.12.2 主プログラム名による主プログラム指定」を参照してください。

  • 主プログラム自動検出では,引数の条件が一致すれば,主プログラムでないプログラムでも主プログラムとして扱われます。このため,システムのプログラム構成によっては,主プログラムでないプログラムが主プログラムとして検出されてしまうことがあります。検出条件を調整しても主プログラムでないプログラムが主プログラムとして検出されてしまう場合は,主プログラム名を明示的に指定する方法に切り替えてください。手順を次に示します。

    手順

     1. 主プログラム自動検出による解析結果から主プログラム扱いのプログラムの一覧を作成する

     2. 主プログラム扱いのプログラムのCOBOLソースファイルを一つ一つ目視で確認して,主プログラムかどうかを正確に判断し,正確な主プログラムの一覧を作成する

     3. 手順2で作成した一覧を基に,主プログラム名を明示的に指定する

    主プログラム名を明示的に指定する方法については,「10.12.2 主プログラム名による主プログラム指定」を参照してください。