【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言語で計算処理をするなら「COMPUTE文」|入門用語辞典
- COBOL言語の「ACCEPT文」の使い方を分かり易く解説|入門用語辞典
- COBOL言語初心者も安心! 難解「CALL文」をスッキリ解決|入門用語辞典
- 徹底解説!一歩先を行くCOBOL言語のCOPY文活用法|応用ガイド
- 一歩先を行くCOBOL言語の表操作!逐次検索と二分検索|応用ガイド
- COBOL言語の加算処理の基本を伝授! 命令文「ADD」とは?|入門用語辞典
- 徹底解説!一歩先を行くCOBOL言語のファイル併合処理|応用ガイド
- COBOL言語でファイルの開閉命令はOPEN文とCLOSE文!|入門用語辞典
- 徹底解説!一歩先を行くCOBOL言語のデータ共有|応用ガイド
- COBOL言語とは?プログラムの書き方やルールを解説!|基礎ガイド
- COBOL言語の歴史とこれまでの進化を知る!廃止・追加機能|基礎ガイド
- COBOL言語のオブジェクト指向について理解しよう!|基礎ガイド
- COBOL言語のディスプレイ出力とコンソール入力について|基礎ガイド
- COBOL言語が得意とする計算処理を体験してみよう!|基礎ガイド
- 一歩先を行くCOBOL言語のユーザ定義関数について|応用ガイド
- 初心者から中級者でも安心!理解できるCOBOL言語の勉強法|学習講座
- 初心者必見!COBOL言語を効率よくマスターする勉強法とは|学習講座
- COBOL初心者が犯しやすいミスとその対策について|学習講座
- COBOL初心者がやってはいけない勉強方法とは?|学習講座
- 一歩先へ行くCOBOLプログラマの知っておくべき4つのヒント|学習講座