COBOLの変数名の付け方を解説!初心者でもわかる命名規則とコツ
生徒
「COBOLで変数ってどうやって名前を付けるんですか?ルールはありますか?」
先生
「はい、COBOLでは変数名の付け方にルールがあります。そして、読みやすい名前にすることが大切です。」
生徒
「読みやすいって、どういうことですか?」
先生
「それでは、COBOLの変数命名の基本と、わかりやすい名前を付けるコツを詳しく説明しましょう!」
1. COBOLの変数とは?
プログラミングにおける変数とは、数値や文字などのデータを一時的に入れておくための「名前付きの箱」や「入れ物」のような存在です。COBOLにおいても、計算結果を保持したり、画面から入力された値を管理したりするために欠かせない要素です。
例えば、レジのプログラムを想像してみてください。商品ひとつひとつの「価格」や、最後に計算する「合計金額」などは、その時々で中身が変わりますよね?このように、中身が変化するデータを扱うために、あらかじめ「これは価格を入れる箱ですよ」と名前を付けて用意しておくのが変数です。
ポイント:定義する場所
COBOLでは、変数をどこでも自由に作れるわけではありません。必ずDATA DIVISION(データ部)という、データを定義するための専用の場所で記述する必要があります。
初心者の方向けに、もっともシンプルな変数のイメージをプログラム形式で見てみましょう。
DATA DIVISION.
WORKING-STORAGE SECTION.
* 5桁の数字を入れる「AGE(年齢)」という名前の変数(箱)を定義
01 AGE PIC 9(03).
* 10文字の文字を入れる「USER-NAME(名前)」という名前の変数(箱)を定義
01 USER-NAME PIC X(10).
この例では、AGEという箱には「25」などの数字を、USER-NAMEという箱には「サトウ」といった文字を保存できるようになります。このように、あらかじめ箱の大きさと名前を決めておくことが、COBOLプログラミングの第一歩です。
2. COBOLの変数命名の基本ルール
COBOLで変数(データ項目)の名前を決める際には、コンピューターが正しく理解できるように厳格な命名規則(ルール)が定められています。これに反するとコンパイルエラー(プログラムの実行ができない状態)になるため、基本をしっかり押さえましょう。
守るべき5つの基本ルール
- 使用可能な文字:英大文字(A~Z)、数字(0~9)、ハイフン(-)のみ。
- 文字数の制限:一般的に1文字以上、30文字以内で作成します。
- 開始文字の決まり:名前の先頭は必ず「英文字」で始めなければなりません。
- ハイフンの配置:単語を繋ぐハイフンは便利ですが、先頭や末尾に置くことは禁止されています。
- 予約語の回避:
MOVEやDISPLAYなど、COBOLが元々持っている命令語と同じ名前は使えません。
プログラミング未経験の方でも直感的に理解できるよう、具体的なOK例とNG例をサンプルコード形式で比較してみましょう。
DATA DIVISION.
WORKING-STORAGE SECTION.
* 【OK】正しい命名例
01 CUSTOMER-ID PIC 9(05).
01 ITEM-PRICE PIC 9(08).
* 【NG】ルール違反の例(エラーになります)
* 01 -DATA PIC X(05). <- ハイフンが先頭にある
* 01 100-POINT PIC 9(03). <- 数字から始まっている
* 01 USER NAME PIC X(10). <- スペースが入っている
COBOLはもともと事務処理用に開発された言語であるため、英文を読み上げるような「自然な名前」を付けることが推奨されています。例えば、顧客の名前であればC-NAMEと略すよりも、ルールに従ってCUSTOMER-NAMEとフルスペルで記述する方が、後から見返した時に圧倒的に分かりやすくなります。
有効な名前のバリエーションをいくつか挙げます:
SALES-AMOUNT-2026(英字・ハイフン・数字の組み合わせ)RECEPTION-DATE(業務内容が伝わる名前)MAX-RETRY-COUNT(役割が明確な名前)
3. 可読性(読みやすさ)を意識した名前の付け方
変数名は、プログラムを書くときだけでなく、あとで見直すときにもわかりやすいことが大切です。読みやすい名前をつけることで、バグ(間違い)を見つけやすくなり、他の人にも理解しやすくなります。
以下のようなポイントを意識しましょう:
- 意味のある単語を使う(例:
AGE、PRICE、DATEなど) - 複数の単語はハイフンで区切る(例:
ORDER-NUMBER) - 短すぎる名前は避ける(例:
XやYなど)
例えば、下記のように変数を定義すると読みやすくなります。
01 CUSTOMER-NAME PIC X(30).
01 ORDER-NUMBER PIC 9(5).
01 TOTAL-AMOUNT PIC 9(7)V99.
4. よくある命名ミスとその注意点
初心者がやってしまいやすいミスには、次のようなものがあります。
- ハイフンの使い方のミス:先頭や末尾にハイフンをつけてしまう
- 英小文字を使う:COBOLでは英大文字が基本です
- 意味のない名前:
A1、DATA1など、後で見ても何を意味するのかわからない名前
たとえば、以下のような名前は避けましょう:
-NAME(ハイフンが先頭にある)price(英小文字を使用)D1(意味が不明)
5. 実際のCOBOLプログラムで使ってみよう
それでは、読みやすい変数名を使った簡単なCOBOLプログラムを見てみましょう。
IDENTIFICATION DIVISION.
PROGRAM-ID. NAME-DEMO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CUSTOMER-NAME PIC X(20) VALUE "ヤマダタロウ".
01 TOTAL-AMOUNT PIC 9(5)V99 VALUE 12345.67.
PROCEDURE DIVISION.
DISPLAY "顧客名:" CUSTOMER-NAME
DISPLAY "合計金額:" TOTAL-AMOUNT
STOP RUN.
このプログラムを実行すると、以下のような結果が表示されます。
顧客名:ヤマダタロウ
合計金額:12345.67
6. 命名に役立つヒント集
変数名を考えるときに便利な考え方を紹介します。
- 何を表しているのかをそのまま名前にする
- 日本語を英語に変換して使う(例:「年齢」→
AGE、「金額」→AMOUNT) - 複数の情報を表すときは、それぞれの要素をつなげる(例:「顧客の名前」→
CUSTOMER-NAME)
変数名を英語にするのが難しいと感じたら、簡単な単語から覚えていくと良いでしょう。
まとめ
COBOLの変数名の付け方は、ただルールを守るだけではなく、のちのち読み返したときにすぐ意味が理解できるように工夫することがとても重要です。とくに業務システムでは数多くのデータ項目が存在し、ひとつひとつの変数が何を表しているのかを明確に示す名前にしておくことで、保守作業が格段にやりやすくなります。変数名は、プログラムを長く運用していくうえで品質と作業効率を大きく左右する要素であり、読み手が迷わず理解できるかどうかが成功の鍵になります。
また、COBOLの命名規則では英大文字・数字・ハイフンが基本であり、英小文字や特殊記号を使わないという制約がありますが、その制約の中でも工夫次第でとても整理された名前をつけることができます。たとえば、情報を正確に表す英単語を選んで組み合わせたり、ハイフンを使って単語同士を区切り、視認性を高めたりすることで、一目で役割がわかる変数名になります。とくに業務ロジックが複雑になるほど、変数名はコード全体の理解を助ける重要な役割を果たします。
プログラムの処理内容がわかりやすくなる変数名の付け方として、項目をそのまま英単語に変換し、さらに複数の要素を含む場合は順番を工夫して並べるという方法がよく使われます。顧客番号であれば CUSTOMER-NUMBER、入金金額であれば DEPOSIT-AMOUNT など、意味が明確な形にすることで、読み間違いや理解の齟齬が起こりにくくなります。こうした小さな積み重ねが大規模なプログラムでは大きな違いになり、作業のスピードと正確さに大きく影響します。
また、命名の段階で曖昧な表現を避けるのも大切です。たとえば DATA1 や A といった意味の乏しい名前では、何を表しているのかを読み取ることが難しく、修正作業に余計な時間がかかってしまいます。逆に、役割を明確にした名前に統一しておけば、コード全体の構造も理解しやすくなり、ほかの開発者が加わったときでもスムーズに引き継ぐことができます。
ここでは、読みやすい命名のコツを踏まえつつ、実際のプログラム内でどのように変数を定義すればよいか、再度サンプルを使って整理してみます。
読みやすい変数名を使ったサンプルコード
*> 顧客情報を扱う変数名の例
01 CUSTOMER-NAME PIC X(30).
01 CUSTOMER-ADDRESS PIC X(50).
01 ORDER-AMOUNT PIC 9(7)V99.
01 PAYMENT-STATUS PIC X(10).
*> 変数を使った簡単な処理例
IF PAYMENT-STATUS = "PAID"
DISPLAY "入金済みのお客様です。"
ELSE
DISPLAY "未入金のお客様です。"
END-IF
このように、顧客に関する情報であれば CUSTOMER-〜 と統一したり、金額や区分値に関するものは AMOUNT や STATUS を適切に組み合わせたりすることで、プログラム全体の流れが明確になり、処理の意図も自然と理解しやすくなります。また、帳票番号や商品番号など、業務ごとに登場する固有の情報も、業務単語に基づいて正確な名称にすることが望まれます。名前づけの工夫は、長く使われる基幹システムほど価値を発揮し、ミスを防ぎながら安定した処理を実現する基盤になります。
さらに、変数名を考えるときは「その変数がどんな情報を持つのか」「どの処理で使われるのか」を事前に整理しておくことも重要です。情報の用途があいまいなまま変数を定義してしまうと、後から仕様変更が入ったときに混乱しやすくなります。業務内容と密接に関わる項目を扱うCOBOLでは、こうした命名の基礎がコードの可読性と安全性に直結するため、初心者のうちから丁寧に意識しておくと大きな効果があります。
また、同じ種類の変数を複数持つ場面では、共通の接頭語をつけて分類すると整理がしやすくなります。たとえば売上に関する項目は SALES-〜、請求に関する項目は BILL-〜 といった具合にまとまりを作ると、コードを追っているときにもどのグループに属するデータなのかが一目で判断できます。こうした構造化された命名は、チーム開発においても非常に役立ちます。
命名の工夫がプログラム全体の質を高めることは多くの業務開発者が実感しており、初心者がまず身につけておくべき基本のひとつです。長く運用されるシステムほど、読みやすさと正確な表現をもった変数名が重要になります。今回のテーマで押さえたポイントは、他の処理を作るときにも幅広く応用できる基盤となるはずです。
生徒
「変数名って思っていたより大事なんですね。ただ動けば良いというわけじゃなくて、読みやすさがすごく重要だと感じました。」
先生
「その通りです。変数名はプログラムの理解を助ける大事な手がかりになります。読みやすい名前を付けておけば、あとで見たときにも迷わず理解できますよ。」
生徒
「英大文字やハイフンのルールも覚えました。意味のある英単語を組み合わせることで、どんな情報なのかすぐわかりますね。」
先生
「ええ。COBOLでは業務データを扱うことが多いので、命名の工夫ひとつで可読性が大きく変わります。今日学んだことをこれからのプログラムにもぜひ活かしていきましょう。」