COBOL言語のコンパイルエラーの対応について理解しよう!|基礎ガイド

COBOL(コボル)言語のコンパイルエラーへの対応とは

礎-COMPILE-ERROR-イメージ

COBOL(コボル)言語のコンパイルエラーの対応とは?

コンパイルエラーの原因は、通常プログラムの構文エラー、変数の未定義、ライブラリの不足、コンパイラのバージョンの違いなどが考えられます。COBOL言語ではDIVISIONごとにプログラムが分かれていますが、それぞれのDIVISIONに対して以下のような原因が考えられます。これらに注意しながらコーディングすることで、よく出るエラーと警告について抑止することができます。

見出し部:プログラム名や段落のルール、小文字大文字など名前が解決できないなど

環境部:予約語のスペルミスなど

データ部:プログラム領域外の記述、VALUE句の設定、条件名、OCCURS句の記述方法

手続き部:ピリオドの不足

コンパイルエラー例:

基礎-コンパイルエラーの対応プログラム1-仕様例

コンパイル結果:

基礎-コンパイルエラーの対応プログラム1-実行結果

このプログラムは変数名の定義と違う名前を実行文に記載しているため11行目~14行目までエラーが出ています。11、12行目についてはMOVE文の使い方も違っています。また変数で定義した桁数以上の文字列を移送しようとしています。コンパイル結果からではわからないエラーも含まれることに注目してみましょう。

COBOL(コボル)言語のコンパイルエラーの対応における基本事項について

1.相当数のエラーが発生している場合、データ部のデータ項目に誤りがある可能性があります。

2.エラーメッセージは最後のメッセージから確認せず、先頭から確認するようにしましょう。

最後の方のエラーは先頭からのエラーが原因で起きている可能性があるためです。

3.エラーは複数混入している可能性がありますが、1つ1つ修正して確認することが解決の近道です。

4.COBOL言語に対応した専用エディタもあります。

予約語が色付けされたり、プログラミングの候補を出してくれたり、タイプミスを防いでくれる機能が備わっているためコンパイルエラーの対応に有効です。

COBOL(コボル)言語のコンパイルエラーの対応における注意点

コンパイルエラーの対応を効率的に行うためには、コーディングの仕方から工夫するようにしましょう。例えば条件分岐を行うプログラミングがありますが、階層の深い記述をしてしまうとどこに問題が起きているか確認に時間がかかってしまいます。なるべく見やすくわかりやすいコーディングを心がけましょう。

また既にテスト済のプログラムを流用することや、予め処理のテンプレートを作成しておくとさらにエラーをなくせます。コンパイルエラーが発生しないような対応についても検討するようにしましょう。

COBOL(コボル)プログラムのコンパイルエラーの対応(応用編)

最後に良く間違えやすい事例とコンパイルエラー箇所についてご説明します。サンプルプログラムはIF文のコンパイルエラー例になります。コンパイラは10行目に余計なピリオドがついているためここでIF文は終了と判断されます。次の11行目のELSE文は文の先頭とみなされますが、ELSE文が実行文ではないため、コンパイル時にはここがエラー行として出力されることになります。その次の12行目のCONTINUEについては実行文となるため正常に処理されます。

次に10行目のピリオドを取ります。12行目のCONTINUE文のピリオドでIF文終了と判断されます。そのため今度は13行目のEND-IF文が文の先頭とみなされますが、END-IF文が実行文ではないため、コンパイルエラー行として出力されることになります。コンパイルエラーは最初から全てのエラーが出力されるわけではありませんので、このように原因を1つ1つ確認して対応することが重要になります。

サンプルプログラム:

  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. ERROR_SAMPLE2.
  3. ENVIRONMENT DIVISION.
  4. DATA DIVISION.
  5. WORKING-STORAGE SECTION.
  6. 01 WK-HIKAKU PIC X(4) VALUE "2025".
  7. PROCEDURE DIVISION.
  8.  IF WK-HIKAKU = "2025"
  9.  THEN
  10.   DISPLAY WK-HIKAKU.
  11.  ELSE
  12.   CONTINUE.
  13.  END-IF.
  14. STOP RUN.

コンパイル結果(初回):

基礎-コンパイルエラーの対応プログラム2(初回)-実行結果

コンパイル結果(11行目修正後):

基礎-コンパイルエラーの対応プログラム2(修正後)-実行結果

今回はCOBOL言語のコンパイルエラーの対応についてご紹介しました。COBOL言語に限らずコンパイルエラーはプログラミングする際に必ず経験する事です。今回ご紹介したコンパイルエラーと対応は一例です。いろいろなエラーへの対応を経験する事により傾向と対策の理解は進むと思いますので、ご自身でいろいろなエラーの対応を進めてみましょう。

この記事を読んだ人は、こちらの記事も読んでいます

【未経験者歓迎】COBOLプログラマー・システムエンジニアの募集

株式会社COBOLの求人・転職・募集情報を見る

COBOL入門のカテゴリー

取引企業様 募集中
COBOL技術者 募集
COBOL魂
読者採用
COBOL入門