【COBOL勉強法】コンパイルエラーを取り除くためのヒント|学習講座
コンパイルエラーとエラーを取り除くためのヒントとは
そもそもコンパイルエラーとは
COBOL言語で書かれたプログラムをパソコンに入っているWindowsやMacOSが理解できるように変換する処理をコンパイルといいます。具体的には「0」と「1」で記述された機械語にプログラムを変換するのですが、うまく変換できなかった場合をコンパイルエラーと呼んでいます。
コンパイルエラーが発生した場合の動きはコンパイルを行うコンパイラによって変わってきますが、ほとんどがエラー内容とそのエラーが発生した行番号、ファイル名などを画面上に出力します。ただし、エラー内容が何を指しているのかわかり難いため、この内容をいかに理解するかがエラーを取り除く際のポイントになります。
COBOL言語のコンパイルエラーのケースとは
ここからはコンパイルエラーが起きるケースを具体的に取り上げます。特にCOBOL言語初学者の方が陥りやすいミスを取り上げましたので、参考にしていただければと思います。
1.ピリオド忘れ
プログラムの手続きや命令、宣言などの事をステートメントと呼びますが、COBOL言語はこのステートメントの終わりに必ずピリオドをつける必要があります。ピリオドによりステートメントの終わりを認識しますので、つけ忘れがないか注意しましょう。
ただし、IF文、PERFORM文内のステートメントにはピリオドは不要ですので、合わせて注意するようにしましょう。
2.END-IF、END-PERFORM忘れ
IF文、PERFORM文などを記述した際に、終了を表すEND-IF、END-PERFORMを忘れてしまう事があります。特に、条件をいろいろと組み合わせて階層を深くしていくと忘れがちになりますので注意しましょう。
3.変数定義漏れ、スペルミス
COBOL言語は予め使用する変数等は「DATA DIVISION」に定義しておく必要があります。ここに定義されていないものを「PROCEDURE DIVISION」以降に記述してしまうとエラーになります。定義しているつもりでもスペルミス等で認識できない事もありますので合わせて注意しましょう。
4.異なる型への設定
COBOL言語は、数字項目と文字項目などの定義を明確に区別するプログラミング言語です。数字項目に対して、文字項目を設定することはできません。異なる型に対してデータ移送していないか注意しましょう。
COBOL言語のコンパイルエラーの見方とは
先程コンパイルエラーが起きるケースを具体的に取り上げましたが、実際にエラーを発生させてその内容を確認してみましょう。
1.ピリオド忘れ
sample01.cob
コンパイル結果
syntax errorは構文エラーの事です。5:は5行目でエラーが発生している事を意味しています。今回は4行目のDISPLAY文の最後にピリオドが付いていないためステートメントの終わりが認識できず5行目でエラーとなっています。
2.END-IF、END-PERFORM忘れ
sample02.cob
コンパイル結果
16行目でエラーになっており、"END-IF"の指定が足りていないためエラーになっています。
3.変数定義漏れ、スペルミス
sample03.cob
コンパイル結果
12行目でエラーになっており、変数"WK-SUJI1"が「DATA DIVISION」に定義されていないためエラーになっています。
4.異なる型への設定
sample04.cob
実行結果
7行目で数字項目WK-SUJIに文字"あ"を設定しています。コンパイラによってはコンパイル時にエラーになりませんが、実行結果からわかるように予期せぬデータが設定される事になりますので注意しましょう。
複数のコンパイルエラーを取り除くヒントとは
コンパイルエラーのケース、内容ご理解いただけたでしょうか?実践ではこれらのケースが複数複雑に絡み合ってエラーになる事もありますので、そういった場合のエラーの取り除き方をご紹介したいと思います。
・機能単位にコンパイルする
特に新設プログラムを作成する際はコーディング量が多くなるため、コンパイルエラーが起きがちです。まずは必要最低限の機能を作成しコンパイルする、その後作成した機能単位にコンパイルするなど、こまめにコンパイルしてエラーを取り除いていくと、プログラムの確認する範囲も限定されるため効率的にエラーを取り除く事ができます
・正常にコンパイルできるところまで戻る
コンパイルエラーはエラー箇所が特定されるものであれば取り除くのは比較的容易ですが必ずしもそうではありません。その際はどこを具体的に見ればいいか絞り込んでいく事が有効です。コンパイルできるところまで一度立ち戻り、その後追加したプログラムを確認していく事も有効です。
・コンパイル実績があるものを利用する
COBOL言語はある程度処理がパターン化、テンプレート化しやすいプログラムになっています。既にコンパイル実績のあるプログラムをコピーして、そこに機能を追加、修正していく方法も有効です。
いかがでしたでしょうか?コンパイルエラーとその取り除き方について理解いただけたでしょうか?今回ご紹介したのは1つの例です。実践を積む事で徐々にエラーの傾向や対処法についても身についてくると思いますので、いろいろなケースに取り組んでみましょう。またインターネット上にも参考情報はあります。困った時は何か事例がないか探してみるのもいいかと思います。
この記事を読んだ人は、こちらの記事も読んでいます
あなたのCOBOL技術を活かしませんか?
COBOL入門のカテゴリー
1. 優良社員が多数在籍しています
2. 即日派遣、又は請負います
3. 安心価格で請負います
4. 同時、協力会社募集中です
1. 正社員
2. 契約社員
3. 個人事業主
などの 求人情報 が閲覧できます。
目指せ!COBOLダントツ一番企業。
創業当初の話や理念が閲覧できます。
応募条件
※2020年5月31日を以って、締切りました。
18歳~28歳の方。
正社員採用において、北川社長の著書『祈り方が9割』を読んで感想文を事前に提出すると、無条件で最終面接まで進むことができます。
COBOLとは、どのようなプログラミング言語なのか、初心者にもわかりやすく、文法の例をあげて解説してます。
COBOL入門の人気記事
- COBOL言語とは?プログラムの書き方やルールを解説!|基礎ガイド
- 【COBOL言語】条件分岐処理の代名詞「IF文」について知ろう|用語辞典
- COBOL言語の「MOVE文」とは?転記のルールをご紹介します|用語辞典
- COBOL言語の「STRING文」とは?文字連結の基礎知識と注意点|用語辞典
- 多枝分岐ってなに?COBOL言語の「EVALUATE文」を知ろう!|用語辞典
- COBOL言語の「PICTURE句」とは?基本事項を解説します!|用語辞典
- COBOL言語で計算処理をするなら「COMPUTE文」|用語辞典
- COBOL言語の「REDEFINES句」とは?使い方を確認しよう!|用語辞典
- 覚えておけば楽ができる?COBOL言語の「COPY文」の使い方|用語辞典
- COBOL言語の文字列操作のパターンを理解しよう!|基礎ガイド
- COBOL言語の初期化処理に重宝する「INITIALIZE文」とは?|用語辞典
- COBOL言語の「LOW-VALUE」の使い方について理解しよう!|基礎ガイド
- COBOL言語の「OCCURS句」について知ろう!学ぶべき基本とは|用語辞典
- COBOL言語初心者も安心! 難解「CALL文」をスッキリ解決|用語辞典
- COBOL言語の「PERFORM文」とは。実行制御について解説!|用語辞典
- COBOL言語の繰り返し処理のパターンを理解しよう!|基礎ガイド
- COBOL言語の「定数」の種類と使い方について理解しよう!|用語辞典
- COBOLのDBアクセスパターンを学ぼう!「FETCH」|応用ガイド
- COBOL言語の「DISPLAY文」は、ディスプレイ出力の為にある|用語辞典
- COBOL言語の「VARYING句」は便利?使用方法を学びましょう|用語辞典