Quixote の属性継承について


Quixote が継承規則
              o =< p  ===> o.l =< p.l
を採用した理由を少し説明しましょう。


継承の定義を、上記のようなものではなく、
	o =< p かつ p/[l=a]  ===>  o/[l=a]  (*)
という定義も考えられます。(こっちの方が、直観的ですよね。)

しかし、Quixote では、多重継承
	o =< p かつ o =< q  ===> o には、p と q の性質が継承される
も実現したくて、しかし、継承の定義が (*) だと、
	「多重継承の場合、どのように o の性質を決定すればいいか
	  はっきりしない」
ことに気づきました。

それに対して、Quixote の採用している、
		o =< p  ===> o.l =< p.l	    (**)
という制約を用いた定義だと、
		o =< p, o =< q  ===> o.l =< p.l, o.l =< q.l
となり、右辺を制約解消することによって、o の性質が決定されます。

「はっきりしないよりは決定される方がいい」ということで、
我々は (**) の定義を採用した訳ですが、少し気になるのが、応用からの
意見です。

(**) の規則がまずいかどうか、応用からの意見はとても興味があります。

御意見を頂けると嬉しいです。