ANS85 

プログラム名の規則

プログラム名は、プログラムの見出し部の PROGRAM-ID 段落で宣言される。プログラム名は、CALL 文、

MF CHAIN 文、

CANCEL 文、

MF SET 文、

およびプログラム終了見出しからのみ参照できる。しかし、1 つの実行単位中の 2 つのプログラムが同じ名前である場合、少なくとも一方のプログラムは、もう一方のプログラムを含まない別のプログラムの中に直接的または間接的に含まれている必要がある。

プログラム名の適用範囲を規定する規則は次のとおり。

  1. 共通属性がなく他のプログラムに直接含まれるプログラムのプログラム名は、親プログラム内の文からのみ参照できる。

    ISO2002MFOS390 または、プログラムが再帰的な属性を持っている場合は、そのプログラム自体から参照できる

  2. 共通属性を持ち、他のプログラムに直接含まれるプログラムのプログラム名は、親プログラム内の文、および親プログラムに直接的または間接的に含まれるプログラム内の文からのみ参照できる。

    ISO2002MFOS390 ただし、共通属性を持つプログラムおよびそのプログラムに含まれるプログラムからプログラム名を参照できるのは、そのプログラムが再帰属性を持つ場合に限る。

  3. 他のプログラムに含まれないプログラムのプログラム名は、実行単位内の他のどのソース要素内の文からも参照できる。

たとえば、下図のように ProgA に ProgB および ProgC、ProgC に ProgD および ProgF、ProgD に ProgE が含まれているとする。


Example of Scope of Program-Names

ProgD に共通属性がない場合、ProgD は ProgD を直接含むプログラム、つまり ProgC からのみ参照できる。

ProgD が共通属性を持っている場合、ProgD は ProgC に含まれているため、ProgC に含まれるいずれのプログラム (ただし、ProgD に含まれるプログラムを除く) からも ProgD を参照できる。つまり、ProgF から参照できるが、ProgE からは参照できない。また、ProgA および ProgB から参照することはできない。