... ブジェクトである1
プロトタイプ言語のための $InstanceTypeOf(c)$ に等しいものが ある。Cecil では $DescendentOf(o)$ で、複製されたオブジェクト(間接的 または直接的に)のタイプとしている。$DescedentOf$ の概念は実行時に メソッドのパラメータを抑制する。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... 利点を持つ2
メソッド update はいくつかの言語(Beta、NewtonScript、 Obliq、Kevo、Granet)により提供されている。他の言語(Self、Act1)は、 動的に attribute を削除かつ追加することができる。また (Self、Ellie)は メソッドのグループを置換することができる。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... 親の宣言はない3
Ellie は explicit embedding と explicit delegation を持っている。Self は原則的には implicit delegation であるが、explicit delegation の primitive も提供している。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... る(図4-3)4
逆に、Cecil は静的 delegation を提供している delegation ベース言語である。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... のオブジェクトと置換される)は、動的継承の特別な場合である5
親 の階層構造が、プログラムを格納するために階層的名前空間として使われる 時 (Self 環境にあるように)、古い親と新しい親とに関係は必要ではない。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... を区別している6
この用語は、Self からである。Cecil は、同じように、順に abstract、templete、concrete オブジェクトを提供している。Cecil は静的に 型付けられた言語なので、これらの区別は Self よりはっきりしている。 Omega は プロトタイプとクローンの間で違いがある。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... のプロトタイピングアイデアからはかけ離れている7
Omega は、プロトタイプとクローンの区別を強いるが、プロトタイ プのアイデアに対して、完全なオブジェクトである。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... 対の)モードスイッチはむしろ簡単に型づけすることができる8
オブジェ クトベース言語におけるタイプチェッキングモードスイッチの可能性は、 新しいアイデアのようにみえるかもしれない。モードスイッチは、Cecil と Omega ではルール化されている。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... つの演算にすることになる9
言語 Self はフィールド update と、メ ソッド呼び出しを統合している。クライアントは、メソッド呼び出しのみ処理 する。しかし、オブジェクト内では、まだ、いわゆる data slots と 代入可能 slots を区別している。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.