COBOL2002 使用の手引 手引編


18.1 プログラム呼び出しの種類と概要

COBOL2002では,プログラムから別のプログラムを呼び出せます。プログラム中で同じ副プログラムを2回以上呼び出し,2回目以降に制御が渡るとき,呼び出し先プログラムは,直前に制御を戻したときの状態を保持しています。

注※

ただし,呼び出し先プログラムがCANCEL文を実行した場合や,初期化属性のプログラムの場合は,2回目以降の呼び出し時に状態が初期化されて副プログラムが実行されます。

COBOL2002でプログラムを呼び出すには,CALL文に呼び出すプログラム名を指定します。このとき,呼び出し先プログラムのPROGRAM-ID段落で指定したプログラム名は,等価規則が適用されるため,CALL文に指定するプログラム名も等価規則適用後のプログラム名で指定する必要があります。英小文字を含むプログラム名を定義したい場合は,呼び出し先プログラムのPROGRAM-ID段落で,プログラム名を英数字定数として指定する必要があります。また,CBL,CLS,CLT,CLUで始まる最外側のプログラム名を指定した場合,動作は保証しません。

CALL文で呼び出すプログラム名を指定する方法は,定数指定と一意名指定の2種類があります。

また,プログラム属性が再帰属性プログラム(RECURSIVE句指定あり)の場合,自分自身のプログラムを再帰的に呼び出せます。再帰属性プログラムの詳細は,「18.4.1 プログラム属性」の「(3) 再帰属性プログラム」を参照してください。

〈この節の構成〉