PROGRAM-ID 段落は、プログラムの名前を指定し、選択されたプログラム属性をそのプログラムに割り当てます。PROGRAM-ID 段落は必須であり、見出し部の最初の段落でなければなりません。
ユーザー定義語として指定するときは、 ハイフンと 0 から 9 の数字、および英字だけが名前に使用できます。
少なくとも 1 文字は英字でなければなりません。
ハイフンは最初または最後の文字として使用することはできません。
プログラム名 は英数字リテラルであり、名前の規則は同じですが、最外部プログラムの名前には拡張文字 $、#、および @ を含めることができる点で異なっています。
プログラム名 が英数字リテラルの場合、リテラルの長さは最大 160 文字です。リテラルは、形象定数にすることはできません。
ハイフンと英数字だけが名前に使用できます。
少なくとも 1 文字は英字でなければなりません。
ハイフンは最初または最後の文字として使用することはできません。
名前は長さが最大 160 文字です。 リテラルは、形象定数にすることはできません。
プログラム名 は X'41' から X'FE' の範囲の任意の文字から構成することができます。
PGMNAME コンパイラー・オプションおよびコンパイラーが名前を処理する方法については、「Enterprise COBOL プログラミング・ガイド」を参照してください。
RECURSIVE 節は、 コンパイル単位の最外部のプログラムに対してのみ指定することができます。 再帰的プログラムは、 ネストされたサブプログラムを含むことはできません。
RECURSIVE 節が指定された場合、それ以前の呼び出しがまだアクティブであっても、プログラム名 に再帰的に再入させることができます。RECURSIVE 節が指定されない場合は、 アクティブ・プログラムは再帰的に再入されることはできません。
再帰的プログラムの作業用ストレージ・セクションは、プログラムに対して最初の項目で静的に割り振られて初期設定され、 任意の再帰的呼び出しに対して最後に使用された状態で使用できるストレージを定義します。
非再帰的プログラムと同じく、再帰的プログラムのローカル・ストレージ・セクションは、 呼び出しのたびに自動的に割り振り、初期設定、および割り振り解除が行われるストレージを定義します。
再帰的プログラムのファイル・セクションの FD に対応する内部ファイル結合子は、静的に割り振られます。 内部ファイル結合子の状況は、 呼び出しを超えて持続するプログラムの最後に使用された状態の一部です。
次の言語エレメントは、再帰的プログラムではサポートされません。
RECURSIVE 節は、THREAD オプションを使用してコンパイルされたプログラムが必須です。
プログラムは、次のとき初期状態になります。
プログラムが初期状態にある場合、次のことが実行されます。
固有でないプログラム名に適用される規則については、プログラム名の規則を参照してください。