言語としての設計思想
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/04 03:18 UTC 版)
「Smalltalk」の記事における「言語としての設計思想」の解説
言語として Smalltalk が目指したもの。それは計算機を計算機の集合体として構築し、さらに計算機を構成する個々の計算機も計算機の集合体で構築するというように、再帰的な計算機を構築することであった。この再帰的な計算機を構築している無数の計算機は、個々の内部には干渉せずメッセージによる通信のみによって相互作用を発生させ目的の計算を完遂させる。 ここでいう計算機が Smalltalk ではオブジェクトという形で実装された。 この設計思想の誕生は、ロバート・S・バートン(英語版)とB5000の設計者らが会談した際の次の発言をアラン・ケイが聞き「計算機の全体を計算機とみなした場合、その計算機の構成要素を計算機に分解するのではなく関数やデータ構造に分解したいと誰が思うのか」と疑問を浮かべた事がきっかけとなっている。 “The basic principal of recursive design is to make the parts have the same power as the whole.”「再帰設計の基本原理は、部品が全体と同じ力を持つようにすることだ」 ここで言及された再帰という概念は、オブジェクトの成立以外にも Smalltalk の至るところに影響を与えている。 反復はメソッドの再帰呼び出し。 インスタンスオブジェクトを生成しているクラスオブジェクトも、クラスオブジェクトに所属するインスタンスオブジェクトであり再帰関係を持つ。 MetaclassはMetaclass classのインスタンスオブジェクトでありMetaclass classは、Metaclassであり再帰関係を持つ。 基本的な派生元となるObjectやProtoObjectは、それらから派生したUndefinedObjectのインスタンスオブジェクトであるnilを継承しており再帰関係を持つ。 Smalltalk 言語は Smalltalk 言語自身によりメッセージ送信等の言語機能が制御される。 Smalltalk 言語の翻訳や仮想機械は Smalltalk 言語により実装される。 Smalltalk 言語の大域変数はSmalltalk変数に格納されたオブジェクトにより管理されるが、Smalltalk変数自体も大域変数である。
※この「言語としての設計思想」の解説は、「Smalltalk」の解説の一部です。
「言語としての設計思想」を含む「Smalltalk」の記事については、「Smalltalk」の概要を参照ください。
- 言語としての設計思想のページへのリンク