頭字語と省略語
「頭字語」は 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