Index
ENVIRONMENT DIVISION 環境部

【用途】
記述順では2番目の環境部。ソース作成マシン名、利用ファイルの定義など実行に必要な環境を記述する部。もし仮に入出力を全く行なわないプログラムであれば省略可能。※解説の中のSPECIAL-NAMES句に関しては機種依存の可能性があるため割愛しております。


環境部


概説

環境部(environment division)では,使用する計算機の機械的な特性によって決まる環境を記述する.この部では,翻訳用計算機及び実行用計算機の構成を指定する.そのほか,入出力管理,特殊なハードウェアの特性や制御技法に関する情報を与えることができる.


構成

環境部は,構成節(configuration section)と入出力節(input-output section)の二つの節からなる.

構成節には,翻訳用計算機と実行用計算機との特性を書く.この節は,次の三つの段落からなる.翻訳用計算機(source-computer)段落では,原始プログラムを翻訳する計算機の構成を指定し,実行用計算機(object-computer)段落では,翻訳されたプログラムを実行する計算機の構成を指定する.

入出力節では,外部媒体と実行用プログラムの間で,データを転送し処理するのに必要な情報を書く.この節は,次の二つの段落からなる.ファイル管理(file-control)段落では,ファイルに名前を付け,外部媒体を割り当てる.入出力管理(i-o-control)段落では,実行用プログラムで使われる特殊な制御技法を指定する.

環境部の節と段落との書き方は,次の一般形式による.原始プログラムには,ここに示した順序で書かなければならない.構成節とそれに関連する段落は,書いても書かなくてもよい.


一般形式

【書き方】



Index



CONFIGURATION SECTION 構成節

【用途】
プログラムの作成・実行環境を提示する節。記述する、しないは任意です。書かなくとも動作します。補足程度にとどめておけばOKでしょう。

構成節

構成節(configuration section)は,原始プログラムの環境部中に位置する.構成節は,翻訳用計算機及び実行用計算機の特性を扱う.この節は,通貨編集用記号を指定したり,小数点を選択したり,記号定数を指定したり,記号文字を指定したり,利用者が指定した呼び名に機能名を関係付けたり,文字の大小順序に符号系名を関係付けたり,字類名を文字の組に関係付ける手段を与える.構成節は,COBOL原始プログラムの環境部中で書いても書かなくてもよい.

構成節の一般形式は,次のとおりとする.

 

【書き方】



構成節は,別のプログラムに直接又は間接に含まれるプログラムで指定してはならない.

他のプログラムを含むプログラムの構成節中で明に又は暗に指定した記述項は,含まれるプログラム各々に適用する.


Index



SOURCE-COMPUTER ソースプログラムマシン段落

【用途】
プログラムを作成したマシン名を記述します。省略しても構いません。

翻訳用計算機段落


機能

翻訳用計算機(source-computer)段落は,プログラムを翻訳する計算機を記述する手段を与える.


一般形式

【書き方】


構文規則

計算機名は,システム名の構文規則を満たしていれば,どのような文字列でもよい.


一般規則

(1)

翻訳用計算機段落のすべての句は,それが明に又は暗に指定されたプログラム及びそのプログラム中に含まれるプログラムに適用する.

(2)

翻訳用計算機段落が指定されず,かつそのプログラムが翻訳用計算機段落を含むプログラム中に含まれないとき,その原始プログラムを翻訳している計算機を翻訳用計算機とする.

(3)

翻訳用計算機段落が指定され,かつ翻訳用計算機記述項が指定されないとき,その原始プログラムを翻訳している計算機を翻訳用計算機とする.

(4)

WITH DEBUGGING MODE句をプログラム中で指定すると,中核機能で示されるように,すべてのデバッグ行が翻訳される.

(5)

WITH DEBUGGING MODE句がプログラム中で指定されず,かつそのプログラムがWITH DEBUGGING MODE句を含むプログラム中に含まれなければ,デバッグ行は注記行として翻訳される.


Index



OBJECT-COMPUTER 実行マシン名段落

【用途】
プログラムを実行させるマシン名を記述します。これは企業などの環境にもよりますが、ソースプログラムと実行プログラムを同じマシン上には置きません。これはコボルに限ったことではないです。開発環境と運用環境は通常同じマシン上では行ないません。ソースプログラムの秘匿性向上や保守のためにも同じマシン上というのは危険すぎる。記述は省略しても構いません。

実行用計算機段落


機能

実行用計算機(object-computer)段落は,プログラムを実行するのに使う計算機を記述する手段を与える.


一般形式

【書き方】



構文規則

(1)

計算機名は,システム名の構文規則を満たしていれば,どのような文字列でもよい.

(2)

計算機名は,実行用計算機段落の中で最初の記述項でなければならない.

(3)

符号系名-1は,特殊名段落でNATIVEに対応付けられたものでなければならない.


Index



INPUT-OUTPUT SECTION ファイル入出力節

【用途】
プログラム上でファイル(ハードディスク、磁気テープなど)やプリンターなどを利用する場合には、必須になる項目。ここの節が環境部では一番メインになります。


入出力節

入出力節は,原始プログラムの環境部に書く.入出力節では,外部媒体と実行用プログラムの間で,データを転送し処理するのに必要な情報を書く.

入出力節の一般形式を以下に示す.

【書き方】

Image


Index



FILE-CONTOROL ファイル管理段落

【用途】
プログラム上でファイル(ハードディスク、磁気テープなど)やプリンターなどを利用する場合には必須です。INPUT-OUTPUT SECTIONのすぐ下に記述します。セットで覚えましょう。


ファイル管理段落


機能

ファイル管理(file-control)段落は,そのファイルに関係する情報を指定する.


一般形式

【書き方】

Image


Index



SELECT *** ASSIGN TO ### セレクト句

【用途】
プログラム上でファイル(ハードディスク、磁気テープなど)やプリンターなどの割り当てを行ないます。ファイル利用時には必須です。この文法が初心者にとって一番難解に映るかもしれません。慣れればどうってことのない表記です。


ファイル管理記述項


機能

ファイル管理記述項は,順ファイルに関係する物理属性を宣言する.


一般形式

【書き方】

Image


構文規則

(1)

SELECT(選択)句は,ファイル管理記述項の最初に書かなければならない.SELECT句の後に書く句の順序は,任意とする.

(2)

データ部(data division)のファイル名は,すべて,ファイル管理(file-control)段落で,1回だけ指定しておかなければならない.
また,SELECT句で指定したファイル名は,同じプログラムのデータ部にファイル記述項(file description entry)を書かなければならない.

(3)

ファイル識別名-1の形式を下記の表に示す.

ファイル識別名
    ファイル種別
                    
ファイル識別名   
物理順
      
   
RDM順 
      
   
通 信
      
   
名前        
 ○ 
 − 
 − 
[DA-] [nn-] [S-]名前
 ○ 
 − 
 − 
LP- nn- [S-]名前   
 ○ 
 − 
 − 
SP- nn- [S-]名前   
 ○ 
 − 
 − 
FPD- [nn-] [S-]名前 
 ○ 
 − 
 − 
MT- nn- [S-]名前   
 ○ 
 − 
 − 
VS-名前       
 − 
 ○ 
 − 
[DA-] [nn-] VS-名前 
 − 
 ○ 
 − 
[DA-] [nn-] CS-名前 
 − 
 − 
 ○ 


      

○:指定可

−:指定不可

(4)

ファイル識別名の構文規則
(a)

DA,FPD,LP,SP及びMTの指定を装置クラスという.装置クラスの意味は,以下のとおりである.
DA:大記憶
FPD:フロッピーディスク
LP :ラインプリンタ
SP :シリアルプリンタ
MT :磁気テープ
  
装置クラスの指定の可否を下記の表に示す.
装置クラスを省略した場合,DAが指定されたものとみなす.

装置クラス
装置       
    
大記憶装置    
DA,省略 
フロッピーディスク
FPD   
ラインプリンタ  
LP   
シリアルプリンタ 
SP     
磁気テープ    
MT   

(b)

nnは2けたの数であり,ファイルを割り当てる論理装置を指定する.省略した場合は,値01が指定されたものとみなす.

(c)

名前は,英文字と数字のみから構成されるひとつながりの文字の列であり,長さは8字以内でなければならない.名前の最初の文字は英文字でなければならない.
名前は,ファイルをシステムに通知するための外部名を指定する.
このコンパイラでは,クラスがDA及びFPD以外の場合,名前を省略することができる.
ラベルなし磁気テープの場合,名前は指定できない.


一般規則

(1)

ファイル名-1のファイル結合子が外部ファイル結合子であれば,このファイル結合子を参照する実行単位中のすべてのファイル管理記述項は,次の規則に従わなければならない.
(a)

ASSIGN句のファイル識別名-1に対して同一の指定をする.

(b)

RESERVE句の整数-1に対して同じ値を指定する.

(c)

同じ編成を指定する.

(d)

同じ呼出し法を指定する.

(2)

ASSIGN(割当て)句は,ファイル名-1のファイルをファイル識別名-1によって参照される記憶媒体に関連付ける.2番目以降のファイル識別名は,注釈とみなされる.

(3)

ACCESS MODE句,FILE STATUS句,ORGANIZATION IS SEQUENTIAL句及びRESERVE句については,以降で規定する.


Index



ACCESS MODE ファイルアクセス句

【用途】
プログラム上で、どのようにファイルを利用すれば良いのかを記述する句。ファイル種別によって変化します。ここでの説明はあくまで順編成ファイルのみの解説です。


ACCESS MODE句


機能

ACCESS MODE (呼出し法)句は,そのファイルでレコードが呼び出される順序を指定する.


一般形式

【書き方】

Image


一般規則

(1)

ACCESS MODE IS SEQUENTIAL句は,呼出し法として,順呼出しを指定する.

(2)

ACCESS MODE(呼出し法)句を書かないと,順呼出しとみなされる.

(3)

ファイルのレコードは,ファイル編成に従った順序で呼び出される.順ファイルでは,この順序は,ファイルを生成又は拡張する時に,WRITE文で定まるレコード位置の前後関係によって決まる.

(4)

関連するファイル結合子が外部ファイル結合子ならば,そのファイル結合子に関連する実行単位のすべてのファイル管理記述項では,同じ呼出し法を指定しなければならない.


Index



FILE STATUS ファイルステータス句

【用途】
プログラム上でファイルの状態を常に監視しますよ、という宣言文です。ファイルが無かったり、ファイルが終了したりすると、何かしらの値を返し、ファイルの状態を知らせてくれる便利な文です。実務でも頻繁に利用します。


FILE STATUS句


機能

FILE STATUS(ファイル状態)句は,入出力動作の状態を含むデータ項目を指定する.


一般形式

【書き方】

Image


構文規則

(1)

データ名-1及びデータ名-2は,修飾してもよい.

(2)

データ名-1は,データ部で項類が英数字の2文字のデータ項目として定義しなければならない.これは,作業場所節又は連絡節で定義しなければならない.

(3)

データ名-2は,データ部で項類が英数字の4文字のデータ項目として定義しなければならない.これは,作業場所節又は連絡節で定義しなければならない.

(4)

データ名-1及びデータ名-2のデータ項目は,レコード中の可変位置にあってはならない.


一般規則

(1)

FILE STATUS句を書くと,データ名-1及びデータ名-2のデータ項目は,入出力状態が更新されるたびに,入出力状態の値で更新される.この値は,入出力文の実行状態を示す).

(2)

入出力文の実行中に更新されるデータ名-1及びデータ名-2のデータ項目は,その文に関連するファイル管理記述項で指定されたデータ項目とする.

(3)

データ名-2のデータ項目には,拡張入出力状態の値が設定される.


Index



ORGANIZATION ファイル構成指定句

【用途】
ここら辺から雲行きが怪しくなります。ファイル構成を指定します。この句の記載がない場合、順編成(SEQUENTIAL)が指定されたことになります。実務でも頻繁に利用しますが、この句は、実務を通しながら覚えていけば良いでしょう。一応、参考までに掲載。


ORGANIZATION IS SEQUENTIAL句


機能

ORGANIZATION IS SEQUENTIAL(順編成)句は,ファイルの論理的構成として順編成を指定する.


一般形式

【書き方】

Image


一般規則

(1)

ORGANIZATION IS SEQUENTIAL句は,ファイルの論理的構成として順編成を指定する.ファイル編成は,ファイルを生成する時に決まり後で変更することはできない.

(2)

順編成は永続的な論理ファイル構造であり,レコードは,ファイルに書き出すときに定まる直前直後の関係によって一意となる.

(3)

ORGANIZATION IS SEQUENTIAL句を書かないと,順編成とみなされる.


Index



RESERVE リザーブ句

【用途】
プログラム上でファイルを確保する個数を指定します。省略した場合、1個のファイルが指定されたと見なします。これも参考までに。


RESERVE句


機能

RESERVE(確保)句で利用者は,割り当てられる入出力領域の個数を指定できる.


一般形式

【書き方】

Image


一般規則

RESERVE(確保)句で利用者は,割り当てられる入出力領域の個数を指定できる.RESERVE句を書くと,割り当てられる入出力領域の個数は,整数-1の値となる. RESERVE句を書かない場合,整数-1に1が指定されたものとして扱う.


Index



I-O-CONTROL 入出力ファイル管理段落

【用途】
共用で利用する記憶領域、ファイルの位置を指定します。これも参考までに掲載。MULTIPLE FILE句に関しては今後廃止される予定のため掲載は割愛しています。


入出力管理段落


機能

入出力管理(i-o-control)段落は,複数個のファイルで共用される記憶領域,複数ファイルリールにおけるファイルの位置を指定する.


一般形式

【書き方】

Image


構文規則

各句を書く順序は,任意とする.


一般規則

SAME句について,以降で規定する.


Index



SAME 記憶領域の共用指定句

【用途】
これも参考までに。というか、私は、「I-O-CONTROL」自体書かれているプログラムを一度も目にしたことがありません。実態がわからないというのが現実です。誰か解説できる方がいたら逆に教えてほしいです。


SAME句


機能

SAME句は,異なるファイル間での記憶領域の共用を指定する.


一般形式

【書き方】

Image


構文規則

(1)

ファイル名-1及びファイル名-2は,同じプログラムのファイル管理段落に書かなければならない.

(2)

ファイル名-1及びファイル名-2は,外部ファイル結合子を参照してはならない.

(3)

以下の制限に従えば,プログラム中に二つ以上のSAME句が含まれてもよい.
(a)

同じファイル名を二つ以上のSAME AREA(ファイル領域の共用)句に書いてはならない.

(b)

同じファイル名を二つ以上のSAME RECORD AREA(レコード領域の共用)句に書いてはならない.

(c)

SAME AREA句に書いたファイル名を,SAME RECORD AREA句にも書いた場合には,そのSAME AREA句のほかのファイル名もすべて同じSAME RECORD AREA句に書かなければならない.しかし,SAME AREA句にないファイル名がSAME RECORD AREA句にあってもよい.SAME RECORD AREA句で指定されているファイルは,幾つでも同時に開いておける.ただし,SAME AREA句に指定されているファイルは,同時に二つ以上開いておけない.

(4)

SAME AREA句又はSAME RECORD AREA句で参照されるファイルは,同じ編成法又は同じ呼出し法でなくてもよい.


一般規則

(1)

SAME AREA句を書くと,ファイル名-1,ファイル名-2の整列併合ファイルでない二つ以上のファイルが処理中に同じ記憶領域を共用する.ファイル名-1,ファイル名-2のファイルに割り当てられた記憶領域はすべて共用される.二つ以上のファイルを同時に開いておいてはならない.

(2)

SAME RECORD AREA句を書くと,ファイル名-1,ファイル名-2の二つ以上のファイルが,現在のレコード処理するのに同じ記憶領域を共用する.これらのファイルは,同時に開いておいてもよい.共用領域中のレコードは,この句に書かれたファイルのうち,現在開かれている出力ファイルのレコード及び最近読まれた入力ファイルのレコードとして用いられる.これは,領域を暗に再定義するのと同じである.両方のレコードは,左端の文字位置にそろえられる.


Index