環境部(environment division)では,使用する計算機の機械的な特性によって決まる環境を記述する.この部では,翻訳用計算機及び実行用計算機の構成を指定する.そのほか,入出力管理,特殊なハードウェアの特性や制御技法に関する情報を与えることができる.
環境部は,構成節(configuration section)と入出力節(input-output section)の二つの節からなる.
構成節には,翻訳用計算機と実行用計算機との特性を書く.この節は,次の三つの段落からなる.翻訳用計算機(source-computer)段落では,原始プログラムを翻訳する計算機の構成を指定し,実行用計算機(object-computer)段落では,翻訳されたプログラムを実行する計算機の構成を指定する.
入出力節では,外部媒体と実行用プログラムの間で,データを転送し処理するのに必要な情報を書く.この節は,次の二つの段落からなる.ファイル管理(file-control)段落では,ファイルに名前を付け,外部媒体を割り当てる.入出力管理(i-o-control)段落では,実行用プログラムで使われる特殊な制御技法を指定する.
環境部の節と段落との書き方は,次の一般形式による.原始プログラムには,ここに示した順序で書かなければならない.構成節とそれに関連する段落は,書いても書かなくてもよい.
【書き方】
構成節(configuration section)は,原始プログラムの環境部中に位置する.構成節は,翻訳用計算機及び実行用計算機の特性を扱う.この節は,通貨編集用記号を指定したり,小数点を選択したり,記号定数を指定したり,記号文字を指定したり,利用者が指定した呼び名に機能名を関係付けたり,文字の大小順序に符号系名を関係付けたり,字類名を文字の組に関係付ける手段を与える.構成節は,COBOL原始プログラムの環境部中で書いても書かなくてもよい.
構成節の一般形式は,次のとおりとする.
【書き方】
構成節は,別のプログラムに直接又は間接に含まれるプログラムで指定してはならない.
他のプログラムを含むプログラムの構成節中で明に又は暗に指定した記述項は,含まれるプログラム各々に適用する.
翻訳用計算機(source-computer)段落は,プログラムを翻訳する計算機を記述する手段を与える.
【書き方】
計算機名は,システム名の構文規則を満たしていれば,どのような文字列でもよい.
(1) | 翻訳用計算機段落のすべての句は,それが明に又は暗に指定されたプログラム及びそのプログラム中に含まれるプログラムに適用する. |
(2) | 翻訳用計算機段落が指定されず,かつそのプログラムが翻訳用計算機段落を含むプログラム中に含まれないとき,その原始プログラムを翻訳している計算機を翻訳用計算機とする. |
(3) | 翻訳用計算機段落が指定され,かつ翻訳用計算機記述項が指定されないとき,その原始プログラムを翻訳している計算機を翻訳用計算機とする. |
(4) | WITH DEBUGGING MODE句をプログラム中で指定すると,中核機能で示されるように,すべてのデバッグ行が翻訳される. |
(5) | WITH DEBUGGING MODE句がプログラム中で指定されず,かつそのプログラムがWITH DEBUGGING MODE句を含むプログラム中に含まれなければ,デバッグ行は注記行として翻訳される. |
実行用計算機(object-computer)段落は,プログラムを実行するのに使う計算機を記述する手段を与える.
【書き方】
(1) | 計算機名は,システム名の構文規則を満たしていれば,どのような文字列でもよい. |
(2) | 計算機名は,実行用計算機段落の中で最初の記述項でなければならない. |
(3) | 符号系名-1は,特殊名段落でNATIVEに対応付けられたものでなければならない. |
入出力節は,原始プログラムの環境部に書く.入出力節では,外部媒体と実行用プログラムの間で,データを転送し処理するのに必要な情報を書く.
入出力節の一般形式を以下に示す.
【書き方】
ファイル管理段落
ファイル管理(file-control)段落は,そのファイルに関係する情報を指定する.
【書き方】
ファイル管理記述項
ファイル管理記述項は,順ファイルに関係する物理属性を宣言する.
【書き方】
(1) |
SELECT(選択)句は,ファイル管理記述項の最初に書かなければならない.SELECT句の後に書く句の順序は,任意とする. | ||||||||||||||||||||||||||||||||||||||||
(2) |
データ部(data
division)のファイル名は,すべて,ファイル管理(file-control)段落で,1回だけ指定しておかなければならない.
| ||||||||||||||||||||||||||||||||||||||||
(3) |
ファイル識別名-1の形式を下記の表に示す. ファイル識別名
○:指定可 −:指定不可 | ||||||||||||||||||||||||||||||||||||||||
(4) |
ファイル識別名の構文規則
|
一般規則
(1) |
ファイル名-1のファイル結合子が外部ファイル結合子であれば,このファイル結合子を参照する実行単位中のすべてのファイル管理記述項は,次の規則に従わなければならない.
| ||||||||
(2) |
ASSIGN(割当て)句は,ファイル名-1のファイルをファイル識別名-1によって参照される記憶媒体に関連付ける.2番目以降のファイル識別名は,注釈とみなされる. | ||||||||
(3) |
ACCESS MODE句,FILE STATUS句,ORGANIZATION IS SEQUENTIAL句及びRESERVE句については,以降で規定する. |
ACCESS MODE句
ACCESS MODE (呼出し法)句は,そのファイルでレコードが呼び出される順序を指定する.
【書き方】
(1) |
ACCESS MODE IS SEQUENTIAL句は,呼出し法として,順呼出しを指定する. |
(2) |
ACCESS MODE(呼出し法)句を書かないと,順呼出しとみなされる. |
(3) |
ファイルのレコードは,ファイル編成に従った順序で呼び出される.順ファイルでは,この順序は,ファイルを生成又は拡張する時に,WRITE文で定まるレコード位置の前後関係によって決まる. |
(4) |
関連するファイル結合子が外部ファイル結合子ならば,そのファイル結合子に関連する実行単位のすべてのファイル管理記述項では,同じ呼出し法を指定しなければならない. |
FILE STATUS句
FILE STATUS(ファイル状態)句は,入出力動作の状態を含むデータ項目を指定する.
【書き方】
(1) |
データ名-1及びデータ名-2は,修飾してもよい. |
(2) |
データ名-1は,データ部で項類が英数字の2文字のデータ項目として定義しなければならない.これは,作業場所節又は連絡節で定義しなければならない. |
(3) |
データ名-2は,データ部で項類が英数字の4文字のデータ項目として定義しなければならない.これは,作業場所節又は連絡節で定義しなければならない. |
(4) |
データ名-1及びデータ名-2のデータ項目は,レコード中の可変位置にあってはならない. |
(1) |
FILE STATUS句を書くと,データ名-1及びデータ名-2のデータ項目は,入出力状態が更新されるたびに,入出力状態の値で更新される.この値は,入出力文の実行状態を示す). |
(2) |
入出力文の実行中に更新されるデータ名-1及びデータ名-2のデータ項目は,その文に関連するファイル管理記述項で指定されたデータ項目とする. |
(3) |
データ名-2のデータ項目には,拡張入出力状態の値が設定される. |
ORGANIZATION IS SEQUENTIAL(順編成)句は,ファイルの論理的構成として順編成を指定する.
【書き方】
(1) |
ORGANIZATION IS SEQUENTIAL句は,ファイルの論理的構成として順編成を指定する.ファイル編成は,ファイルを生成する時に決まり後で変更することはできない. |
(2) |
順編成は永続的な論理ファイル構造であり,レコードは,ファイルに書き出すときに定まる直前直後の関係によって一意となる. |
(3) |
ORGANIZATION IS SEQUENTIAL句を書かないと,順編成とみなされる. |
RESERVE(確保)句で利用者は,割り当てられる入出力領域の個数を指定できる.
【書き方】
RESERVE(確保)句で利用者は,割り当てられる入出力領域の個数を指定できる.RESERVE句を書くと,割り当てられる入出力領域の個数は,整数-1の値となる. RESERVE句を書かない場合,整数-1に1が指定されたものとして扱う. |
入出力管理(i-o-control)段落は,複数個のファイルで共用される記憶領域,複数ファイルリールにおけるファイルの位置を指定する.
【書き方】
各句を書く順序は,任意とする.
SAME句について,以降で規定する.
SAME句は,異なるファイル間での記憶領域の共用を指定する.
【書き方】
(1) |
ファイル名-1及びファイル名-2は,同じプログラムのファイル管理段落に書かなければならない. |
||||||
(2) |
ファイル名-1及びファイル名-2は,外部ファイル結合子を参照してはならない. |
||||||
(3) |
以下の制限に従えば,プログラム中に二つ以上のSAME句が含まれてもよい.
|
||||||
(4) |
SAME AREA句又はSAME RECORD AREA句で参照されるファイルは,同じ編成法又は同じ呼出し法でなくてもよい. |
(1) |
SAME AREA句を書くと,ファイル名-1,ファイル名-2の整列併合ファイルでない二つ以上のファイルが処理中に同じ記憶領域を共用する.ファイル名-1,ファイル名-2のファイルに割り当てられた記憶領域はすべて共用される.二つ以上のファイルを同時に開いておいてはならない. |
(2) |
SAME RECORD AREA句を書くと,ファイル名-1,ファイル名-2の二つ以上のファイルが,現在のレコード処理するのに同じ記憶領域を共用する.これらのファイルは,同時に開いておいてもよい.共用領域中のレコードは,この句に書かれたファイルのうち,現在開かれている出力ファイルのレコード及び最近読まれた入力ファイルのレコードとして用いられる.これは,領域を暗に再定義するのと同じである.両方のレコードは,左端の文字位置にそろえられる. |