【COBOL学習|初心者向け】COBOLの基本!DATA DIVISIONにおける「節(SECTION)」の正しい並び順

1. 導入:なぜ順序が重要なのか?

COBOLのプログラムを書き始めた初心者が、コンパイルエラーで最初につまずきやすいポイントの一つが「DATA DIVISION(データ部)」の記述順序です。COBOLは非常に厳格な言語であり、特定のセクション(節)は決められた順番で記述しないと、コンパイラがプログラムを正しく解釈できません。この順序を守ることは、ソースコードの可読性を保ち、エラーのないプログラムを作成するための第一歩です。

2. 基礎知識:データ部(DATA DIVISION)の役割

COBOLのプログラムは大きく分けて「環境部」「データ部」「手続き部」で構成されます。その中でもデータ部は、プログラムで扱う「データの入れ物」を定義する場所です。
ここで登場する「SECTION(節)」とは、データの種類ごとに分類するための区切りです。
FILE SECTION:外部ファイルとやり取りするデータを定義する場所
WORKING-STORAGE SECTION:プログラム内で一時的に計算や処理に使う変数を定義する場所
LINKAGE SECTION:別のプログラムから値を受け取ったり、渡したりするデータを定義する場所
これらはコンピュータがメモリを確保する順序と深く関わっているため、勝手な順番で書くことは許されていません。

3. 実装/解決策:正しい順序を守る

プログラムのDATA DIVISION内では、必ず以下の順番で記述してください。

1. FILE SECTION
2. WORKING-STORAGE SECTION
3. LINKAGE SECTION

もし、LINKAGE SECTIONをFILE SECTIONよりも前に書いてしまうと、コンパイラは「データの定義場所が正しくない」と判断し、エラーを発生させます。現場では、この順番をテンプレートとして固定してしまうのが鉄則です。

4. サンプルプログラム

以下は、正しい順序で記述されたプログラムの骨子です。そのままコピーして、自分のプログラムの雛形として活用してください。

IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE01.

DATA DIVISION.

  • 1. ファイル関連の定義(まずはここから)

FILE SECTION.
FD INPUT-FILE.
01 INPUT-RECORD PIC X(80).

  • 2. 作業用変数の定義(次はここ)

WORKING-STORAGE SECTION.
01 WS-COUNTER PIC 9(03) VALUE 0.
01 WS-MESSAGE PIC X(20) VALUE ‘HELLO COBOL’.

  • 3. 呼び出し元との連携用定義(最後はここ)

LINKAGE SECTION.
01 LK-STATUS PIC X(01).

PROCEDURE DIVISION USING LK-STATUS.
DISPLAY WS-MESSAGE.
GOBACK.

5. 応用・注意点:現場でのトラブル回避

現場でよくあるミスとして、「うっかりセクション名を書き忘れる」あるいは「セクション名を間違えて入力する」というものがあります。
特に大規模なプログラムでは、セクションが非常に長くなるため、途中で別のセクションを書き足したくなる衝動に駆られるかもしれません。しかし、DATA DIVISIONの構造は「一度決めたら動かさない」のが基本です。

また、最近のコンパイラでは警告として表示されることもありますが、古いホストコンピュータ環境では致命的なエラーになります。慣れないうちは、必ず「FILE→WORKING→LINKAGE」という順序を指差し確認するようにしましょう。この基本を守るだけで、コンパイルエラーの時間は大幅に短縮されますよ。

コメント

タイトルとURLをコピーしました