ずっとblogについて考えつつネットを見ていたら、ハッと閃きました
今まで定義とかオブジェクトと私が呼んでいたものは、数学用語の「命題」でした
wiki等の説明を読む限り、私のイメージと完全に一致します
ソフトウエア、もしくは任意のスコープを一つの公理系としたとき
そのスコープ内にあるものは全て命題として扱うことができます
wikiの内容を超えるところがあるので、もう少し詳細をだします。
そもそも命題とは何かというと、真偽値をもつ明確な文です。
・私の身長は160cm以上である
これは意味的に不明瞭なところがみあたらないので命題
・彼は偉人である
これは偉人の定義が不明瞭なので命題ではない
さて。
ではここで、ほとんど全ての文を命題に変えてしまえる魔法のようなテクニックを紹介しましょう。
それは、「全ての単語の前に<<○○にとっての>>と付け加える」ことです。(より正確に言うなら、それを行った全ての用語の定義も必要。そのスコープ内で一つの用語には一つの定義しかないという前提も必要)
先ほど命題ではない例として出した「彼は偉人である」を命題に変えてみましょう
そのためには誰かが必要なので、A君を出してみます。
・A君にとっての彼はA君にとっての偉人である。
これで命題になりました。
他にもいくつか作ってみましょうか。
「富士山は美しい」は命題ではないが、「A君にとっての富士山はA君にとっての美しいです」は、命題です。
「5000は大きい」は命題ではないが、「A君にとっての5000はA君にとっての大きいです」は命題です
この<<○○にとっての>>と付け加えた上で、その用語を定義する技法を
抽象化と呼びます。・・呼べるはずです。
ありとあらゆる全ての抽象化でこの技法が使われています
映画しかり、小説しかり。人もそうですね。
そして数学でもそうです。
数学では、実は必ず公理系を選択しなければいけません。公理系が選択されていなければ全ての文は命題となりません。
ある公理系Cでは、AはBである。
これは命題です。
(公理系が不明な時、) AはBである。
このように、公理系を選択しない文は、命題ではありません
ソフトウエアを独自の公理系と考えます。公理系という言葉になじみがあまりないので、以後視点と呼びます
ソフトウエア内部にあるものはすべて"そのソフトウエアにとっての○○"です
そのソフトウエアにとっての○○の定義は、プログラムのソースとして全て存在するはずです
だからソフトウエアは、命題という形で全てをあらわすことが可能だと思います
(もし一部例外が出たばあいは、命題として扱えるものだけを対象とする、と変更するかもしれません。まだそこまで考えが固まっていません)