ハンガリアン記法
本来、シモニーの考案したハンガリアン記法とは、変数の意味や使用目的から接頭辞を決定することであり、型では区別できない情報を変数名に付与することで、紛らわしい変数の意味を明白にし混同をさけるためのものであった。たとえば、論理座標とデバイス座標、X軸とY軸、ドルと円などで、これらは単純に型による安全性に頼ることはできない。
マイクロソフトのアプリケーション開発グループで開発されたこの記法は Excel や Word などの開発で成功を収めたため、Windows 開発グループでも採用された。その際、シモニーの論文中の "type" がデータ型のことであると誤って解釈され、変数名にデータ型を表す接頭語や接尾語をつける記法だと誤解された。シモニーの意図していた記法をアプリケーションハンガリアン、誤解に基づく記法をシステムハンガリアンと呼ぶ。Windows APIおよびMFCはほとんどがシステムハンガリアンに従っている。システムハンガリアンは現在批判されることが多く、.NET Frameworkでは使われていない。COMもシステムハンガリアンが伝統的に使われていたが、.NETの登場後に新しく追加されたコンポーネントに関してはシステムハンガリアンを採用しないものが増えている。
ハンガリアン記法に二種類あることはあまり知られておらず、単に「ハンガリアン記法」と言及された場合でも、システムハンガリアンの意味で用いられていることが多い。
ハンガリアン記法(ハンガリアンきほう、英: Hungarian notation)あるいはハンガリー記法(ハンガリーきほう)とは、プログラマがプログラムのソースコードを書く際に変数名やクラス名などの識別子に特別な接頭文字ないし接尾文字をつけることで、他の人がその識別子を見たときに識別子の使用方法・データ型情報・スコープなどが分かるようにするための命名法である。
ハンガリアン記法という名称は考案者チャールズ・シモニーがハンガリー出身であることに由来する。