COBOLプログラムがどのように組み立てられているか見ていきましょう!
こんにちは!前回は「Hello, world」プログラムを作成し、COBOLプログラムの基本的な形に触れましたね。今回は、COBOLプログラムがどのように構成されているのか、その「骨組み」について詳しく学んでいきましょう。
COBOLプログラムは、大きく4つの部(Division)に分かれています。これはCOBOLの大きな特徴で、それぞれの部が特定の役割を持っています。この構造のおかげで、プログラムが何をするのか、どんなデータを使うのかなどが分かりやすくなっているんです。
4つの部は以下の順番で記述するのが決まりです。
- IDENTIFICATION DIVISION (見出し部)
- ENVIRONMENT DIVISION (環境部)
- DATA DIVISION (データ部)
- PROCEDURE DIVISION (手続き部)
では、それぞれの部がどんな役割を持っているのか、順番に見ていきましょう!
1. IDENTIFICATION DIVISION (見出し部) 🆔
役割: プログラム自身の情報を記述するところです。
- プログラムの名前(
PROGRAM-ID
)は必須です。 - その他、作成者(
AUTHOR
)や作成日(DATE-WRITTEN
)なども記述できます(記述しなくてもOK)。
人間でいうと、自己紹介や名札のような部分ですね。
記述例:
IDENTIFICATION DIVISION.
PROGRAM-ID. MY-FIRST-PROGRAM.
AUTHOR. YOUR-NAME.
DATE-WRITTEN. 2025-03-30.
この部では、プログラムの処理内容ではなく、プログラムそのものを識別するための情報を書きます。次の「Step 2: 基本的な文法とデータ操作」で、PROGRAM-ID
についてさらに詳しく学びます。
2. ENVIRONMENT DIVISION (環境部) 🖥️
役割: プログラムが動作する「環境」に関する情報を記述します。
- どのコンピュータで動かすか (
CONFIGURATION SECTION
) - プログラムで使うファイルの情報 (
INPUT-OUTPUT SECTION
)
プログラムがどのパソコンやシステムで動くのか、どんなファイル(データが保存されているもの)を使うのか、といった外部環境との接続情報を指定します。
最近の環境(例: GnuCOBOLなど)では、簡単なプログラムの場合、この部は省略されたり、最小限の記述で済むことも多いです。
記述例(ファイルを使う場合):
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT IN-FILE ASSIGN TO "input.txt".
この例では、「input.txt」という名前のファイルを使うことを指定しています。ファイル処理については、「Step 4: ファイル処理とデータ入出力」で詳しく学びます。
3. DATA DIVISION (データ部) 💾
役割: プログラムの中で使用する「データ」を定義するところです。
- 変数(データを一時的に入れておく箱)の定義 (
WORKING-STORAGE SECTION
) - ファイルの中のデータ構造の定義 (
FILE SECTION
) - 他のプログラムとのデータの受け渡し部分の定義 (
LINKAGE SECTION
)
COBOLでは、プログラムで使う文字や数字などのデータを、すべてこの部で事前に定義しておく必要があります。どのような種類のデータ(数字、文字など)を、どれくらいの大きさで使うのかをPIC
句(ピクチャー句)などを使って指定します。
記述例:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-MESSAGE PIC X(20) VALUE "Hello from DATA DIVISION!".
01 WS-COUNTER PIC 9(3) VALUE 0.
この例では、WS-MESSAGE
という名前で最大20文字の文字列を入れる場所と、WS-COUNTER
という名前で最大3桁の数字を入れる場所を用意しています。データの定義方法(特にPIC
句)は、「Step 2: 基本的な文法とデータ操作」で詳しく学びます。
4. PROCEDURE DIVISION (手続き部) ⚙️
役割: プログラムの具体的な処理手順、つまり「何をするか」を記述するところです。
- 計算処理 (足し算、引き算など)
- データの移動や加工
- 条件による処理の分岐
- 繰り返し処理
- 画面への表示やファイルへの書き込みなど
ここがプログラムの心臓部で、実際の命令を順番に書いていきます。DATA DIVISION
で定義したデータを使って、様々な処理を行います。
記述例:
PROCEDURE DIVISION.
MAIN-PROCEDURE.
DISPLAY "This is PROCEDURE DIVISION.".
MOVE "World" TO WS-TARGET-AREA. *> WS-TARGET-AREAはDATA DIVISIONで定義されている想定
ADD 1 TO WS-COUNTER. *> WS-COUNTERもDATA DIVISIONで定義されている想定
DISPLAY "Counter: " WS-COUNTER.
STOP RUN.
この例では、メッセージを表示したり、データを移動したり、カウンターに1を足したりしています。最後のSTOP RUN.
でプログラムの実行を終了します。具体的な命令(文)については、「Step 3: 制御構文と演算処理」以降で詳しく学んでいきます。
まとめ
今回はCOBOLプログラムの基本的な構造である4つのDivision(部)について学びました。
Division | 役割 | 主な内容 |
---|---|---|
IDENTIFICATION DIVISION | プログラムの識別 | プログラム名 (PROGRAM-ID)、作成者など |
ENVIRONMENT DIVISION | 実行環境の設定 | 使用するコンピュータ、ファイルなど |
DATA DIVISION | データの定義 | 変数、ファイルレコード、定数など |
PROCEDURE DIVISION | 処理手順の記述 | 計算、分岐、繰り返し、入出力などの命令 |
このように、COBOLでは役割ごとに記述する場所が決まっています。この構造を理解することが、COBOLプログラミングの第一歩です。
次回からは、いよいよ「Step 2: 基本的な文法とデータ操作」に入り、それぞれのDivision、特にIDENTIFICATION
, DATA
, PROCEDURE
の各部について、より具体的な書き方を学んでいきます。お楽しみに!😊
参考情報
-
GnuCOBOL Programmer’s Guide: GnuCOBOL(OpenCOBOL)の公式ドキュメントです。詳細な文法や構造について確認できます。(英語)
https://gnucobol.sourceforge.io/doc/gnucobol.html#Structure-of-a-COBOL-Program -
COBOL – Wikipedia: COBOLの概要や歴史、基本的な構造について解説されています。
https://ja.wikipedia.org/wiki/COBOL#COBOLプログラムの基本構造
コメント