「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ハンガリー記法

pointこの用語のポイント

point変数名とかの付け方だよ

point変数名の最初や最後に目印をつけるよ

point「yenHensuA」や「numHensuA」みたいな書き方だよ

スポンサーリンク

簡単に書くよ

ハンガリー記法(読:ハンガリーキホウ 英:Hungarian notation)とは

「ハンガリアン記法」のこと。
用語の中身としては

「変数名(変数の名前)の最初や最後に目印(接頭辞・接尾辞)を付けることで、変数(プログラミングにおける値を入れておく箱)の意味をつかみやすくして間違いを減らそう!」な表記方法のこと
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として「ハンガリアン記法」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

ハンガリアン記法は「変数名の最初や最後に目印接頭辞接尾辞を付けることで、変数の意味をつかみやすくして間違いを減らそう!」な表記方法です。
例えば

yenHensuA



numHensuA

のような書き方をします。

以上を踏まえて

ハンガリアン記法の別名

が「ハンガリー記法」です。

どうでもいい豆知識ですが、このやり方を考えた人がハンガリー出身だから「ハンガリー記法」と呼ばれているらしいです。
なかなか大雑把な名付け方ですね。

変数には分かりやすい名前を付けるのが基本です。
ちなみに変数は「プログラミング言語における値を入れておく箱」ね。

ハンガリー記法

それでは、どうすれば分かりやすい名前になるでしょうか?
先人は、いろいろ考えました。

そんな、いろいろ考えて生まれた中のひとつがハンガリー記法です。
ハンガリー記法は「おかしい部分が おかしいって分かると いいよね!」なコンセプトで考えられています。

例えば、そうですね。
お客さまに頼まれて、ピヨ太君が経理プログラムを作ったとしましょう。
お客さまの会社は日本とアメリカで事業を展開しています。
それに伴い、扱うお金は円とドルです。

最初、ピヨ太君は以下のような名前の変数を作りました。

・売上_本店
・売上_支部1
・売上_支部2
・経費_本店
・経費_支部1
・経費_支部2


ところがどっこい、扱うお金は円とドルです。
作っている最中で「あれ?これって円?ドル?為替レートって どれに掛ければいいの?」と混乱してしまいました。

ハンガリー記法2

そこでピヨ太君は変数名を以下のように変更しました。

円_売上_本店
ドル_売上_支部1
ドル_売上_支部2
円_経費_本店
ドル_経費_支部1
ドル_経費_支部2


変数名の最初に「円_」「ドル_」の目印を付けたのです。

このように目印を付けておけば、円とドルが区別できます。
「あれ?これって円?ドル?」と迷うことも なくなるでしょう。

ハンガリー記法3

このようにしておくと間違いも見つけやすくなります。

例えば、そうですね。
ピヨ太君が以下の処理を書きました。

売上_全体 = 売上_本店 + 売上_支部1 + 売上_支部2

特に おかしいところは なさそうですよね?

それでは、以下の処理は どうでしょう。

円_売上_全体 = 円_売上_本店 + ドル_売上_支部1 + ドル_売上_支部2

ドルと円が混在しています。
きっと、これは間違いでしょう。
ドルの売上に為替レートを掛けて、円に換算する必要がありそうです。

ここで、2つの処理を見比べてください。

売上_全体 = 売上_本店 + 売上_支部1 + 売上_支部2



円_売上_全体 = 円_売上_本店 + ドル_売上_支部1 + ドル_売上_支部2

も、やっている処理は同じです。
違いは変数名の付け方だけです。

でも、上は一見正しそうに見える(けど実は間違い)なのに対し、下は明らかに間違っているように見えます。

このような「間違っている部分が間違っているって分かりやすくしよう!」がハンガリー記法のコンセプトです。

ハンガリー記法4

もう一例、見てみましょう。

例えば、以下の処理が あったとします。

合計 = 変数1 + 変数2

一見すると、正しく見えますよね?

それでは、今度は どうでしょう。

数字_合計 = 数字_変数1 + 文字_変数2

変数の型を頭にくっつけてみました。

これは明らかに間違った処理ですよね。
数字と文字を足してしまっています。

このような

1.間違いを見つけやすくする目的で
2.変数名の最初や最後に目印を付けることによって
3.変数の中身をより詳しく表現する


書き方がハンガリー記法です。

なお、意味を考えて目印を付ける書き方を「アプリケーションハンガリアン」と言います。
上で例に挙げた「円_」「ドル_」のような付け方がアプリケーションハンガリアンです。

ハンガリー記法5

機械的に変数の型を頭に付ける書き方を「システムハンガリアン」と言います。
上で例に挙げた「数字_」「文字_」のような付け方がシステムハンガリアンです。

ハンガリー記法6

単に「ハンガリー記法」と言った場合は、システムハンガリアンを指していることが多いと思います。
とはいえ、一応、アプリケーションハンガリアンの存在も覚えておいてあげてください。


image piyo2

一言でまとめるよ

まぁ「ハンガリー記法」って単語が出てきたら「変数名(変数の名前)の最初や最後に目印をつける表記法なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像009
書籍画像060

おまけ

■訳してみるよ

「Hungary(ハンガリー)」は国の「ハンガリー」です。
「記法」は日本語ですね。
何となく くっつけると

ハンガリーの記法

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
エンジニアのための生成AI入門 はじめての生成AIアプリ開発からエージェント開発まで
実践サイバーセキュリティ入門講座 現場に残された痕跡からハッカーの攻撃を暴け