Classbox

local binding vs. open class

local binding仕様での拡張は不要で、通常のクラス拡張で済むのではないかという議論で、通常のクラス拡張では、以下の二点で問題があるのではないか、と書いた。 変更したメソッドの中から元のメソッドを呼び出すためには元のメソッドをaliasする必要がある…

Classbox/C#

「On the Integration of Classboxes into C#」を途中まで読んだ。 "暗黙的import"というのが新しく導入されたのかな。Classbox/Jにはなかったと思うが、見落としていたのかも。少なくともSqueak版のときにはなかった。論文を書いている人自体が違うけど。 …

MixJuiceとの比較

キャンディーズの思い出に浸り過ぎて、Classboxについて何を考えていたのか忘れてしまった。 MixJuiceでの名前空間分離/仕様実装分離のようなことが、Classboxではできないのではないか。Classboxでは、importによってクラス単位での可視性の制御はできるが…

コメントの続き

済みません。module systemのことしか考えていなかったので、moduleと無関係な方法は一瞬も考えてませんでした。module systemを使わず、単純に拡張するということですよね。 唯、一点だけ難を言えば、変更したメソッドの中から元のメソッドを呼び出すために…

local rebinding

まつもとさんのコメント、FooということはSelector namespaceの仕様に近いということですか。私はその点についてはlocal rebindingの仕様のほうが使いやすい気がします。尤も実際に使用したことがないので、空想レベルの感覚ですが。どちらにも長所と短所が…

疑問点 その二

前回は、classboxで拡張したフィールドの初期化と参照の関係をどう保証するのか、という疑問点について書いた。 今回は、あるclassboxの中でimportと定義のどちらもされていないクラスのインスタンスが参照された場合の問題を考える。今度も擬似Rubyコードで…

MixJuiceとClassbox

昨日も言及した論文「Analyzing Module Diversity」には、MixJuiceに関しても間違いがあるような気がする。同一クラスに対する別個の独立した拡張が同時に、Classboxでは存在可能で、MixJuiceでは存在できないとしている。これは私が以前、Rubyist Magazine …

コメント

まつもとさんのコメント、FooということはSelector namespaceの仕様に近いということですか。私はその点についてはlocal rebindingの仕様のほうが使いやすい気がします。尤も実際に使用したことがないので、空想レベルの感覚ですが。どちらにも長所と短所が…

ClassboxとSelector namespace

Selector namespaceというのは、何を満たしていればSelector namespaceというのかが、私は分かっていない。最近、「Analyzing Module Diversity」を読んでいるが、この中にClassboxとSelector namespaceの違いが割と明確に書いてあった。 違いは、local rebi…

2006/03/25の続き

前回、classboxで拡張したフィールドの初期化と参照の関係をどう保証するのか、という疑問点を書いた。しかし、若しRubyのように実行時の代入によってインスタンス変数が割り当てられる言語で、未定義インスタンス変数の参照はエラーとするという仕様であれ…

昨日のコメント

サブタイプのチェックでは、解決できないのではないでしょうか?classbox Fooの中でB#b()の型が宣言されていた場合、Bar, BazのどちらもB#b()をその型に合わせて定義していても、参照するclassbox拡張インスタンス変数が異なっているように書くことができる…

疑問点 その一

2006/03/20の書き込みの続き。classboxで拡張したフィールドの初期化と参照の関係をどう保証するのか、というのが最初の疑問点である。Javaで書くとタイピング量が増えるので、擬似Rubyコードで書く。 classbox Foo class A; end class B < A; end end class…