COBOLとは
COBOLは、事務処理や大量のデータ処理を意識して設計されたプログラミング言語です。英語に近い命令名と、データの項目・桁数を明示する定義が特徴です。
この講座では、ブラウザ上で実行するのではなく、GnuCOBOLをインストールして、.cobファイルをコンパイルして実行する流れを使います。COBOLは処理系によって書式や拡張機能に差があるため、ページ内の例はGnuCOBOL 3.2系とフリーフォーマットを前提にしています。
まず「どのデータを定義し、どの順番で読み、どの条件で処理し、何を出力するか」を追います。キーワードを丸暗記するより、データの流れを図にすると理解しやすくなります。
学習の流れ
最初に短い表示プログラムを動かし、次に4つのDivision、データ定義、計算、分岐、繰り返しへ進みます。その後、表データとファイルを扱い、最後に段落とサブプログラムを使って処理を分割します。
データを定義する
↓
データを読み込む
↓
条件を判断して計算する
↓
結果を表示・ファイルへ出力する各ページでは、コードを写すだけで終わらないように、実行結果、値の変化、よくある間違い、入力値を変える練習を掲載しています。COBOLの命令は大文字で書かれることが多いですが、GnuCOBOLでは小文字でも実行できます。
データを定義する
COBOLでは、DATA DIVISIONのWORKING-STORAGE SECTIONなどに、データ名と桁数・種類を定義します。文字列の長さや数値の桁を先に決めるため、入力と出力のレイアウトを意識できます。
01 QUANTITY PIC 9(3) VALUE 4.
01 PRICE PIC 9(5) VALUE 1200.
01 TOTAL PIC 9(8).
COMPUTE TOTAL = QUANTITY * PRICE
DISPLAY "合計: " TOTAL合計: 00004800詳しいPIC句、MOVE、算術命令、文字列の定義はデータ定義と計算で扱います。先に桁数を決めることが、COBOLのコードを読む第一歩です。
ファイルを処理する
COBOLの実務的な処理では、ファイルを定義して、開き、1レコードずつ読み、終了条件を確認し、閉じます。ファイル入出力では、GnuCOBOLで扱いやすい行順編成ファイルを使った例を掲載しています。
例題では、まずsales.txtのような短いテキストファイルを作ります。データを1行増やし、合計や件数が変わることまで確認すると、READの動きが理解しやすくなります。
練習して定着させる
COBOLでは、同じ命令でもデータ定義やファイルレイアウトによって結果が変わります。COBOL練習問題では、表示、合計、成績判定、表検索、ファイル集計、入力検証の課題を用意しています。
解答を見る前に、変数の初期値、処理の繰り返し回数、条件が成立するタイミングを紙に書いてみましょう。実行結果と予想が違ったときに、どの値が変わったかを調べる習慣が身につきます。
公式資料でさらに深く学ぶ
GnuCOBOLの公式ガイドには、言語の構文・意味・使い方をまとめたProgrammer's Guide、短く調べるためのQuick Reference、サンプルプログラム集があります。この講座は初学者向けに順序と実行例を補うもので、詳細な仕様を確認するときは公式資料を参照してください。
