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 の性質が決定されます。
「はっきりしないよりは決定される方がいい」ということで、
我々は (**) の定義を採用した訳ですが、少し気になるのが、応用からの
意見です。
(**) の規則がまずいかどうか、応用からの意見はとても興味があります。
御意見を頂けると嬉しいです。