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


PROGRAM-ID 段落

PROGRAM-ID 段落は、プログラムの名前を指定し、選択されたプログラム属性をそのプログラムに割り当てます。PROGRAM-ID 段落は必須であり、見出し部の最初の段落でなければなりません。

プログラム名
プログラムを指定するユーザー定義語または英数字リテラル (形象定数ではない)。 これは、PGMNAME コンパイラー・オプションの設定値に応じて、 次の形成規則に従う必要があります。
PGMNAME(COMPAT)
名前は長さが最大 30 文字です。

ユーザー定義語として指定するときは、 ハイフンと 0 から 9 の数字、および英字だけが名前に使用できます。

少なくとも 1 文字は英字でなければなりません。

ハイフンは最初または最後の文字として使用することはできません。

プログラム名 は英数字リテラルであり、名前の規則は同じですが、最外部プログラムの名前には拡張文字 $、#、および @ を含めることができる点で異なっています。

PGMNAME (LONGUPPER)
プログラム名 がユーザー定義語の場合、その長さは最大 30 文字です。

プログラム名 が英数字リテラルの場合、リテラルの長さは最大 160 文字です。リテラルは、形象定数にすることはできません。

ハイフンと英数字だけが名前に使用できます。

少なくとも 1 文字は英字でなければなりません。

ハイフンは最初または最後の文字として使用することはできません。

PGMNAME (LONGMIXED)
プログラム名 はリテラルとして指定する必要があります。リテラルは、形象定数にすることはできません。

名前は長さが最大 160 文字です。 リテラルは、形象定数にすることはできません。

プログラム名 は X'41' から X'FE' の範囲の任意の文字から構成することができます。

PGMNAME コンパイラー・オプションおよびコンパイラーが名前を処理する方法については、Enterprise COBOL プログラミング・ガイド」を参照してください。

RECURSIVE
COBOL プログラムが再帰的に再入するのを認める、オプションの節。

RECURSIVE 節は、 コンパイル単位の最外部のプログラムに対してのみ指定することができます。 再帰的プログラムは、 ネストされたサブプログラムを含むことはできません。

RECURSIVE 節が指定された場合、それ以前の呼び出しがまだアクティブであっても、プログラム名 に再帰的に再入させることができます。RECURSIVE 節が指定されない場合は、 アクティブ・プログラムは再帰的に再入されることはできません。

再帰的プログラムの作業用ストレージ・セクションは、プログラムに対して最初の項目で静的に割り振られて初期設定され、 任意の再帰的呼び出しに対して最後に使用された状態で使用できるストレージを定義します。

非再帰的プログラムと同じく、再帰的プログラムのローカル・ストレージ・セクションは、 呼び出しのたびに自動的に割り振り、初期設定、および割り振り解除が行われるストレージを定義します。

再帰的プログラムのファイル・セクションの FD に対応する内部ファイル結合子は、静的に割り振られます。 内部ファイル結合子の状況は、 呼び出しを超えて持続するプログラムの最後に使用された状態の一部です。

次の言語エレメントは、再帰的プログラムではサポートされません。

  • ALTER
  • 指定されたプロシージャー名のない GO TO
  • RERUN
  • SEGMENT-LIMIT
  • USE FOR DEBUGGING

RECURSIVE 節は、THREAD オプションを使用してコンパイルされたプログラムが必須です。

COMMON
プログラム名 によって指定されたプログラムが別のプログラム内に含まれ (つまり、ネストされ)、それを共通プログラムの兄弟プログラム、およびそれらに含まれたプログラムから呼び出すことができることを指定します。COMMON 節は、ネストされたプログラムでのみ使用できます。 プログラム名の規則についての詳細は、プログラム名の命名規則を参照してください。
INITIAL
プログラム名が呼び出されたときに、プログラム名 とその中に含まれる (ネストされる) プログラムが初期状態に置かれることを指定します。 初期属性は、THREAD オプションを使用してコンパイルされたプログラムでは サポートされていません。

プログラムは、次のとき初期状態になります。

  • プログラムが実行単位に初めて呼び出されたとき。
  • プログラムが初期属性を持っている場合には、それが呼び出されるたびに。
  • プログラムを参照している CANCEL ステートメントの実行後、 またはそのプログラムを直接的または間接的に含んでいるプログラムを参照している CANCEL ステートメントの実行後、 そのプログラムが最初に呼び出されたとき。
  • そのプログラムを直接的または間接的に含み、 初期属性を持っているプログラムを参照している CALL ステートメントの実行後、そのプログラムが最初に呼び出されたとき。

プログラムが初期状態にある場合、次のことが実行されます。

  • プログラムの作業用ストレージ・セクションにある内部データが初期設定されます。 VALUE 節がデータ項目の記述の中で使用されている場合、そのデータ項目は定義された値に初期設定されます。 VALUE 節がデータ項目と関連していない場合、そのデータ項目の初期値は未定義です。
  • プログラムと関連した内部ファイル結合子を持つファイルは、 オープン・モードになっていません。
  • そのプログラムに含まれるすべての PERFORM ステートメントの制御メカニズムは、 それぞれ初期状態に設定されます。
  • そのプログラムに含まれ変更された GO TO ステートメントは、 初期状態に設定されます。

固有でないプログラム名に適用される規則については、プログラム名の規則を参照してください。


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

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