はじめに
【COBOL(Common Business Oriented Language) = コボル】とは
主にメインフレームという大型の汎用機や、
一部WEB系システムで使用されているプログラム言語です。
このメモは、COBOLの基本的な記載方法のまとめです。
①COBOLプログラムの構成
以下の4部(DIVISION)
1・・・ 見出し部(IDENTIFICATION DIVISION)
COBOLプログラムの識別情報を記載する。
2・・・ 環境部 (ENVIRONMENT DIVISION)
COBOLプログラムが動作する際の性質を記載
3・・・ データ部(DATA DIVISION)
COBOLプログラムが使用するデータについてを記載
4・・・ 手続き部(PROCEDURE DIVISION)
COBOLプログラムの処理の内容を記載
※
以下のサンプルでは、記載しておりませんが、
COBOLでは、開始位置が先頭1文字目~6文字目を一連番号領域と言い、行の番号を記載します。
1・・・ 見出し部(IDENTIFICATION DIVISION)
**********************************************************************
IDENTIFICATION DIVISION.
**********************************************************************
PROGRAM-ID. TESTPRGM. ここにプログラム名
*
※
なお、節を記載する場所と節の次の段落を記載する場所も、
開始位置が先頭から8文字目~11文字目までである必要があります。
さらに、段落の内容は、開始位置が先頭から12文字目~72文字目までに記載する必要があります。
2・・・ 環境部(ENVIRONMENT DIVISION)
環境部は、さらに以下の2節(SECTION)から構成される。
構成節 (CONFIGURATION SECTION)
入出力節 (INPUT-OUTPUT SECTION)
**************************************************************************
ENVIRONMENT DIVISION.
**************************************************************************
*
*
CONFIGURATION SECTION.
SOURCE-COMPUTER. MYCOMPUTER. ここに翻訳するコンピュータ名
OBJECT-COMPUTER. MYCOMPUTER. ここに実行するコンピュータ名
SPECIAL-NAMES. ここは特殊名段落 (以下は使用するときの例)
ENVIRONMENT-NAME IS ENVNAM. 環境変数へのアクセスとかの内容
*
*
INPUT-OUTPUT SECTION.
FILE-CONTROL. ここはファイル管理段落
SELECT IN-FILE ASSIGN TO "text01.txt"
ORGANIZATION IS LINE SEQUENTIAL.
SELECT OUT-FILE ASSIGN TO "text02.txt"
ORGANIZATION IS SEQUENTIAL.
*
3・・・ データ部(DATA DIVISION)
データ部は、さらに以下の5節(SECTION)から構成される。
ファイル節 (FILE SECTION)
作業場所節 (WORKING-STORAGE SECTION)
通信節 (LINKAGE SECTION)
連絡節 (COMMUNICATION SECTION)
レポート節 (REPORT SECTION)
**************************************************************************
DATA DIVISION.
**************************************************************************
FILE SECTION. ここにファイルのレコードレイアウトを記述
FD IN-FILE.
01 IN-FILE-R.
03 IN-FILE-REC PIC X(80).
FD OUT-FILE.
01 OUT-FILE-R.
03 OUT-FILE-REC PIC X(80).
WORKING-STORAGE SECTION. ここに静的にメモリ領域に確保する変数を記述
01 WK-AREA.
03 END-FLG PIC X(3).
03 WK-COUNT PIC 9(2).
LINKAGE SECTION. ここにプログラム間でデータを受け渡す際の変数を記述
COMMUNICATION SECTION. ここに画面の入出力に必要な情報を記述
REPORT SECTION. ここに帳票フォーマットを定義情報を記述
*
4・・・ 手続き部(PROCEDURE DIVISION)
**************************************************************************
PROCEDURE DIVISION.
**************************************************************************
*
* 各種処理の呼び出し
*
000-CONTTOLLER-S.
PERFORM 100-START-S THRU 100-START-E.
* >開始前処理を実行する。
*
PERFORM 200-MAIN-S THRU 200-MAIN-E.
* >主処理を実行する。
*
PERFORM 300-END-S THRU 300-END-E.
* >終了後処理を実行する。
STOP RUN.
000-CONTTOLLER-S.
*
**************************************************************************
*100-開始前処理
**************************************************************************
100-START-S.
START-PROC SECTION.
*
*初期化
INITIALIZE WK-AREA.
*
*ファイルオープン
OPEN INPUT IN-FILE.
OPEN OUTPUT OUT-FILE.
*
100-START-E.
*
*
**************************************************************************
*200-主処理
**************************************************************************
200-MAIN-S.
*
*メイン処理
PERFORM UNTIL END-FLG = "END" OR WK-COUNT > 99
READ IN-FILE
AT END
MOVE "END" TO END-FLG
NOT AT END
MOVE IN-FILE-REC TO OUT-FILE-REC
WRITE OUT-REC
ADD 1 TO WK-COUNT
END-READ
END-PERFORM.
*
200-MAIN-E.
*
*
**************************************************************************
*300-終了後処理
**************************************************************************
300-END-S.
*
*ファイルクローズ
CLOSE IN-FILE.
CLOSE OUT-FILE.
*
300-END-E.
*
*
次回:COBOL記載方法まとめ 【初心者編】2
https://qiita.com/nano357/items/b5b4a030424fcaf9a278
参考文献
COBOL関連情報サイト様
http://www.kitagawa-hanga.com/se/index.html
https://www.shakaijintanaka.com/comp-cobol/
謝辞:「いかなる組織体も、自由な教育用説明書その他の目的でCOBOL 報告書とその仕様との一部または全部を複製し、また報告書の着想を利用してかまわない。 ただし、その文書の序文の一部にこの部分を掲載されたい。
書評などで短い文章を引用するときは出所についての謝辞にCOBOLの名称をあげれば全文をかかげる必要はない。
COBOLは産業界の言語であって、いかなる会社、会社団体、組織、組織団体の所有物ではない。各寄与者、COBOL委員会とも、 プログラミングシステムと言語の正確性や機能について、いかなる保証も与えない。またこれに関する事項についていかなる責任も負わない。
COBOL 保全の手続きははっきりしている。変更を提案する手続きについての照会はデータ組織言語会議の理事会にあてられたい。
ここで利用した以下の資料すなわち、
FLOW-MATIC(スペリーランド社の商標)
Programming for UNIVAC(R) Ⅰ and Ⅱ
Data Automation Systems
スペリーランド社、1958年,1959年版権;
IBM Commercial Translator
No.F28-8013
IBM社、1959年版権;
FACT
DSI27 A 5260-2760
ミネアポリス・ハネウエル社、1960年版権;
この著者、版権者はCOBOL 仕様書に一部または全部を利用することを許可した。このことはプログラミング説明書や類似の出版物にCOBOL 仕様書を複製、利用する場合にも適用される。」
ここで、本解説書およびCOBOL 処理プログラムの作成者とそれの使用者は、CODASYL COBOL委員会と各寄与者の努力と成果を高く評価するとともに感謝の意を表すものであります。