- ...
ブジェクトである1
- プロトタイプ言語のための
に等しいものが
ある。Cecil では
で、複製されたオブジェクト(間接的
または直接的に)のタイプとしている。
の概念は実行時に
メソッドのパラメータを抑制する。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
利点を持つ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 を区別している。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.