COBOLの変数命名規則を徹底解説!初心者でも迷わない名前付けのポイント
生徒
「COBOLのプログラムで、データを入れる箱に名前を付けたいのですが、何か決まりはありますか?」
先生
「はい、プログラミングではその箱を『変数(へんすう)』と呼び、名前の付け方には『命名規則(めいめいきそく)』という大事なルールがあります。」
生徒
「適当に『HAKO-1』とか付けても動くんですか?」
先生
「動くことは動きますが、後で他の人が見たときに何が入っているか分からなくて困ってしまいます。分かりやすい名前を付けるコツを見ていきましょう!」
1. 変数命名規則とは?
COBOLの変数命名規則とは、プログラムの中で扱うデータ(変数)に名前を付ける際のお約束のことです。変数は、計算結果や顧客の名前などを一時的に入れておく「名札付きの箱」のようなものだと考えてください。
パソコンを触ったことがない方に例えると、「キッチンにある調味料の容器にラベルを貼る作業」に似ています。すべての容器に「中身」とだけ書いてあったら、どれが砂糖でどれが塩か分かりませんよね。「SUGAR(砂糖)」や「SALT(塩)」とはっきり書くことで、誰が見ても間違えずに料理ができるようになります。
プログラミングも同じで、数ヶ月後の自分や、一緒に働く仲間がプログラムを読んだときに、その箱に何が入っているのかが一目で伝わる名前にすることが、良いプログラムの第一歩です。
2. COBOLで使える文字と長さの基本ルール
名前を付ける前に、まずはコンピューターが認めてくれる文字の種類を知っておきましょう。COBOLの標準的なルールでは、以下の文字を使うことができます。
- 英大文字:AからZまで
- 数字:0から9まで
- ハイフン:「-」
注意点として、名前の最初や最後にハイフンを使うことはできません。また、最新の規格では小文字が使えることもありますが、多くの現場では「すべて大文字」で書くのが一般的です。名前の長さは、昔のルールでは30文字以内と決まっていました。長すぎると書くのが大変ですし、短すぎると意味が伝わりません。10文字から20文字くらいで、意味がパッとわかる長さを心がけましょう。
3. 意味が伝わる名前を付けるポイント
良い名前を付ける最大のポイントは、「具体的な意味を持たせること」です。例えば、商品の値段を入れる箱に「A」という名前を付けても、何のことだか分かりません。この場合は「ITEM-PRICE」のように、英単語を組み合わせて名前を作ります。
英単語を繋ぐときは、単語の間にハイフンを入れて区切ります。これを「ケバブケース」と呼ぶこともあります。以下のプログラム例を見てください。箱の名前から、何をしているかが想像できるはずです。
01 CUSTOMER-AGE PIC 9(03) VALUE 25.
01 DISCOUNT-RATE PIC 9(01)V99 VALUE 0.10.
01 FINAL-PRICE PIC 9(07).
PROCEDURE DIVISION.
* 年齢と割引率を使って計算するイメージ
DISPLAY "顧客の年齢は" CUSTOMER-AGE "歳です。"
STOP RUN.
実行結果は以下の通りです。
顧客の年齢は025歳です。
4. 接頭辞を活用して種類を整理する
大規模なプログラムになると、変数の数が数百個に及ぶこともあります。そんな時に便利なのが、名前の頭に特定の文字を付ける接頭辞(せっとうじ)というテクニックです。これを「プレフィックス」とも呼びます。
例えば、画面から入力されるデータには「IN-」、計算して出力するデータには「OUT-」、プログラムの中で一時的に使う作業用のデータには「WK-(ワークの略)」を付けます。こうすることで、名前を見ただけでその変数がどこで使われるものかが一瞬で判断できるようになります。
整理整頓されたクローゼットのように、「仕事用の服は右側」「部屋着は左側」と決めておくのと似ていますね。
5. 数字を扱う変数の命名事例
ここでは、実際の業務システムでよく使われる数字用変数の名前を紹介します。PIC句(ピクチャ句)というデータの形を決める命令と一緒に見てみましょう。
* 合計金額を入れる箱
01 WK-TOTAL-AMOUNT PIC 9(09) VALUE 0.
* 商品の個数を入れる箱
01 WK-ITEM-COUNT PIC 9(04) VALUE 10.
* 消費税率を入れる箱
01 CONST-TAX-RATE PIC 9(01)V99 VALUE 0.10.
PROCEDURE DIVISION.
DISPLAY "個数は" WK-ITEM-COUNT "個です。"
STOP RUN.
実行結果は以下のようになります。
個数は0010個です。
「CONST-」は定数(値が変わらないもの)を表す接頭辞としてよく使われます。こうしたパターンを覚えておくと、読みやすいプログラムが書けるようになります。
6. 文字列を扱う変数の命名事例
名前や住所など、文字を入れる箱の場合は、名前の最後に「-NAME」や「-STR(ストリングの略)」を付けるのが定番です。文字を入れる箱は、COBOLでは「PIC X」という形式で宣言します。
* 社員名を入れる箱
01 EMPLOYEE-NAME PIC X(20) VALUE "田中 太郎".
* 所属部署名を入れる箱
01 DEPT-NAME PIC X(30) VALUE "営業第一部".
PROCEDURE DIVISION.
DISPLAY "所属:" DEPT-NAME
DISPLAY "氏名:" EMPLOYEE-NAME
STOP RUN.
実行結果は以下の通りです。
所属:営業第一部
氏名:田中 太郎
日本語(全角文字)を扱う場合は、箱の大きさを十分に確保しておくことが失敗しないポイントです。
7. 専門用語のやさしい解説
ここまでの説明に出てきた、初心者の方がつまづきやすい言葉を解説します。
- 予約語(よやくご):「IF」「MOVE」「DISPLAY」など、COBOLの命令としてあらかじめ決まっている単語のことです。これらを変数の名前に使うことはできません。
- PIC句(ぴくちゃく):その箱に「数字が何桁入るか」「文字が何文字入るか」を指定するルールです。
- 初期値(しょきち):箱を用意したときに最初に入れておく値のことです。「VALUE」という言葉の後に書きます。
- 可読性(かどくせい):プログラムの「読みやすさ」のことです。良い命名規則は可読性を高めます。
8. やってはいけない!悪い名前の例
逆に、プログラムを読みにくくしてしまう「悪い名前」も知っておきましょう。以下のような名前は避けるべきです。
- 意味がない名前:「DATA-1」「HAKO-A」など。中身が分かりません。
- 似すぎていて紛らわしい名前:「CUSTOMER-NAME-1」と「CUSTOMER-NAME-I」など。見間違いの原因になります。
- ローマ字読みすぎる名前:「URIAGE-KIN-GAKU」など。悪くはありませんが、グローバルな現場では英語(SALES-AMOUNT)が好まれます。
- 予約語と紛らわしい名前:「IF-DATA」などは、コンピューターが命令の「IF」と勘違いしてエラーになることがあります。
初心者のうちは、英語の辞書を片手に「売上」「顧客」「日付」といった基本的な単語を調べて付けるのが一番の練習になります。
9. フラグ変数の命名テクニック
プログラムの中で、「はい(正)」か「いいえ(否)」かの状態だけを記録する箱をフラグと呼びます。例えば、「処理が終わったかどうか」を記録する箱です。この場合、名前の最後に「-FLG」や「-STATUS」を付けると分かりやすくなります。
* 処理終了フラグ(0:未了、1:完了)
01 END-FLG PIC 9(01) VALUE 0.
PROCEDURE DIVISION.
* 処理が終わったときに1を代入するイメージ
MOVE 1 TO END-FLG.
IF END-FLG = 1 THEN
DISPLAY "すべての処理が正常に終了しました。"
END-IF.
STOP RUN.
実行結果は以下の通りです。
すべての処理が正常に終了しました。
「もしEND-FLGが1なら~」と読むことができるので、プログラムの流れが物語のように理解しやすくなりますね。
10. 会社ごとの独自ルールを確認しよう
最後に、もっとも大切なことをお伝えします。多くの場合、会社や開発プロジェクトごとに独自の命名ルールが決まっています。「変数の頭には必ず3文字の部署コードを入れること」や「ハイフンではなくアンダーバーを使うこと」など、現場によって様々です。
自分で新しい名前を考える前に、まずは周りの先輩が書いたプログラムを真似することから始めてみてください。ルールを統一することは、チーム全体の効率を上げること。自分勝手な名付けをせず、共通の「言葉」を使う意識を持つことが、プロのエンジニアへの近道です。