【COBOL学習|初心者向け】COBOLの基本作法:ピリオド直前の「空白」が招くトラブルを防ぐ

1. なぜ「ピリオドの直前」にこだわらなければならないのか

COBOLの世界に足を踏み入れたばかりの皆さんは、コードを書く際に「ピリオド」の扱いに悩んだことはありませんか?実は、ピリオドの配置ひとつでプログラムが動かなくなったり、意図しない挙動を引き起こしたりすることがあります。特に、ピリオドの直前に「余計な空白」を入れてしまうのは、ベテランでも注意すべき基本的なマナー違反です。この記事では、なぜこのルールが重要なのか、どう書くのが正解なのかを解説します。

2. 基礎知識:COBOLにおける「ピリオド」の役割

COBOLにおいてピリオド(.)は、文の終わりを告げる「終止符」です。コンパイラは、このピリオドを検出することで「あ、ここで一つの命令が終わったな」と判断します。もし、ピリオドの直前に不要な空白があると、コンパイラによっては文の構造を正しくトークン(意味のある最小単位)として切り出せず、予期せぬ構文エラーを発生させることがあります。

3. 実装と解決策

解決策は非常にシンプルです。「命令語の直後からピリオドまで、空白を入れずに詰めて書く」こと、そして「ピリオドの後には必ず1つ以上の空白または改行を入れる」ことです。

良い例: MOVE A TO B.
悪い例: MOVE A TO B .

このように、命令の終了を示すピリオドは、直前の単語にピタリとくっつけるのがCOBOLの鉄則です。

4. サンプルプログラム

以下のコードを参考に、ピリオドの配置を意識してみてください。このままコピーしてコンパイルの練習に使うことができます。

IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE-PERIOD.

PROCEDURE DIVISION.

  • 良い例:ピリオドは命令の直後に配置します

MOVE 10 TO WS-NUM.

  • 悪い例:ピリオドの前に空白があると誤認やエラーの原因になります
  • MOVE 20 TO WS-NUM .

DISPLAY “処理が完了しました。”
GOBACK.

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

現場でよくあるのが、修正時にうっかりピリオドの前にスペースを入れてしまうケースです。特にIF文やPERFORM文などのネストが深いコードでは、ピリオドの位置がロジックの終了範囲を左右するため、たった一つの空白が「思わぬバグ」を生む原因になります。

また、最近のコンパイラは優秀でエラーを許容してくれることもありますが、保守性を考えるとルールを守るのがプロの流儀です。「ピリオドは直前の文字にくっつける」という癖を今のうちからつけておきましょう。これが、将来的に複雑なプログラムを読み解く際、ミスを最小限に抑えるための第一歩となります。

コメント

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