機能
入出力管理段落では、再開点、ファイル間で共有する記憶領域、複数ファイル リール中の順編成ファイルの位置を指定する。
入出力管理段落のRERUN句およびMULTIPLE FILE TAPE句は、ANSI '85標準では廃要素に分類されており、ANSI標準の次回の全面改訂の際に、削除される予定である。
この構文は、このCOBOLシステムに組み込まれているすべての方言で全面的に使用できる。FLAGSTD指令を使用すると、この構文が使われているすべての箇所を見つけ出すことができる。
標準COBOL定義の一部を構成するにもかかわらず、X/OpenのCOBOL言語定義では、RERUN句およびMULTIPLE FILE TAPE句は明示的に除外されている。したがって、X/OpenのCOBOLに準拠する原始プログラム内ではこれらの句を使用するべきではない。
一般形式
構文規則
- 入出力管理段落は、書いても書かなくてもよい。
- 整数-1 RECORDS句または整数-2 CLOCK-UNITS句を指定するときは、RERUN句に文字列を指定する。
- SAME AREA句においては、SORTとSORT-MERGEは同義語である。
- SAME SORT AREA句またはSAME SORT-MERGE AREA句を指定した場合、その中に最低1つは整列ファイルまたは併合ファイルであるファイル名を入れなければならない。整列ファイルでも併合ファイルでもないファイルを入れても構わない。
- SAME句には2つの形(SAME AREA, SAME RECORD AREA)がある。これらは下記のように使い分ける。
1つの原始要素中に複数のSAME句を指定してもよい。しかし、下記の制約がある。
- 1つのファイル名を複数のSAME AREA(ファイル領域の共用)句内に指定することはできない。
- 1つのファイル名を複数のSAME RECORD AREA(レコード領域の共用)句内に指定することはできない。
- SAME AREA句に指定したファイル名をSAME RECORD AREA句内にも指定する場合、SAME AREA句内に指定したすべてのファイル名を、SAME RECORD AREA句内にも指定する。SAME AREA句内に指定しなかったファイル名を、SAME RECORD AREA句内に追加指定してもよい。SAME RECORD AREA句内に指定したすべてのファイルを、任意の時点で開いておくことができる。しかし、1つのSAME RECORD AREA句内に指定したファイルは、ある一時点では1つしか開くことはできない。
- 1つの整列ファイル名または併合ファイル名を、1つのSAME AREA句内に指定してはならない。
- 1つの整列ファイル名または併合ファイル名を、複数のSAME SORT AREA句またはSAME SORT-MERGE AREA句内に指定してはならない。
- SAME AREA句に指定した整列ファイル名でも併合ファイル名でもないファイル名を、SAME SORT AREA句またはSAME SORT-MERGE AREA句内にも指定する場合、SAME AREA句内に指定したすべてのファイル名をSAME SORT AREA句またはSAME SORT-MERGE AREA句内にも指定する。
- SAME AREA句, SAME SORT AREA句, SAME SORT-MERGE AREA句, SAME RECORD AREA句内に指定するファイルは、編成または呼び出し法がすべて同じである必要はない。
-
文字列は、予約語または定数または利用者名であってはならない。
- END OF REEL/UNIT句は、ファイル名-2が順編成ファイルである場合にだけ指定できる。
- 1つのファイル名-2に、複数のRERUN句を指定してもよい。ただし、その場合は、下記の制約がある。
- 整数-1 RECORD句を複数指定する場合、それらに同じファイル名-2は指定できない。
- END OF REEL句またはEND OF UNIT句を複数指定する場合、それらに同じファイル名-2は指定できない。
- CLOCK-UNITSを指定したRERUN句は、1つだけ指定できる。
-
入出力管理段落中の各句は、後ろに終止符(.)を置いてもよい。
一般規則
-
RERUN句は注記になる。
- SAME AREA句は、2つ以上のファイルの処理用に同じ記憶領域を使用することを指定する。ただし、整列ファイルおよび併合ファイルは対象外である。共有される領域には、対象となるファイルに割り当てられるすべての記憶領域が含まれる。したがって、SAME AREA句内に指定したファイルを同時に2つ以上開くことは有効ではない。(構文規則5cを参照)
- SAME RECORD AREA句は、現行の論理レコードを処理する間に2つ以上のファイルが同じ記憶領域を使用することを指定する。この場合、すべてのファイルを同時に開いておくことができる。SAME RECORD AREA中の論理レコードは、SAME RECORD AREA句の中に指定したファイルの内の、出力モードで開いたものの各論理レコード、および最も新しく読み込んだ入力ファイルの論理レコードを表わす。これは、共有領域を暗黙的に再定義していることに相当する。したがって、レコードは左詰めで配置される。
-
APPLY句は注記になる。
-
MULTIPLE FILE句は注記になる。
- SAME SORT AREA句またはSAME SORT-MERGE句を指定した場合、その中に少なくとも1つは整列ファイルまたは併合ファイルを入れなければならない。その中に整列ファイルでも併合ファイルでもないファイルを入れても構わない。具体的な記憶領域の共有のされ方は下記のとおり。
- SAME SORT AREA句またはSAME SORT-MERGE句によって、指定した整列ファイルまたは併合ファイルを整列または併合する際に使用される記憶領域が共有される。したがって、ある整列ファイルまたは併合ファイルを整列または併合するために割り当てた任意の記憶領域を、他の整列ファイルまたは併合ファイルを整列または併合するために再利用できる。
- 更に、整列ファイルでも併合ファイルでもないファイルに割り当てた記憶領域を、必要に応じて、SAME SORT AREA句またはSAME SORT-MERGE句の中に指定した整列ファイルまたは併合ファイルを整列または併合するために割り当てることもできる。
- 整列ファイルでも併合ファイルでもないファイル同士は、互いに同じ記憶領域を共有するようにはされない。それらのファイル間で記憶領域を共有させたければ、該当原始要素中でそれらのファイルを対象にしてSAME AREA句またはSAME RECORD AREA句を指定する。
-
この句の中に指定した整列ファイルまたは併合ファイルを使用するSORT文またはMERGE文を実行する間は、この句の中に指定した整列ファイルでも併合ファイルでもないファイルを開くことはできない。