2014年10月20日月曜日

オブジェクト指向について その1

AI

私が初めてオブジェクト指向に出会ったのは'80年代だった。

当時データベース診断エキスパートシステムを研究所で研究員(工学博士)と二人で構築した。エキスパートシステム構築ツールは同じ研究所で構築したLISPベースのツールを使用した。ちなみにこの構築ツールの仕様書がなかったので、研究室の応接室に席を準備してもらい、ツールの使い方が判らないと、研究員を呼び出し直接聞くという方法で構築した。構築ツールは、静的知識ベース、動的知識ベースで構成されていた。動的知識ベースはif文の羅列のルールベースで、静的知識ベースがオブジェクト指向だった

私にとって、オブジェクト指向は難しい概念ではなかった。なぜなら、CODASYL仕様のデータベース、特に論理スキーマは、クラス・インスタンスの概念で作られていたので、オブジェクト指向はすぐに理解できた。「UML 2.0クイックリファレンス」クラス図の関係に説明させれている「依存」「関連」「集約」「コンポジション」「汎化」は当時から変わっていない。

AIが普及しなかった理由

オブジェクト指向は簡単にデータ構造が構築でき、データとともにアクセスメソッドも設定できたので、使い勝手は良かった。でも、 オブジェクト指向には大きな欠点があった。それはオブジェクトを二次媒体に格納できないから、管理できるオブジェクトの容量は自ずと制限ができるということだ。私は当時この欠点を気づいていたので、AIは普及しないと思っていた。

あれから30年、この欠点はクラウドシステムにより解消された。まさか、私が生きているとき、クラウドシステムに出会うとは思いもよらなかった。また、このクラウドシステムはスーパーコンピュータとは違い、誰でも使用することができる。ちなみに、このブログもクラウドシステムがなければ存在しない。人類の貪欲な欲求には驚きを隠せない。   

OOP

現代のオブジェクト指向は、オブジェクト指向の汎化の機能の一部だったポリモルフィズムコンピュータ・アーキテクチャに組み込んだシステム(VM)になったことだ。これはJAVAが確立した技術だ。

現代のオブジェクト指向という概念を私なりに説明したいと思います。

0 件のコメント:

コメントを投稿