コンテンツへスキップ

オブジェクト指向の哲学(その1)

このブログの日記カテゴリー社会と哲学で、デカルトからサールに至る哲学的考察を続けてきましたが、このあたりでまとめておきたいと思います。

結論から言いますと、デカルトは心身二元論者などではなく、今日の哲学の向かうべき先の領域に到達していたのではないか、というのが私の感想です。なお、ここに記しますものは、私なりのデカルトの哲学に対する「拡大」解釈です。だから、デカルトはそんなことを言っていない、という反論は却下、です。

同じ文章はエキサイトのブログにもおきましたので、まとめて読みたい場合はそちらをお読みください。

それでは、本文をどうぞ。


                     オブジェクト指向の哲学
1. デカルトから

1.1. 主観と客観

この考察は、デカルトの哲学を下敷きとしているが、主観(コギト)に頼るだけではなく、他者と共有される概念の形成を目指して行われている。

そもそもデカルトのコギトにしたところで、デカルト一人が納得できる主観的概念として考えられているはずはなく、それを書物にし、出版しているということは、とりもなおさず他者との概念の共有を目指して行われたはずである。

他者と共有される主観を、現象学者は「間主観性」と呼んでいるが、日常的感覚では「客観」という言葉に近い意味をもつ。

一般的に、「客観」という言葉は、人の主観と無関係に普遍的に存在する事物を指す用語として用いられているが、人の主観と独立に存在する事物の概念を人は持ちえず、人の主観に捉えられて、事物は初めて人の意識に現れる。その概念が他者と共有できるとき、ないし、共有しうるものとの確信が持てるとき、人は「客観的」という言葉を用いる。

すなわち、客観という言葉は、日常の理解の上では、現象学者の言う「間主観性」に近い概念であり、人の主観とは独立の普遍的存在として定義される「客観」とは、純粋理念的にのみ意味をもつ、実用上はあまり意味を持たない用語法であるといえよう。

この考察では、「客観」という言葉は、誤解を避けるため、なるべく使用しないようにする。ただし、日常的に使用される客観という語の意味は、共有される主観の意味である、ということをここでは指摘しておきたい。

1,2. 物理的に実在するものと概念

われわれが「xxが存在する」というときのxxは、全て概念である。

もちろん、具体的な事物xxについて、xxが確かに存在する、というとき、われわれの知覚は、そこに物理的な広がりをもった物体の存在をたしかに捉えている。しかし、空間に広がる事物の特定の部分を切り出して、それをxxと呼ぶのは人間精神のなせる業である。

われわれは、物理的実在の、特定のパターンを持つある部分、に対してxxなる概念をあてはめ、そこにxxが存在している、と認識している。すなわちxxの存在は、それに対応する物理的な存在があるものの、「xx」という概念は人の精神に属し、概念自体が物理的に実在するわけではない。

真の物理的存在とは、空間に分布するエネルギー粒子だけであり、人はその広がりの特定の部分に対して、さまざまな概念をあてはめ、その概念に対応する物理的事物が存在することをもって、それが実在する、というのである。

ここで、真の物理的存在は空間に分布するエネルギー粒子である、と書いたが、空間にせよ、エネルギー粒子にせよ、人の概念であって、物理的存在それ自体は、名前のない、ただそこにあるだけの存在である。

1.3 さまざまな概念

概念にはさまざまな種類がある。

第一に、物理的な広がりの一部に対応することができる概念(物理的事物の概念)がある。第二に、一般概念とも呼ぶべき、種類に対応する概念がある。

物理的事物に対応する概念は、例えば特定の林檎を指す。これに対して、一般的な林檎という概念があり、林檎の持つさまざまな性質や利用方法が一般概念に結びついている。

一般概念は、さまざまな構造をもつことができる。構造の一つは、概念的な包含関係であり、林檎は果実の一種であり、食材の一種でもある。また、林檎を更に分類して、紅玉などと呼ぶこともあるだろう。構造のもう一つは、部分としての包含関係であり、林檎は林檎の実の部分、皮の部分、種、などから成る。

第三の概念は、性質の種類を示す概念であり、第四の概念は性質の種類に対応する個々の状態に対応する概念である。例えば、色は光のスペクトルに対する概念であり、個々の物体は、赤、青、緑などの色の状態を示す。

第五に操作や動きにかかわる概念があり、言語で動詞に対応する概念である。

第六に、抽象的な論理にかかわる概念があり、この考察に書かれている事柄の多くも抽象的な概念である。

第七に、論理を超えた概念があるものと私は考えているが、この概念を説明することは難しい。

ここでは、概念の種類を分類することが目的ではなく、概念が必ずしも物理的存在に対応するものではないことをご理解いただくために、各種の例について説明した次第である。

1.4 他者と主観

人が考える、ということは、自らの意識の中で考えており、思惟は主観的行為であるといえる。

主観がたしかに存在することは、自らが感じ取っており、また、デカルトのコギトによっても、論理的に裏付けられる。

一方で、われわれが普遍的事物について考えをめぐらすとき、その行為自体が、他者の主観からわれわれが受け取ったものを基礎として行われている、ということを自覚しており、かつ、その考えが他者にも受け入れられるものであるのかどうか、という点も念頭に置きつつ思惟がなされる。

これはすなわち、1.1節での「客観」の定義を受け入れるならば、客観的に物事を考える、というわけである。

2, オブジェクト指向プログラミングとオブジェクト指向の哲学

2.1 オブジェクト指向プログラミングと物理的オブジェクト

人が概念を用いて世界を理解している、ということは、計算機プログラミングにおけるオブジェクト指向と類似している。オブジェクト指向プログラミングについて議論することで、人の世界認識のあり方に対する理解を深めることができよう。

オブジェクト指向プログラミングは、計算機での各種操作を、抽象化された「オブジェクト」に対する操作とすることで、計算機への実装の際に必要となるデータ構造の詳細を隠蔽し、理解しやすいプログラムを記述することを目的としている。

プログラムが実行される際、オブジェクトは計算機の主記憶装置の中の、特定の記憶領域として存在する。計算機の主記憶装置はランダムアクセスメモリで構成される一様の構造であり、どのオブジェクトが配置される記憶領域も、物理的に他と異なっているわけではない(ここでは、キャッシュや仮想記憶については考えないものとする。) 言葉を変えれば、ソフトウエアオブジェクトは、主記憶装置の中の広がりとして実在する。

この世界における物理的な実在も、空間に分布するエネルギー粒子の特定の部分、すなわち広がりとして実在する。このような実在の様態は、計算機ハードウエアにおけるソフトウエアオブジェクトの実在様態と同様であり、物理的に存在する物体を、物理的オブジェクトと呼ぶことができよう。

物理的オブジェクトは、空間に分布するエネルギー粒子の部分的広がりとして物理的に実在する一方で、物理的クラスに結び付けられたオブジェクトとして、人の概念としては存在する。

なお、物理的クラスそれ自体も人の概念として存在する。物を指す概念には、特定の実在物理的オブジェクトに結び付けられた概念と、物の種類、すなわち物理的オブジェクトそれ自体である概念とを区別して扱わなくてはならないこに注意しなくてはいけない。

2,2 ソフトウエアクラスのインスタンスとメソッド

ソフトウエアオブジェクトは、特定クラスのオブジェクトとしてプログラマに理解され、ソースコードに記述される。クラスは、そのクラスのオブジェクトが持つデータ(インスタンス)群と、オブジェクトに対するさまざまな操作(メソッド)の集まりとして定義されている。

ソフトウエアオブジェクトの一例として、ある企業の従業員データを扱う際のオブジェクトについて考えてみよう。この場合、従業員クラスのオブジェクトが扱われ、そのインスタンスには、例えば従業員番号、入社年月日、生年月日、住所、氏名、地位などが含まれている。また、このクラスオブジェクトに対するメソッドには、入社、退社、転居、氏名変更、地位の変更、給与計算などの操作が含まれている。

ソフトウエアオブジェクトの一つの特徴はデータの隠蔽であり、これらのインスタンスの一部は外部からのアクセスも可能であるが、多くの場合、オブジェクトのメソッドを通してのみ操作可能であり、また、それぞれのインスタンスがどのように記憶領域に格納されるかといった詳細はクラス定義の内部構造として隠蔽されており、オブジェクトを扱う際には意識する必要はない。

クラスのインスタンスの一部は、それ自体が別のクラスに属するオブジェクトである場合もある。例えば、従業員データの例では、入社年月日も生年月日も、共に年月日に対して定義されたクラスのオブジェクトであって、そのクラス特有の操作、例えば経過日数を得る演算などが定義されていることもありえる。

クラス定義は他のクラス定義を継承することもできる。従業員データのクラスであれば、個人データといったクラス定義を継承して定義することも可能で、個人データのクラスに、例えば、氏名、生年月日、住所などがあらかじめ定義されていれば、従業員データのクラスとしては、入社年月日や地位などを追加して定義すればよい。

2.3 物理クラスのインスタンスとメソッド

人が世界を認識する際も、プログラマーが計算機メモリの内容を理解する際と同様、空間に分布するエネルギー粒子の広がりの一部を物理的オブジェクトとして認識している。

例えば、物理的実在である「ポチ」をペットの犬であると認識していれば、犬という物理クラスに属するさまざまなインスタンス、例えば、品種であるとか、体重であるとか、毛並みであるとかが付属することは当然のこととして認識され、ペットという物理クラスに属する各種操作、たとえば散歩するとか、餌をやるとかといった操作が当然のこととして認識されるわけである。 このため、同じ概念を他者と共有していれば、短い言葉で会話が弾むこともありえる。【その2に続く】