“~”(チルダ)は、ASCIIコードの記号類の中でも、比較的利用頻度が低い文字だ。利用頻度が低いので、デストラクタを表す文字や、短縮ファイル名、テンポラリファイル名などに使われることがある。利用頻度が低いので衝突する可能性が低いからだ。コンピュータ言語の中では、ビット否定(補数)や正規表現比較などの演算子で使われることが多いが、PowerShellのようにチルダを演算子につかわない言語も少なくない。
初期のASCIIコード(X3.64-1963。写真01)には、チルダは含まれておらず、EU圏などからの要望で、アクセント記号を導入するときに入った(X3.4-1968。写真02)。当時は、コンピュータや通信の文字出力装置は、プリンタであり、バックスペースを挟むことで「重ね打ち」が可能で、こうしたアクセント記号が文字としてASCIIコードに登録された。そもそも「チルダ」という名称は、アクセント記号としての名称である。
しかし、CRTを使うグラスターミナルでは、重ね打ちは不可能で、アクセント付きの文字フォントを用意する必要がある。なので、結局、アクセント付き文字にコードを割り当てた各国用の文字コード体系が使われるに至った。
そうなると、ASCIIコードに入った、チルダなどのアクセント記号は、使い道がなくなってしまった。しかし、波打った横線は、手書き文字の時代から使われており、さまざまな用途がある。文字コードになるときには、名称や形がある程度確定するが、手書き文字の時代、用法が異なる非常似よく似た文字に同じ名前を付けるかどうかは、慣習的なものである。たとえば、チルダと波形ダッシュなどである。つまり、見た目には「チルダ」のようでも、チルダとは限らないわけだ。しかし、これまでチルダのような文字を使ってきた用途にチルダを使うことで、同じ意味を伝達可能になる。
ユニコードでは、意味的に異なれば、形が似ていても別のコードを割り当てるが、文字コードが7/8 bitだった時代、テキストでは1つの文字に複数の意味を持たせて、それぞれのコンテキストで使うことは多くあった。
チルダ文字には、数値の前に置き「およそ」、「前後」など近似値を示す使い方がある。「~$100」で100ドル前後という意味を表す。また、数学などでは論理否定記号として使われることがある。「~X」で「Xではない」という意味を持つ。
日本国内では、チルダに似た文字として「波ダッシュ」“~”が使われている。これは、数値の範囲を示す記号として使われることが多い。このため、チルダも数値範囲を示す使い方がある。
こうした使い方があるため、本来のアクセント記号としては使われなくても、文字としての用途が残った。また、コンピュータ言語では、ASCIIの記号文字を演算子などとして利用するようになった。
ASCII文字を前提にしたC言語では、2の補数(ビット単位の否定)としてチルダを使う。しかし、最も有名なチルダの利用法は、bashにおけるホームディレクトリ表記(チルダ展開)だろう(表01)。これは、BSD版UNIXに搭載されたCシェル(csh)に最初に搭載された。
チルダ展開を使うと、ホームディレクトリだけでなく、pushd/popdを使ったディレクトリスタックの利用で、過去に訪れたディレクトリを参照可能になる。こうしたディレクトリ移動は、一連の作業の中で行われ、あとで戻ってくることが想定されたディレクトリであり、そこに処理対象のファイルなどがある可能性は高い。
なぜホームディレクトリを表すのにチルダを使ったのか? これは、cshを開発したビル・ジョイが使っていたADM-3Aでは、チルダキーにHome移動コード(カーソルが画面の左上のホームポジションに戻る)が、割り当てられていたからだと言われている。ビル・ジョイは、ADM-3Aのカーソル移動コードが割り当てられていたH、J、K、Lをviのカーソル移動キーに割り当てた。おなじようにHome機能があるチルダにホームディレクトリの意味を持たせた。
今回のタイトルネタは、いまや任天堂のゲーム機には欠かせないゲームである「ゼルダの伝説」である。ファミコンのゼルダの伝説はゲームでしかなかったが、スーパーファミコンの「ゼルダの伝説 神々のトライフォース」は、そのグラフィックスと合わせて物語性が高かった。国産RPGが手本とした「ウルティマ」や「ウィザードリー」といったコンピュータゲームにも、設定があり、ゲームとしてのストーリーはある。しかし、物語を感じさせる程ではなかった。国産RPGが、師匠たるゲームを乗り越えた瞬間を見たような気がした。