Why was atmark kept off (Re: const volatile)
あまりの follow-up の遅さが議論の妨げになっていたら
ごめんなさい。fj.unix にクロスポストしておきます。
記事 <coojna$meu$1@caraway.media.kyoto-u.ac.jp> で
吉見 隆 (tak-yoshimi@NOSWENrio.odn.ne.jp)さんいはく
> 語ではないのですが、なぜCでは '@' が使われていないのか、というのが前前
> からの疑問です。
>
> * 掛け算、ポインタの参照先記号、コメント記号の一部
> & 論理積とポインタ参照元記号
> とかいろいろと使いまわすのに、なぜか'@'は使われない。
> これって、何か歴史的な事情があったのでしょうか。
'@'は昔の Unix では行削除(kill character---現在の
多くの環境では ^U)として使われていました。このように
端末で特別な意味を持つ文字なので自然に使うのを避けた、
というのが私の想像です。
出荷時の設定で行削除が'@'の Unix は最近でもあるはずで、
「パスワードに'@'を含めても意図どおりのパスワードに
ならないよ」という議論がどこかでありました。確か HP-UX
だった気がしますが、うろおぼえで確認できません。
行削除が'@'だった時代、文字削除は'#'だったと思います。
しかしこの記憶が正しければ、こちらはプリプロセッサへの
指示として使われていますね。このことは私には説明が
できません。プリプロセッサの導入は後の時代だったから
でしょうか?
'@'が行削除だったのはいつごろで、Unix のどのバージョン
であったか、どういう端末に向けてのことだったのか等、
歴史に詳しい方の解説を期待します。
--
渡邊克宏 http://katsu.watanabe.name
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735