Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 言語解説書


プログラム名の命名規則

プログラム名は、プログラムの見出し部の PROGRAM-ID 段落で指定されます。プログラム名が参照されるのは、CALL ステートメント、CANCEL ステートメント、 SET ステートメント、または END PROGRAM マーカーに限られます。 実行単位を構成するプログラムの名前は必ずしも固有とは限りませんが、 同じ実行単位内の 2 つのプログラムが同じ名前の場合は、 それらのうちの少なくとも 1 つが、それら 2 つのプログラムを含まない、 別々にコンパイルされる他のプログラムに直接的または間接的に含まれている必要があります。

独立してコンパイルされるプログラムと、 その中に直接的および間接的に含まれるプログラムすべては、 その独立してコンパイルされるプログラム内で、 固有のプログラム名を持っている必要があります。

プログラム名の規則

プログラム名のスコープは、次に示す規則によって定義されます。

  • プログラム名が COMMON 属性を持たないプログラムのプログラム名であり、 そのプログラムが別のプログラム内に直接的に含まれている場合、 そのプログラム名は、 プログラムを含んでいる側のプログラムに記述されているステートメントによってのみ参照できます。
  • プログラム名が COMMON 属性を持つプログラムのプログラム名であり、 そのプログラムが別のプログラム内に直接的に含まれている場合、 そのプログラム名は、プログラムを含んでいる側のプログラム、 およびその含んでいる側のプログラムに直接的または間接的に含まれているすべてのプログラムに記述されているステートメントによってのみ参照できます。 ただし、COMMON 属性を持つプログラムとそのプログラムに含まれるすべてのプログラムを除きます。
  • プログラム名が、別にコンパイルされたプログラムのプログラム名である場合、 そのプログラム名は、 実行単位の中の他のどのプログラムに含まれたステートメントによっても参照できます。 ただし、そのプログラム名を持つプログラムが直接的または間接的に含むプログラムは除きます。

どのプログラムを呼び出すかを判別するために使用するメカニズムは以下のとおりです。

  • CALL ステートメントで指定された名前と同じ名前を持つ 2 つのプログラムのうちの 1 つが、 CALL ステートメントを含むプログラム内に直接的に含まれる場合は、 そのプログラムが呼び出されます。
  • CALL ステートメントで指定された名前と同じ名前を持つ 2 つのプログラムのうちの 1 つが COMMON 属性を持ち、 CALL ステートメントを含むプログラムを直接的または間接的に含む別のプログラムに直接的に含まれる場合、 呼び出し側プログラムがその共通プログラム内に含まれるのでない限り、 その共通プログラムが呼び出されます。
  • 上記以外の場合は、別々にコンパイルされたプログラムが呼び出されます。

別のプログラム内に含まれるプログラムのプログラム名を参照する際には、 次に示す規則が適用されます。 この説明では、プログラム A はプログラム B とプログラム C を含んでおり、プログラム C はプログラム D とプログラム F、プログラム D はプログラム E を含んでいます。

この図は、上述のプログラム A とプログラム A に含まれるプログラムのブロック・ダイアグラム構造を示しています。

プログラム D に COMMON 属性が指定されていない場合は、 プログラム D はそれを直接的に含むプログラム、 すなわちプログラム C によってしか参照できません。

プログラム D に COMMON 属性が指定されている場合は、 プログラム D をプログラム C が参照することができます (プログラム C はプログラム D を含んでいるため)。 また、プログラム C に含まれる任意のプログラムもプログラム D を参照することができます。 ただし、プログラム D に含まれるプログラムはプログラム D を参照できません。 言い換えれば、プログラム D に COMMON 属性が指定されている場合、 プログラム D はプログラム C およびプログラム F で参照することはできますが、 プログラム E、プログラム A、 またはプログラム B のステートメントによって参照することはできません。


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)