Hitachi

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


7.4.6 [PAD表示]画面

プログラムのPAD図(Problem Analysis Diagram)を表示する画面です。

[プログラム詳細]画面右上の「PAD表示」のリンクをクリックすると表示されます。

節ノードの[図データ]は,節のPAD図の表示/非表示を制御するためのチェックボックスです。このチェックボックスは,初期状態では,宣言部分のUSE節と手続き部分の最初の節の場合にだけ「チェックあり[図データ]」(PAD図表示)となっており,それ以外の節の場合には「チェックなし[図データ]」(PAD図非表示)となっています。ただし,節呼び出しノードや段落呼び出しのノードで,節名や段落名のリンクをクリックして節や段落に遷移すると,「チェックなし[図データ]」の節ノードの場合でも自動的に「チェックあり[図データ]」となり,PAD図が表示されます。

図7‒39 PAD表示

[図データ]

[プログラム名]

プログラムの名称です。

[ソースファイル名]

プログラムを含むCOBOLソースファイルのファイル名です。

[パス名]

COBOLソースファイルが格納されているパス名です。

[プログラムコメント]

プログラムのコメント文字列です。

下ペイン

PAD図です。PAD図の構成要素を次の表に示します。

表7‒2 PAD図の構成要素

分類

PAD図の構成要素

説明

プログラムの入口と出口

[図データ]

プログラムの開始(主入口点)です。

[図データ]

プログラムの終了です。

[図データ]

ENTRY文による入口点(二次入口点)です。

[図データ]

STOP RUN文によるプログラムの終了です。

[図データ]

EXIT PROGRAM文によるプログラムの終了です。

[図データ]

GOBACK文によるプログラムの終了です。

処理

[図データ]

節です。

節名をクリックすると,[ソース表示(COPY展開後)]画面を開いて,該当する節見出しを画面の最上行に表示します。

[図データ]

USE節です。

節名をクリックすると,[ソース表示(COPY展開後)]画面を開いて,該当するUSE節見出しを画面の最上行に表示します。

[図データ]

段落です。

段落名をクリックすると,[ソース表示(COPY展開後)]画面を開いて,該当する段落見出しを画面の最上行に表示します。

[図データ]

繰り返し指定のないうちPERFORM文です。

複数の文を一つにまとめる場合に使用されます。

[図データ]

単一の文です。次の文が該当します。

  • 条件指定や入出力手続き指定がなく,かつ制御の移行を伴わない文で連続しない単一の文

  • 条件指定や入出力手続き指定のある文

[図データ]

条件指定や入出力手続き指定がなく,かつ制御の移行を伴わない文の連続した並びです。

[図データ][図データ]で開閉でき,すべての文の表示/非表示を切り替えることができます。デフォルトは,すべての文を表示した状態(展開された状態)です。

[図データ]

埋め込みSQL文の単一文です。直後にSQLERROR,SQLWARNING,NOT FOUNDの条件指定を伴います。

[図データ][図データ]で開閉でき,埋め込みSQL文の全体の表示/非表示を切り替えることができます。デフォルトは,埋め込みSQL文の全体を表示した状態(展開された状態)です。

[図データ]

条件文以外の文の条件指定です。次の条件指定が該当します。

  • ON 〜/NOT ON 〜

  • AT 〜/NOT AT 〜

  • INVALID KEY/NOT INVALID KEY

  • SQLERROR/SQLWARNING/NOT FOUND

[図データ]

入力手続き指定です。

子ノードは手続き呼び出しであり,SORT文ノードに連結されてSORT文からの手続き呼び出しを表現します。

[図データ]

出力手続き指定です。

子ノードは手続き呼び出しであり,SORT/MERGE文ノードに連結されて,SORT/MERGE文からの手続き呼び出しを表現します。

選択

[図データ]

二者一択(IF文)です。

行番号をクリックすると,[ソース表示(COPY展開後)]画面を開いて,行番号の行を画面の最上行に表示します。

[図データ]

多者一択(EVALUATE文)です。

行番号をクリックすると,[ソース表示(COPY展開後)]画面を開いて,行番号の行を画面の最上行に表示します。

[図データ]

多者一択(SEARCH文)です。

行番号をクリックすると,[ソース表示(COPY展開後)]画面を開いて,行番号の行を画面の最上行に表示します。

反復

[図データ]

[図データ]

TIMES指定のPERFORM文です。

[図データ]

[図データ]

前判定繰り返し(TEST BEFOREのPERFORM文)です。

[図データ]

[図データ]

後判定繰り返し(TEST AFTERのPERFORM文)です。

サブルーチン呼び出し

[図データ]

プログラム呼び出しです。

プログラム名をクリックすると,そのプログラムのPAD図が別の画面で表示されます。

[図データ]をクリックすると,引数と返却値が展開されます。

[図データ]

節呼び出しです。

SORT文やMERGE文の入力手続き指定(INPUT PROCEDURE指定)または出力手続き指定(OUTPUT PROCEDURE指定)の場合,予約語PERFORMは表示されません。

(例)

SORT WFILE ON DESCENDING KEY W-NAME

INPUT PROCEDURE IS INPUT-PROC

OUTPUT PROCEDURE IS OUTPUT-PROC

節名をクリックすると,該当する節ノードに遷移します。遷移先から戻る場合は,[Alt]+[←]キーを押します。

[図データ]

段落呼び出しです。入出力手続き指定の場合,予約語PERFORMは表示されません。

段落名をクリックすると,該当する段落ノードに遷移します。遷移先から戻る場合は,[Alt]+[←]キーを押します。

分岐

[図データ]

無条件分岐(GO TO文)です。

手続き名をクリックすると,該当する節ノードまたは段落ノードに遷移します。遷移先から戻る場合は,[Alt]+[←]キーを押します。

[図データ]

多岐分岐です。次の文が該当します。

  • GO TO DEPENDING ON文

  • ALTER文で分岐先を変更されたGO TO文

手続き名をクリックすると,該当する節ノードまたは段落ノードに遷移します。遷移先から戻る場合は,[Alt]+[←]キーを押します。

[図データ]

USE節内から手続き部分への分岐です。

手続き名をクリックすると,該当する節ノードまたは段落ノードに遷移します。遷移先から戻る場合は,[Alt]+[←]キーを押します。

打ち切り

[図データ]

[図データ]

[図データ]

[図データ]

USE節の打ち切り(USE節の呼び出し元へリターンする文)です。

[図データ]

うちPERFORM文の打ち切り(うちPERFORM文の次への分岐)です。

[図データ]

条件文の打ち切り(条件文の次への分岐)です。

PAD図の構成要素の上限値を次の表に示します。

表7‒3 PAD図の構成要素の上限値

対象

上限値

動作

ノードの子の数

10,000個

ノードの子の数が10,000個を超えた場合は,警告メッセージが出力され,[===子数上限(10,000)で打ち切り===]のノードが表示され,以降のノードは表示されません。

順次処理の文の数

10,000個

順次処理ノードの文の数が10,000個を超えた場合は,警告メッセージが出力され,「===文数上限(10,000)で打ち切り===」が表示され,以降の文は表示されません。

ノードの階層の深さ

120個

ノードの階層の深さが120を超えた場合は,警告メッセージが出力され,[===深さ上限(120)で打ち切り===]のノードが表示され,以降のノードは表示されません。

ノードの文や条件指定の長さ

1,024文字

ノード内の文や条件指定の文字列の長さが1,024文字を超えている場合は,1,024文字を超える位置にある語,定数または記号の直前で打ち切られ,"..."が付加されます。ただし,CALL文やCANCEL文を除きます。

文中の文字列定数の長さ

24バイト

文中の文字列定数の引用符号(アポストロフィ(')または引用符("))を除いた部分の長さが24バイトを超えている場合は,24バイトを超える文字の直前で打ち切られ,"..."が付加されます。ただし,CALL文の呼び出し先を指定する定数を除きます。

CALL文の呼出先プログラム名の定数の長さ

160バイト

CALL文に160バイトを超えるプログラム名の定数が指定されている場合は,160バイトを超える文字の直前で切り捨てられます。

COBOLソース解析では,-LiteralExtend,Alnumコンパイラオプションの指定がある場合も同様に切り捨てます。

CALL文の実行可能ファイルパス名の定数の長さ

518バイト

CALL文に518バイトを超える実行可能ファイルパス名の定数(ピリオド(.)を含む定数)が指定されている場合は,518バイトを超える文字の直前で打ち切られ,"..."が付加されます。

制限事項
  • ノード内の文や指定の文字列の改行やインデンテーションのルールは,表示幅調整のため,COBOLソース解析独自のルールを採用しています。このため,ソースコードで実際に使用されているルールは反映されません。

  • 予約語,分離符(括弧,コンマ,セミコロン)または演算子が,日本語文字(全角文字)で記述されている場合,ノード内の文や指定の文字列が適切に改行,インデンテーションされないことがあります。

  • -EquivRule,NotAnyコンパイラオプションを指定して,予約語の一部またはすべての文字を英小文字にしたものを利用者定義語として使用している場合は,ノード内の文や指定の文字列が適切にインデンテーションされないことがあります。

  • 次の覚え書きの文は表示されません。

    ・ENTER文

    ・CANCEL文(WINDOW節)

    ・WAIT文

    ・うちPERFORM文の中にないEXIT PERFORM文

  • 次の埋め込みSQL文は解析対象外です。CONTINUE文(単一文または順次処理の1文)として表示されます。

    ・COMMENT文

    ・VAR文

    ・カーソル宣言以外のDECLARE文

    ・解析できないことを示すコンパイルエラー(警告)が出力されるSQL文(WITH句のあるDECLARE CURSORなど)

  • -SQL,XDMコンパイラオプションが必要なプログラムの制御フロー情報は抽出できません。[解析生成オプション設定]画面の[その他の解析オプション]タブで[プログラムの制御フロー情報(PAD表示や実行順序表示のための情報)を抽出する]をチェックした場合,-SQL,XDMコンパイラオプションまたは-SQL,ODBCコンパイラオプションが指定されていても,指定はないものとして解析します。埋め込みSQL文は解析できますが,VOS3 XDM/RD固有の特殊レジスタ(RDB-STATUS,RDB-COUNT,RDB-RDNODE)が使用されているときはコンパイルエラーになります。

  • 環境部の特殊名段落にDECIMAL-POINT IS COMMA句が指定されているプログラムの場合,PAD図に表示される数字定数のコンマ(小数点)の直後に半角空白が挿入されることがあります。また,コンマ(小数点)の直後で改行されることもあります。

(例)
COMPUTE AAAAAAAAAAA = +12345, 67890E+33 +
        AAAAAAAAAAA
COMPUTE AAAAAAAAAAA = AAAAAAAAAAA +12345,
        67890E+33
注意事項
  • [PAD表示]画面を表示するには,[解析生成オプション設定]画面で次のオプションを有効(チェックボックス/オプションボタンをオン)にして,解析/生成する必要があります。

    ・[生成ドキュメント]タブの[対象ブラウザ指定]の[Microsoft Edge向けのHTMLドキュメントを生成する]

    ・[その他の解析オプション]タブの[プログラムの制御フロー情報(PAD表示や実行順序表示のための情報)を抽出する]

  • HTMLで表現するため,標準的なPAD図と表示法が一部異なることがあります。

  • IF文でELSE IFの並びを使って表現される多者一択は,PAD図の「選択(多者一択)」の表現形式では表現されません。そのまま「選択(二者一択)」の入れ子として表現されます。

  • GO TO文と条件文(または条件指定付きの文)を使って表現されるループは,PAD図の「反復」の表現形式では表現されません。そのままGO TO文と条件文(または条件指定付きの文)が表示されます。

  • [プログラム名],[ソースファイル名],[パス名],および[プログラムコメント]には,ブラウザの設定で変更したフォントサイズ(文字サイズ)は反映されません。

  • ノードに表示される文の文字列は,次の場合を除いてソースファイルに記述されたまま表示します。

    ・実行文の終止符や明示範囲終了子(END-EXECを除く)は表示しません。

    ・CALL文の予約語CALLは,常に半角英大文字で表示します。また,呼出先プログラムの引用符は,常にアポストロフィ(')で表示します。

    ・PERFORM文の予約語のPERFORMとTHRUは,常に半角英大文字で表示します。また,THROUGHと書いてもTHRUと表示します。

    ・GO TO 手続き名の予約語GO TOは,常に半角英大文字でTOを省略しないで表示します。

    ・RESUME AT 手続き名の予約語RESUME ATは,常に半角英大文字でATを省略しないで表示します。

    ・段落に分岐するGO TO文やRESUME AT文のノードの「手続き名」の場合,節名の修飾は省略して表示します。ただし,多岐分岐ノードの「GO TO文の文字列」の場合は,ソースファイルに記述されたまま表示します。

    ・段落呼び出しのノードの場合,節名の修飾は省略して表示します。どの節のどの段落かが不明な場合は,段落名のリンクをクリックして確認してください。

    ・条件指定の予約語部分は,常に完全系(補助語の省略なし)を半角英大文字で表示します。また,EOPと書いてもEND-OF-PAGEと表示します。

    ・SORT/MERGE文の入力手続き指定(INPUT PROCEDURE)と出力手続き指定(OUTPUT PROCEDURE)の予約語は,常に半角英大文字で表示します。また,THROUGHと書いてもTHRUと表示します。

    ・埋め込み例外宣言のGOTO指定は,GO TO文と同じ表示とします。

  • INVOKE文やRAISE文は制御の移行を伴わない文として扱い,単一文や順次処理に含められます。

  • 節名または段落名をクリックして,該当する節ノードまたは段落ノードに遷移した際,画面にページ末尾のラインが表示されている場合は,該当するノードが画面の最上部に位置付いていないことがあります。該当するノードは画面内に表示されますが,ページ末尾が表示されていることで,表示位置より上にスクロールできないためです。

  • 手続き部見出し(PROCEDURE DIVISION)がないプログラムの場合,[PAD表示]画面のHTMLは生成しません。「PAD表示」のリンクをクリックしても,「ファイルが見つかりません」の画面が表示され,[PAD表示]画面は表示されません。

  • 利用者定義語が最大長31文字(-Compati85,Syntaxコンパイラオプション指定時は30文字)を超えている場合,最大長で打ち切った語を採用することを示すコンパイラの警告メッセージが出力されます。この場合,階層図や一覧情報のソース解析情報では,最大長で打ち切られた利用者定義語が表示されます。しかし,PAD図では,手続き名(節名と段落名)だけ最大長で打ち切られた利用者定義語が表示され,それ以外の利用者定義語はソースファイルに記述されたまま表示されます。

関連項目