いろいろな意味論 #02 プログラムの意味を決めるものを考える

 

このシリーズの目的は、以下です。

 

同じ「意味論」という名が付きながらも、

文章とプログラムの意味論の間に

大きな違いがある。

その間を埋めるいいやり方がないか、

これを考えたいという動機です。

 

そこで前回は、文章とプログラムの

類似点と違いを考えました。

a16777216.hatenablog.com

 

似ている点としては、直感的には、

短くしようとしすぎると、

意味をなさなくなるということ。

 

階層構造を持っている、

と言い換えても良いかもしれません。

 

つまり、いくつものパーツに分かれていて、

普段は同じパーツに属する箇所の間でしか

影響を与え合わないんだけど、

ときどき、違うパーツに属する箇所と箇所が

影響を及ぼし合ってしまう。

 

文章とプログラムには

こんな共通点がありました。

 

これにもかかわらず、両者の意味論は

お互いにかなり内容が異なっています。

その理由を考え、

ざっくりですが3つの仮説に分解しました。

 

意味が先にあるか、規定が先にあるかが違う。

自然か、人工かが違う。

自由か、自由でないかが違う。

 

しかし、3つ目の仮説については

覆す余地がありそうです。

 

この #02 では、その余地について

より詳しく探求してみます。

 

予告通り、

まずはこの本に基づいていきます。

記号と再帰 新装版: 記号論の形式・プログラムの必然

記号と再帰 新装版: 記号論の形式・プログラムの必然

 

 

 

プログラムの自由度は何に由来するのか

 

プログラムはかなり

ルールで規定されているように見えるので、

プログラムは (自然言語の) 文章と比べて

自由度が小さいのではないか?という

仮説を一度立てました。

 

しかし、変数名やコメントの付け方には

それなりに自由度があります。

なので、

上で立てたこの仮説は覆すことができ、

そこから文章とプログラムの共通部分を

抽出できるかもしれません。

 

・・・結論から言うと、

自由の大きさ自体が近かったとしても、

自由の種類が異なっていると考えられます。

なので、

この切り口から接点を見出そうにも、

手を焼くことになりそうだと分かりました。

 

さて、では、プログラムの自由度は

何に由来するのでしょうか。

 

前述の『記号と再帰 新装版』の 68P のまとめから

明らかになるのは、

プログラムの名前のつけられ方は

ほとんどの場合動的であるということです。

 

つまり、その場限りの単語がつど定義され、

使い終わると単語が捨てられます。

 

このとき、その単語の意味は、

単語がどのようにプログラムに配置されるか

つまり文法や語順によって規定されます。

 

極端に言えば、

単語の名前で意味を決めることができません。

 

これは文章との大きな違いを生むことになります。

 

自然言語の文章では、当然、

単語の名前それ自体が意味を持っています。

あるていどは、

使われ方次第で異なる意味を持つにせよ。

 

一方、コメント欄の自由度も、

「プログラムの」自由度としては

あまり意味をなさない虞があります。

 

同書 25 - 26P では、コメント欄は、

処理の対象にならないことを理由に、

これは単に自然言語に準じるものとして

扱うことにしています。

 

 

さて、いきなりギャップを埋めるための

希望が絶たれてしまいました。

 

しかし、ここは諦めずに

もう少し粘ってみたいところです。

 

プログラムにおける慣習の機能を探る

 

文章の単語の意味は、同書 57P を引きつつも

大雑把に言ってしまえば、

慣習や約束事によって決められています*1

 

「犬」という単語はなんとなく

あの感じの動物に使おうか、といった

暗黙の合意によって成り立っているわけです。

 

プログラムにおいて名前の意味を

最終的に意味を決定するのは、

暗黙の合意ではなく、

プログラム中での記載のされ方です。

 

その意味ではあたかも

慣習が無効であるかのようです。

 

しかしそれでもなお、

慣習は歴然として存在しています。

 

言うまでもないことかもしれませんが、

下記のような記事から確認できますね。

portal.solur.jp

qiita.com

これほどまで慣習が充実しているなら、

言語の意味に対しても

流石に何か作用があるのではないか。

 

ここで、少し前に一度言い切った、

下記を疑ってみましょう。

「最終的に意味を決定するのは、[...]

プログラム中での記載のされ方です。」

 

果たして本当にそうでしょうか。

確かに、

すでに書き終わった完成品のプログラムならば

まさにこれが成立するでしょう。

 

しかし、開発の現場では、

特にトップダウン的に開発する場合、

先に名前をつけて想定される機能を決め、

後から「記載のされ方」を決める場合も

十分起こるのではないでしょうか。

 

特に、変数だけでなく、パーツに相当する

クラスや関数について、想定内容を先に決め、

後からその想定内容に合うように

具体的な記載 (=実装) を書くケースが

現場で多く見られるでしょう。

 

言ってみれば、

パーツの名前が、慣習を通じて、

これから具体的に書かれるであろう内容を

すでに束縛している、とも理解できます。

 

その意味では、

慣習が「記載のされ方」に先立ち、

すでに意味を決定しつつあったとも

言えるでしょう。

 

加えて注目したいのは、

複数人で開発する場合や

ライブラリを使用する場合です。

 

慣習に従って、名前から意味を予想することで

中の「記載のされ方」を詳しく知らなくても

使いこなせる場合が出てくるでしょう。

 

これは、名前から意味を推察するという、

自然言語およびその文章の性質に

かなり近いものではないでしょうか。

ただし、使ったときの動き方が

ほぼ一意に定まっている点に目をつぶれば。

 

さて、この節に入ってから、

しばらく論拠のない自説を進めてきました。

 

何か良い手がかりはないでしょうか。

 

満を持して、日本語の書籍にこだわらず、

学術的な公表物を探してみましょう。

 

少し昔ですが、この

Toward a Programmatic Semantics of Natural Language

という IEEE のシンポジウムの稿は、

なかなか目的に近そうです。

 

手順の文という限定的な局面ではあるものの、

自然言語の文章がプログラムに近しい意味を

含んでいるというのです。

 

アブストラクトの最後では、

人とコンピューターがより自然に会話できるという

可能性について語っており、

なかなか夢と野望が感じられます。

 

大きく言えば、自然言語の側から、

プログラムに近い点を探る内容が

期待されますね。

 

ただし、これを読むだけでは、

上で述べてきたような、

プログラミングの側から自然言語に接近する

論拠が不十分です。

 

より近年ではやや下火なのか、

こうしたワードで論文を探しても

パッと見、ドンドン見つかる感じでは

ありませんでした。

が、なんとか手がかりを見つけたいところです。

 

次回は、上で挙げた論文も参考にしつつも、

より今回考えた観点に近しい論拠を

裏付けとして見つけてきたいと思います。

 

また、そろそろこの辺りで、

圏論による論理学』を参照しつつ、

関数型高階論理やトポスも

適宜参照したいと思います。

 

論理学の視点から、

両者の観点を架橋する助けになるに

違いありません。

 

まとめ

 

今回は、

自然言語の文章とプログラムとを

近しい意味論で取り扱える可能性を

追究するため、

プログラムの自由度について

掘り下げました。

 

結果、書き上がったプログラムについて言えば

その自由度の由来は自然言語の文章とは

大きく異なっていました。

 

しかし、私見から考えるに、

これから書かれていくプログラムは

単語 (の名前) が慣習を通じて意味を決めるという

自然言語の文章に近い性質を持っていそうです。

 

次回は、このことについて

論拠をより集めることを目標にします。

 

 

最後に、単語の使用についてです。

 

また、ここまで「文章」という言葉で

自然言語のことを指していましたが、

書かれつつある最中のプログラムと比較する際

口頭で話される言語なども考慮したいため、

次回以降は「自然言語」という語を

プログラムの対置として用いることにします。

 

ここまでありがとうございました。

 

参考文献

 

記号と再帰 新装版: 記号論の形式・プログラムの必然

記号と再帰 新装版: 記号論の形式・プログラムの必然

 

出版社サイト

 

 

貨幣という謎 金(きん)と日銀券とビットコイン (NHK出版新書)

貨幣という謎 金(きん)と日銀券とビットコイン (NHK出版新書)

  • 作者:西部 忠
  • 出版社/メーカー: NHK出版
  • 発売日: 2014/05/08
  • メディア: 新書
 

 出版社サイト

 

 

portal.solur.jp※ 2020/02/21 最終アクセス

 

 

qiita.com※ 2020/02/21 最終アクセス

 

 

圏論による論理学―高階論理とトポス

圏論による論理学―高階論理とトポス

 

出版社サイト

 

*1:慣習や約束事で決められるのは貨幣とも似ていて興味深いです。「このコインを価値あるものとして交換しよう」という取り決めがコインに集まってくれば、それが貨幣として実際に価値を持って来ます。この話もまた、どこかの機会で掘り下げたいです。