: この本の範囲
: オブジェクト指向言語のモデル化
: 基本的なメカニズムへの還元
- 最小限のオブジェクト計算により、オブジェクトをメソッドの集まりと
することが自然であるようにみえる。
- フィールドも重要である。しかし、導出された概念としてみることがで
きる。例えば、フィールドは self パラメータを使わないメソッドとして表
わすことができる。
- フィールドとメソッドを同一視することにより、片方からもう片方に変
換することがしやすくなる。その変換は概念的には passive データを active
computation に変更すること、そしてその逆である。
- フィールドをメソッドと統合することは、簡単化のために利点をもたら
す。オブジェクトとオブジェクト演算は、単一の構造を仮定することができる。
逆に、
フィールドとメソッドの区別は、オブジェクト演算の区別と一致し、そして、
self の implicit または、explicit な区別を 2 つのコンポーネントに区別
することができる。フィールドをメソッドに統合することにより、コンパクト
になり、よりエレガントな計算となる。
- しかし、この統合は、議論の余地がある。メソッドに対
する自然の演算はメソッド呼び出しであり、フィールドに対する自然な演算
は、フィールドセレクションとフィールド update である。フィールドとメソッ
ドを統合することにより、フィールドセレクションと、メソッド呼び出しを一
つの演算にすることになる9。
- しかし、メソッド update は、動的継承(オブジェクトの振る舞いの動
的修正)の一つの形としてみることができる。メソッド update は、
伝統的なクラスベース構造(そこでは、フィール
ドとメソッドは厳しく区別されている)をモデル化することができることに加え
て、オブジェクトベース構造をモデル化する上での edge である。
- method update のより進んだ調整は、動的継承を使いならそうとする中
で見つけることができる。動的継承は、クラスベース言語にはない、オブジェ
クトベース言語のユニークな特徴である。
- method update は、better-behaved mechanisms の一つである。静的に
型付け可能で、モードスイッチをエミュレートしうる。method update を使っ
て、動的継承で形のはっきりしない、危険な見方を避けている[59,119]。
一方、動的 specialization は、Treaty or Orlando[114] により支持さ
れたものである。
平成12年8月22日