The Cusp of Helix

Intact Case [詳細]

頭字語と省略語

「頭字語」は IT 用語で頻繁に使われるもので、複数の単語の頭文字を連結して作られる語の事です。頭字語は、文脈に関係なく大文字だけで表現するのが一般的で、ひとつの単語のように発音されます。ひとつの単語として発音されない場合は「 Initialism 」と区分されますが、本記事では「頭字語の一部」として扱います。

頭字語の例

NATONorth Atlantic Treaty Organization
ASCIIAmerican Standard Code for Information Interchange
NASANational Aeronautics and Space Administration
ASEANAssociation of South-East Asian Nations

Initialism の例

ITInformation Technology
HTMLHyper Text Markup Language
URLUniform Resource Locator
CDCompact Disc

「省略語」は、ひとつまたは複数の単語を省略したものです。一般的な英語では総て大文字で表記します。なお、頭字語は省略語の一部とみなされます。

TVTeleVision
IDIDentity
JPYJaPanese Yen

頭字語も省略語も単語の一種なので、複合語を構成する単語として使われます。 iOS プログラマーなら UIView や NSArray などの表記がおなじみでしょう。

UIUser Interface
NSNEXTSTEP

以下の用語は、プログラム言語で実際に定義されている例です。いずれも頭字語や省略語が含まれています。

NameWordsLanguage
PHPUnitPHP + UnitPHP
IOExceptionIO + ExceptionJava
getUTCDayget + UTC + DayJavascript

頭字語が 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