頭字語と省略語
「頭字語」は IT 用語で頻繁に使われるもので、複数の単語の頭文字を連結して作られる語の事です。頭字語は、文脈に関係なく大文字だけで表現するのが一般的で、ひとつの単語のように発音されます。ひとつの単語として発音されない場合は「 Initialism 」と区分されますが、本記事では「頭字語の一部」として扱います。
頭字語の例
NATO | North Atlantic Treaty Organization |
---|---|
ASCII | American Standard Code for Information Interchange |
NASA | National Aeronautics and Space Administration |
ASEAN | Association of South-East Asian Nations |
Initialism の例
IT | Information Technology |
---|---|
HTML | Hyper Text Markup Language |
URL | Uniform Resource Locator |
CD | Compact Disc |
「省略語」は、ひとつまたは複数の単語を省略したものです。一般的な英語では総て大文字で表記します。なお、頭字語は省略語の一部とみなされます。
TV | TeleVision |
---|---|
ID | IDentity |
JPY | JaPanese Yen |
頭字語も省略語も単語の一種なので、複合語を構成する単語として使われます。 iOS プログラマーなら UIView や NSArray などの表記がおなじみでしょう。
UI | User Interface |
---|---|
NS | NEXTSTEP |
以下の用語は、プログラム言語で実際に定義されている例です。いずれも頭字語や省略語が含まれています。
Name | Words | Language |
---|---|---|
PHPUnit | PHP + Unit | PHP |
IOException | IO + Exception | Java |
getUTCDay | get + UTC + Day | Javascript |
頭字語が camelCase や StudlyCaps に含まれる場合、比較的多くのプログラム言語では、頭字語を大文字のままで連結します。
頭字語と省略語の問題
前のページで、 camelCase と snake_case は相互変換できると説明しました。ところが、構成単語に頭字語が含まれていると変換時に不都合が生じます。 camelCase ⇒ snake_case ⇒ camelCase と変換した場合、元の文字列が復元されません。 camelCase と snake_case の間で可逆性が保たれていないと言えます。
- PHPUnit ⇒ php_unit ⇒ PhpUnit
- getUTCDay ⇒ get_utc_day ⇒ getUtcDay
一般的なライブラリには以下のように変換するものもあり、これなら元の camelCase は復元されます。しかし、 snake_case で頭字語が分解されているのは不自然と言えるでしょう。
- PHPUnit ⇒ p_h_p_unit ⇒ PHPUnit
- getUTCDay ⇒ get_u_t_c_day ⇒ getUTCDay
頭字語ひとつだけの複合語
複合語を構成する単語がひとつの場合でも camelCase と snake_case の相互変換できますが、この場合にも頭字語は問題を生じさせます。下の例は、いずれも自然な相互変換ではありません。
- HTML ⇒ html ⇒ Html
- HTML ⇒ h_t_m_l ⇒ HTML