COBOLのデータ定義をきれいに整えるルールとは?ピクチャ句整列の基本を初心者向けに解説
生徒
「COBOLのプログラムって、なんだかカタチがそろってるように見えるんですが、あれはどうしてなんですか?」
先生
「いいところに気がつきましたね。COBOLでは、データの定義を見やすく、そして読みやすくするために、整形ルールというものがあるんです。」
生徒
「整形ルールって何ですか?どんなふうに書けばいいんでしょうか?」
先生
「それでは、COBOLのピクチャ句整列の基本について、一緒に見ていきましょう!」
1. COBOLのデータ定義とは?
COBOL(コボル)というプログラミング言語では、データ定義と呼ばれる「使うデータを最初に説明する作業」がとても大切です。たとえば、名前や年齢、金額などをプログラムで扱うとき、その情報がどういう種類のデータなのか、どれくらいの長さなのかを最初に決めておきます。
これをDATA DIVISION(データ・ディビジョン)で記述し、その中でも特に重要なのがピクチャ句(PICTURE句)です。
2. ピクチャ句(PICTURE句)って何?
ピクチャ句は、データの「見た目の形」を定義する記述です。英語で言うと「PICTURE(ピクチャー)」、つまり「図」や「形」という意味ですね。
たとえば「9999」なら「4桁の数字」、「X(10)」なら「10文字の文字列」を意味します。
例を見てみましょう。
01 USER-NAME PIC X(20).
01 USER-AGE PIC 99.
01 ACCOUNT-BALANCE PIC 9(6)V99.
このように、各データに「名前」「ピクチャ句」がついています。これがデータ定義の基本形です。
3. ピクチャ句の整列ってなに?
COBOLでは、見やすさや読みやすさをとても大切にします。そこで、データ定義を書くときは「そろえて書く」ルールがあるんです。これをピクチャ句整列(ピクチャくせいれつ)といいます。
簡単にいうと、「列をきれいにそろえること」です。具体的には、以下のようなポイントを意識します。
- 項目名(変数名)は同じ位置でそろえる
- PIC(ピクチャ句)も同じ位置でそろえる
- ピリオド(.)の位置もそろえる
整列していない例と、整列している例を比べてみましょう。
4. 整列されていない例と整列された例
まずは整列されていない例から。
01 NAME PIC X(10).
01 AGE PIC 99.
01 BALANCE PIC 9(5)V99.
次に、整列された美しい書き方です。
01 NAME PIC X(10).
01 AGE PIC 99.
01 BALANCE PIC 9(5)V99.
どうでしょうか?整列された方が、ずっと見やすいですよね。COBOLでは、このような整形スタイルを守ることで、誰が見てもすぐに理解できるコードになるんです。
5. スペースの数にルールはある?
COBOLは昔のメインフレームで動いていたため、カラム位置に敏感です。現在では自由度は上がりましたが、可読性のためにスペースの数をそろえる習慣は今も残っています。
たとえば、以下のような間隔で書くのが一般的です(目安です)。
- レベル番号(01、05など):左端(カラム8から)
- 変数名(項目名):レベル番号の後に1〜2スペースあける
- PIC:変数名の後に2スペース以上あける
- ピクチャ内容の後にピリオド(.)
6. 実行結果に影響はある?
整形ルールは、プログラムの動作には関係しません。見た目がそろっていなくても、コンパイルして実行することはできます。
でも、整っていないと他の人が読んだときに意味がわかりにくくなります。会社やチームの中では、「整形ルールを守ること」がマナーとして求められます。
7. 覚えておきたい整形のコツ
- タブは使わず、スペースでそろえる
- ピクチャ句の種類で長さを調整(たとえば9(5)V99ならスペース多めに)
- 似たデータはまとめて定義すると整列しやすい
初心者のうちはスペースをそろえるのが難しいかもしれませんが、エディターの「インデント機能」や「整形機能」を活用すると、きれいにそろえることができます。
8. サンプルプログラムで確認してみよう
次のプログラムは、きれいに整形されたデータ定義と、表示文を使った例です。
IDENTIFICATION DIVISION.
PROGRAM-ID. FORMAT-EXAMPLE.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 USER-NAME PIC X(20).
01 USER-AGE PIC 99.
01 USER-SALARY PIC 9(5)V99.
PROCEDURE DIVISION.
DISPLAY "名前: " USER-NAME.
DISPLAY "年齢: " USER-AGE.
DISPLAY "給与: " USER-SALARY.
STOP RUN.
このように、各データ項目をきちんとそろえて書くことで、誰が見ても「すっきり」「理解しやすい」プログラムになります。