プログラム名段落

プログラム名(PROGRAM-ID)段落は、プログラムを識別する名前を付けるとともに、指定されたプログラム属性をプログラムに割り当てる。

プログラム名段落は、プログラムプロトタイプを識別する名前を指定する。

プログラム名段落は、呼出しプロトタイプを識別する名前を指定する。

一般形式

形式 1

形式 2

形式 3

形式 4

指令

  1. 予約語リストにフラグを付けたり、その内容を修正する機能を提供するコンパイラ指令に加えて、下記の指令がこの節に記述されている構文または意味内容に影響を与える可能性がある。

    • CASE - 大文字と小文字を同じに扱うか否かを指定する。

    • DEFAULT-BYTE - 作業場所節に定義されたデータ項目に、VALUE句を指定せずに、値を設定する。

    • MAPNAME - プログラム名の中のアルファベットでない文字の取扱いに影響する。

    • PROGID-COMMENT - 形式 2 ではなく、形式 1 を想定する。

構文規則

すべての形式
  1. プログラム名-1は文字定数であってもよい。それを引用符で囲んでも囲まなくてもよい。定数の内容はプログラム名の構成規則に従っていなければならない。ただし、文字@,#, $を含んでいてもよい。

  2. プログラム名-1は他の利用者語と同じであってはならない。

    プログラム名-1はユーザーが定義した他の語と同じであってもよい。

形式 1および 2
  1. 他のプログラムに含まれないプログラムのプログラム名-1の最初の8文字はシステム内で一意でなければならない。先頭の文字はアルファベットでなければならない。そうでない場合は、下記の規則に従って変換される。:

    • 先頭から9文字目までが順にAからIに変えられる。

    • それ以外の文字はすべてJに変えられる。

    他のプログラムに含まれないプログラムのプログラム名-1の2文字目から8文字目までの間にハイフンがあると、それはゼロに変えられる。

    この動作はMAPNAMEコンパイラ指令を用いて制御する。

    他のプログラムに含まれるプログラムに関しては、プログラム名-1は長さが30文字まで任意のユーザー定義のCOBOLの語とすることができる。最初の8文字が一意である必要はない。上記のプログラム名の変換は行われない。小文字を使用してもかまわない。ただし、小文字を使用した場合、大文字と小文字は区別される。

  2. 他のプログラムに含まれるプログラムに、その親の翻訳単位内に含まれている他のプログラムと同じ名前を付けてはならない。

形式 2
  1. 任意指定のCOMMON句は、プログラムが他のプログラムに含まれる場合だけ指定できる。

  2. IS PROGRAM指定を書く場合は、COMMON句とINITIAL句のどちらか一方、または両方、

    またはRECURSIVE句

    を指定する。

  3. 定数-1は英数字の定数でなければならず、表意定数であってはならない。

  4. 他のプログラム内に含まれるプログラムの中に定数-1を指定してはならない。

  5. このプログラムを直接または間接に含むプログラムが初期プログラムである場合は、RECURSIVE句を指定してはならない。

  6. 他のプログラムに含まれるプログラムの中で、RECURSIVE句を 指定してはならない。

  7. 他のプログラムを含むプログラムの中で、RECURSIVE句を 指定してはならない。

形式 4
  1. Program-prototype-name-1は、プログラムプロトタイプを識別する。ただし、定数-1(指定されている場合)は、運用環境の外部のプログラムプロトタイプである。

一般規則

形式 1および2
  1. プログラム名-1はこのプログラム定義によって宣言されるプログラムに名前を付けるものであり、このプログラムに関する実行用プログラム・コード・ファイルと関連する。定数-1を指定した場合、それは運用環境の外部のプログラム名となる。

形式 2
  1. COMMON指定は、プログラムが共通のものであることを指定する。共通のプログラムは他のプログラムの中に含まれるが、親のプログラム以外のプログラムからも呼び出せる。

  2. INITIAL指定は、プログラムが初期処理用のものであることを指定する。初期プログラムが呼ばれると、そのプログラムおよびその中に含まれるすべてのプログラムが初期化される(翻訳集団の概念の章で前述した初期状態節を参照)。

  3. RECURSIVE句は、プログラムが再帰的であることを指定する。

    再帰プログラムに含まれるプログラムはいずれも再帰的である。

    局所記憶節の指定を含むプログラムは再帰的である。

    再帰的プログラムは、実行中に呼び出すことができる。また、自身を呼び出すこともできる。

  4. プログラム中でRECURSIVE句が指定されておらず、プログラムに対して暗黙的に指定されてもない場合は、そのプログラムを実行中に呼び出すことはできない。

  5. 共通、初期、および再帰プログラムに関する詳しい規則は、翻訳集団の概念の章の共通プログラム、初期プログラム、および再帰プログラム節で解説する。
形式 3
  1. Program-name-1は、呼出しプロトタイプの名を示す。このプロトタイプを使用して、構文のチェックが行われ、CALL定数文の有効性と性質が決定される。