[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

*To*: RPG@SAIL.STANFORD.EDU*Subject*: Re: CPL Computation*From*: Danny Bobrow <Bobrow.pa@Xerox.COM>*Date*: 27 Jan 87 13:00 PST*Cc*: common-lisp-object-system@SAIL.STANFORD.EDU*In-reply-to*: Dick Gabriel <RPG@SAIL.STANFORD.EDU>'s message of 27 Jan 87 12:07 PST*Sender*: Bobrow.pa@Xerox.COM

Given that reversed reversed postorder treewalk (or last-visited preorder) is the tiebreaker, that there is at least one suspicious Flavors-order example, that people can formulate their lattices as they want to get the right inheritance, that there is no intuition to any order beyond what the topological sort gives you, and there is a possible performance problem with the algorithm described in the New Flavors document, I have now flipped my bit on this issue from wanting to mimic the Flavors order to insisting on preorder tiebreaker with topological sort. Everything says pt5 should precede pt4, but Flavors doesn't. I believe this to be a serious problem. I don't believe this. The argument for the New Flavors (and Bobrow/Kiczales) ordering is the following. If the user has a class (a mixin), and for reasons known to them splits that class into two classes e.g. (p3' into p3 and p4), with no other references, there should be no chance of any interaction with any other class used as a mixin. Hence one wants all superclasses of a class to follow as soon as possible after the class they are referred to. As soon as possible is what you get from last-visited pre-order walk. Moon-walk (which is what is in B/K) is a reasonable implementation of "last-visited pre-order walk". We don't have to describe the algorithm and the effect in one paragraph. The effect is a linearization of a full tree walk maintaining only the last visit. The computation computes it from the rear to avoid revisits. danny

- Prev by Date:
**CPL Computation** - Next by Date:
**Re: ---** - Previous by thread:
**CPL Computation** - Next by thread:
**CPL Computation** - Index(es):