プログラムのプログラム名は、そのプログラムの見出し部の PROGRAM-ID 段落で指定されます。
プログラム名を参照できるのは次のものに限られます。
- CALL ステートメント
- CANCEL ステートメント
- END PROGRAM ヘッダー
IBM Extension
SET ステートメント End of IBM Extension
実行単位を構成しているプログラム名は固有である必要はありませんが、
実行単位内の 2 つのプログラムが同一の名前であるとき、2 つのプログラムのうち少なくとも 1 つは直接的または間接的に別のプログラム (別個にコンパイルされた) になければなりません。
そのコンパイル済みのプログラムには、2 つのうちの残った方のプログラムを含めることはできません。
プログラム名の有効範囲は次の規則によって規制されています。
- プログラム名が、COMMON 属性をもたないプログラムの名前で、別のプログラムに直接含まれている場合、
収容プログラムにあるステートメントだけがそのプログラム名を参照できます。
- プログラム名が、COMMON 属性を持つプログラムの名前で、
別のプログラム内に直接含まれている場合、収容プログラムにあるステートメント、およびその収容プログラム内に直接または間接的に含まれているプログラムのステートメントだけがそのプログラム名を参照できます。
例外として COMMON 属性を持つプログラムそれ自体およびそのプログラム内に含まれているプログラムはどれも参照できません。
- プログラム名が、別個にコンパイルしたモジュール・オブジェクト中の最外部の COBOL プログラムの名前である場合、
直接的または間接的に含まれるプログラムを除けば、実行単位内の他のどんなプログラムにあるステートメントでもプログラム名を参照できます。