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