この記事は COBOL アドベントカレンダー2020 4日目の記事です。
当分は COBOL についての基本的な話をする予定なので、
多くの部分で wikipedia などの記述とカブると思います。
では、
についてお話しました。
本日はこの続きからやっていきます。
COBOL プログラムの3番目に記述する DIVISION です。
実行用プログラムが入力として受け取り、操作し、作り出し又は出力として書き出すデータについて記述します。
データ部は COBOL プログラムではオプショナルであり、
(実際にはほぼありませんが)データを宣言し、使用することのない COBOL プログラムでは省略可能です。
現代のプログラミング言語では変数などは必要に応じて都度宣言することができますが、
COBOL プログラムにおいてはプログラム内で取り扱う変数や定数については
全てデータ部で宣言しておいてから使用することになります。
変数や定数といいましたが、COBOL プログラムにおけるデータは以下の3種類があります。
HIGH-VALUES
, LOW-VALUES
などそして、 DATA DIVISION
は以下4つの SECTION
= 節 からなります。
FILE SECTION
WORKING-STORAGE SECTION
LOCAL-STORAGE SECTION
LINKAGE SECTION
DATA DIVISION
では COBOL プログラムにおける変数宣言を用いてデータの定義を行いますが、
ここでは各節の簡単な説明に留めます。
ファイルのレコード構造を定義します。
ENVIRONMENT DIVISION
=環境部で定義したファイルに対し、データ部にてファイルのブロック長やレコード長、
レコードの詳細を記述する節です。ファイルを利用する場合には必須となります。
プログラムで使用される一時変数とファイル構造を宣言します。
WORKING-STORAGE SECTION
と似た節です。
唯一の違いは、プログラムが実行を開始するたびに変数が割り当てられ、初期化されることです。
外部プログラムから受信したデータ名を説明するために使用します。
一番利用されるのはサブルーチンです。
サブルーチンとは、ある特定の処理をパッケージ化して、各プログラム内で共通利用できるプログラムのことです。
呼ばれたプログラムが呼んだプログラムから引数でデータを受け取る内容を記述します。
実務的な COBOL プログラムには単独の COBOL プログラムで完結する処理は少ないため、
利用頻度は高いといえます。
COBOL プログラムの4番目に記述する DIVISION です。
COBOL プログラムの実行は、手続き部の宣言ではない最初の文から始まります。
原則としてCOBOLプログラムに書いてある順序で実行されます。
その順序と異なる場合は、規則として示されます。
手続き部は、次に実行される COBOL ソース・プログラムの先頭の手前、
またはプログラムにおいてこれ以上ステートメントが現れない物理的な位置で実行が終了します。
上記3つのDIVISIONを記述したあとやっとこの DIVISION にて
実行されるプログラムを記述するのが COBOL プログラムです。
現代のプログラミング言語に比べると、随分前置きが長く感じますね。
ここまでの例:
000100****************************
000200* ここはコメント
000300****************************
000400 IDENTIFICATION DIVISION.
000500 PROGRAM-ID. COBOL_SAMPLE01.
000600 AUTHOR. JUNYA KITAYAMA.
000700 DATE-WRITTEN. 12/03/2020.
000800 ENVIRONMENT DIVISION.
000900 CONFIGURATION SECTION.
001000 SOURCE-COMPUTER. IBM-I.
001100 OBJECT-COMPUTER. IBM-I.
001200 SPECIAL-NAMES.
001300 CONSOLE IS CONSL.
001400 WORKING-STORAGE SECTION.
001500 01 HELLO1 PIC X(15).
001600 PROCEDURE DIVISION.
001700 MOVE 'HELLO, WORLD!!!' TO HELLO1.
001800 STOP RUN.
COBOL の具体的な言語記述に関しては、明日以降触れていきましょう。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント