[self-interest] A problem about tiebreaker rule in inheritance
gordon at cichon.com
Fri Jan 16 15:55:15 UTC 2004
>Below are five objects A,B,C,D and E. As usual, a * denotes a parent
>slot with more *'s indicating lower priority. f and g are method
>slots with g sending the message f to self.
>A: p1**= B
> p2* = C
>B: p1* = C
> p2* = D
>C: f =(..)
>D: p* = E
> f =(..)
>E: g= (..f..)
>If the parent prioritizing and the sender path tiebreaker rule is in
>effect, how about the result of A f, B f, A g, B g.
>I think the result of A f is C f since p2 in A has a higher priority.
>Both A g and B g are E g. I think the result of B f is D f. Because D
>has a parent E is sending message. Thus, D has higher priority than
>C. I am not sure my answer. Since one of my friend told me the result
>of B f should be wrong since C and D are the parents which have the
I think that even with tiebreaker rule, ambiguities can arise. In this
case, the VM recognizes an error and sends some "ambiguous message"
message to that object instead.
I think that the tiebreaker rule has been abandoned in the later
versions of self. The reason for this is AFAIK that they make lookup
much more complex and still do not resolve all potential ambiguities.
More information about the Self-interest