mike@bambi.UUCP (Michael Caplinger) (03/06/86)
Does someone know how the "traits" multiple-inheritance scheme was implemented on the Xerox Star? There are a couple of clues in the literature (see for example the paper in the '82 Siggraph proceedings) but the exact implementation details were "beyond the scope of this paper." Other papers mention something called a "traits manager", but don't say how it works. I'm interested in just how they were able to implement this scheme without bypassing the type checking in Mesa -- particularly for "replaceable" (read Simula/C++ "virtual") functions, and still not do any lookup/ type resolution at runtime. Mike Caplinger mike@bellcore.arpa ihnp4!bambi!mike
mark@umcp-cs.UUCP (Mark Weiser) (03/11/86)
In article <296@bambi.UUCP> mike@bambi.UUCP writes: >Does someone know how the "traits" multiple-inheritance scheme was implemented >on the Xerox Star? There are a couple of clues in the literature (see >for example the paper in the '82 Siggraph proceedings) but the exact >implementation details were "beyond the scope of this paper." Other >papers mention something called a "traits manager", but don't say how it >works. > I've used Mesa (have an XDE machine next to me right now), but my reading of the traits paper is that it was all done with mirrors, or more exactly, managers. The paper never comes out and says there was any preprocessor to Mesa code at all, and if there was, why not say so? So I think the traits business was a discipline, programmer enforced, nothing more. But I would like to know for sure. -mark -- Spoken: Mark Weiser ARPA: mark@maryland Phone: +1-301-454-7817 CSNet: mark@umcp-cs UUCP: {seismo,allegra}!umcp-cs!mark USPS: Computer Science Dept., University of Maryland, College Park, MD 20742
rlw@well.UUCP (Bob Weissman) (03/11/86)
In article <185@umcp-cs.UUCP>, mark@umcp-cs.UUCP (Mark Weiser) writes: > In article <296@bambi.UUCP> mike@bambi.UUCP writes: > >Does someone know how the "traits" multiple-inheritance scheme was implemented > >on the Xerox Star? There are a couple of clues in the literature (see > >for example the paper in the '82 Siggraph proceedings) but the exact > >implementation details were "beyond the scope of this paper." Other > >papers mention something called a "traits manager", but don't say how it > >works. > > I've used Mesa (have an XDE machine next to me right now), but my reading > of the traits paper is that it was all done with mirrors, or more exactly, > managers. The paper never comes out and says there was any preprocessor > to Mesa code at all, and if there was, why not say so? So I think the traits > business was a discipline, programmer enforced, nothing more. But I would > like to know for sure. I worked on the Xerox Star. Traits were indeed more than "mirrors" or "programmer discipline". The traits mechanism was a true implementation of multiple-inheritance subclassing. Yes, there was a pre-processor stage, called Trait Analysis, which was run once for each version of Star which introduced new classes, subclasses, or traits. I'm hesitant to give out more details, since I don't have a copy of the trade-secret agreement I signed with Xerox sitting in front of me. I refer interested readers to the original Traits paper, "Traits: An Approach to Multiple-Inheritance Subclassing", by Curry, Baer, Lipkie, and Lee, in the Proceedings of the SIGOA Conference on Office Information Systems, 1982, ACM order number 611820. The article itself is ACM 0-89791-075-3/82/006/0001. -- Bob Weissman G.WEISSMAN@SU-SCORE.ARPA ...!well!rlw