COBOL言語の概念 次ページへ

第1章: COBOL言語の紹介

1.1 COBOL言語

COBOL(COmmon Business Oriented Language)は、事務処理および管理分野のデータ処理に 最も広く使用されているプログラミング言語である。

Micro Focus COBOLは、 ANSI X3.23-1974 (ISO 1989-1978) ANSI X3.23-1985 (IS 1989:1985)ANSI X3.23a-1989 (IS 1989:1985/AM1)、及びANSI X3.23b-1993 (IS 1989:1985/AM2) に規定されている ANSI及びISO COBOLを含んだ機能を持っている。

主な拡張機能には、下記のものがある。

上記の拡張機能を組み合わせて、原始プログラム中で使用できる。さらに、コーディングした COBOL原始プログラム中の各種の拡張機能がどの言語バージョンのものかを見つけ出して"フラグ "を付ける、任意選択機能が用意されている。この機能を使用すると、指定した言語仕様に合った拡 張機能が使用されているかどうかを、確認できる。

全機能を備えたANSI COBOL 1974および1985は下記の機能単位から構成される。

このCOBOLシステムは、上記の機能単位に関する米国商務省の全米標準・技術研究所 (National Institute of Standards and Technology)のCOBOLコンパイラ検査システム(CCVS)の 合格基準を満たしている。

この他にも、いろいろな面からCOBOL言語の機能拡張がなされている。

1.2 正書法

原始(ソース)文は

自由形式か

固定形式で記述する。

1.2.1 固定形式

固定形式では、 COBOL正書法(source format)により、COBOL原始(ソース)レコードを72カラム毎に分ける。これらのカラムは以下のように使われる。

カラム1-6 一連番号
カラム7 標識領域
カラム8-11 A領域
カラム12-72 B領域

COBOL原始(ソース)レコードは80カラムまで使用できる。COBOLのシステムは、73カラムから80カラムまでを無視する。

1.2.2 一連番号

原始プログラムの各行を識別するために、6桁の一連番号(sequence number)を使用する。

一連番号の1桁目に星印(*)または印字されない制御文字(ASCII文字の照合順序で空白文字よりも小さい文字)を書くと、その行は注記行として扱われ、リスト用のファイルまたは装置には出力されない。この機能を利用して出力したリスト・ファイルを入力用として使用して、コンパイルを行うことができる。

この機能はMFCOMMENTコンパイラ指令に影響される。

一連番号には計算機の文字集合の中の任意の文字を記述できる。

1.2.3 標識領域

標識領域(indicator area)に星印(*)を書くと、その行は注記行となる。注記行は見出し部の見出しより後ろならば、どこにでも置ける。注記行のA領域およびB領域には、ASCII文字集合の中の 任意の文字を記すことができる。

注記行を、見出し部の見出しより前に置ける。

標識領域に斜線(/)を書くと、その行が注記行となり、改ページされてから印刷が行われる。

標識領域に"D"または"d"を書くと、その行はデバッグ行となる。デバッグ行のA領域およびB領域には有効な任意のCOBOL文を記述できる。

標識領域にハイフン"-"を書くと、その行は前の行からの継続を表す。その場合、前の行の後続の空白は、文字定数の場合はその一部とみなされ、文字定数でない場合はないものとみなされる(詳細については、「COBOLの概念」の章を参照)。

標識領域に"$"を書くと、その行は特殊行となり、指令やコンパイル対象行の選択条件文を記述できる。

1.2.4 A領域とB領域

節名および段落名は A領域から書き始め、終止符(.)と続く空白で止める。 レベル指示語FD、SD、CD及びRDは、A領域から書き始め、 B領域

またはA領域

から対応する記述を書き始める。レベル番号01及び77は、A領域から書き始め、B領域

またはA領域

から対応するデータ記述を書き始める。レベル番号02から49、66及び88は、B領域から書き始める。

レベル番号78は、A領域またはB領域から書き始めてよい。

見出し部中の注記項以外には、A領域とB領域に関して規則をいっさい設けない。

自由形式の原始コードが使う場合は、A領域とB領域の区別はない。自由形式の原始コードに関する詳細は、この章の次のセクションを参照。

1行のコーディング中に複数の文を記しても構わない。

典型的なプログラムの 正書法を図1-1に示す。

000010 identification division. 
000020 program-id. stock-file-set-up. 
000030 author. Micro Focus. 
000040 environment division. 
000050 configuration section. 
000060 source-computer. mds-800. 
000070 object-computer. mds-800. 
000075 special-names. console is crt. 
000080 input-output section. 
000090 file-control. 
000100  select stock-file assign "stock.it" 
000110  organization indexed 
000120  access dynamic 
000130  record key stock-code. 
000140 data division. 
000150 file section. 
000160 fd   stock-file record 32. 
000170 01   stock-item. 
000180  02  stock-code   pic x(4). 
000190  02  product-desc     pic x(24). 
000200  02  unit-size    pic 9(4). 
000210 working-storage section. 
000220 01   screen-headings. 
000230  02  ask-code         pic x(21) value "stock code    <    >".
000240  02  filler pic x(59). 
000250  02  ask-desc         pic x(16) value "description   <".
000260  02  si-desc      pic x(25) value "                 >".
000270  02  filler       pic x(39). 
000280  02  ask-size         pic x(21) value "unit size <    >".
000290  01 enter-it redefines screen-headings. 
000300  02      filler           pic x(12). 
000310  02  crt-stock-code pic x(4).
000320  02      filler           pic x(80). 
000330  02  crt-prod-desc    pic x(24). 
000340  02      filler           pic x(51). 
000350  02  crt-unit-size    pic 9(4). 
000360  02  filler       pic x. 
000370 procedure division. 
000380 sr1. 
000390  display space. 
000400  open i-o stock-file. 
000410  display screen-headings. 
000420 normal-input. 
000430  move space to enter-it. 
000440  display enter-it. 
000450 correct-error.
000460  accept enter-it. 
000470  if crt-stock-code = space go to end-it. 
000480  if crt-unit-size not numeric go to correct-error. 
000490  move crt-prod-desc to product-desc. 
000500  move crt-unit-size to unit-size. 
000510  move crt-stock-code to stock-code. 
000520  write stock-item invalid key go to correct-error. 
000530  go to normal-input. 000540 end-it. 
000550  close stock-file. 
000560  display space. 
000570  display "end of program". 
000580  stop run.
<---->|<--><---------------------------------------------------------->
  |   | |     |
  |   | |     +-- カラム 12-72 B領域
  |   | +-- カラム 8-11 A領域
  |   +-- カラム 7 標識領域
  +-- カラム 1-6 一連番号

図1-1 正書法を示すプログラム・コーディング例

1.2.5 自由形式

自由形式は、SOURCEFORMAT"FREE"指令によって選択される。

始めの6文字は一般行の一部で、COBOL原始文に含まれるものとして扱われる。1カラム目は、 以下のような標識の役目をする。

* 注記行
/ リストファイルで改ページしてから始まる注記行
Dまたはd 空白が後続する。デバッグ行
$ 特殊行(指令、条件付きコンパイル等)
その他の文字 一般の行

継続行はない。英数字定数の継続は、"A" & "B"のように連結して行う。

A領域とB領域の区別はない。

固定の右マージンはないが、実際上は、行の長さは1バイト文字では、最大250文字、また 2バイト文字では、最大125文字までの制限がある。

注記は段落見出しとして同じ行内におさめ、次の行に続けられない。


Copyright © 2002 Micro Focus International Limited. All rights reserved.
本書ならびに使用されている固有の商標と商品名は国際法で保護されています。
COBOL言語の概念 次ページへ