このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

“記号の乱用”を実装すべきかもしれない

最近、名前付けとか階層化された名前とかについてシリアスに考えざるを得ない状況になりました。そもそも、ソフトウェアではなんでこんなにも名前が登場するのでしょう? もちろん、人間はバイト列や整数値による識別には耐えられないので、自然言語に基づく意味的連想を必要とする事情があります。さらに、名前を階層化して小分けにしないと、人間は把握できません。

しかしそれにしても、数学的概念の名前とかだと、名前空間や階層構造で悩むことはそう無いですよね。機械可読な記述や証明だとそうもいかないのですが、人間どうしのコミュニケーションだと、いいかげんな名前の使い方をしてもなんとかなります。

おそらく人間は「用語法/記号法/図示法は、ほんっとうーに方言が多い」や「理解をさまたげるモノ/誤解をまねくモノ、それと対処」に書いた次のような言葉の使用法を受け入れるからでしょう。

  1. バラバラ
  2. ズボラ
  3. その場限り

コンピュータだと言葉(名前)の使い方をちゃんとしないといけないので、やたらに面倒くさくなる、と。名前を使うのは人間のためだけど、コンピュータが相手だと、名前の使用に融通が効かない、ってことですね。

バラバラ/ズボラ/その場限り(よく言えば融通が効く)名前の使い方の例を挙げましょう。例えば、「Mはモノイドである」でだいたい話が通じます。「Mはモノイドである、M = (M, m, e)」だとけっこう律儀なほうです。しかし、この書き方はモノイドの代数構造と台集合に同じ「M」を使っています。mやeが何であるかもまったく示してません。法則性にも言及してません。

さらに、「N = (N, m, e) をもうひとつのモノイドとして」とか平気で書き(or 言い)ます。eが単位元だと了解しているとして、e∈M(このMは台集合)、e∈N なら、e∈(M∪N) のはずですが、実際には「Mのe」と「Nのe」は別物だったりします。そんなのは常識、暗黙の了解なのです。

モノイドに関する概念やら定理を、厳密な論理系のなかで、記号の乱用(Mやeを何種類かの意味で使うようなこと)や省略や暗黙の了解なしで書いたらエライことになります。厳密というのは、バラバラ/ズボラ/その場限りが通じないということです。そして、コンピュータソフトウェアはある意味で厳密だから面倒になるのです。

面倒くさいのが嫌いな僕は、ソフトウェアが使う名前においてもバラバラ/ズボラ/その場限りに出来ないかな、と考えています。記号の乱用は日常的にしているので、認めてほしいなー。