From: klamath.cs.washington.edu!chambers@beaver.cs.washington.edu (Craig Chamb
Subject: Re: OOD, Ada, and Inheritance
Date: 20 Nov 92 20:28:16 GMT [thread overview]
Message-ID: <1992Nov20.202816.27409@beaver.cs.washington.edu> (raw)
In article <1992Nov20.152625.2770@cis.ohio-state.edu>, weide@elephant.cis.ohio-
state.edu (Bruce Weide) writes:
|> In article <1992Nov13.224508.18746@beaver.cs.washington.edu>
|> chambers@cs.washington.edu writes (the only response so far to my
|> request for "good" examples of the need for dynamic selection among
|> multiple implementations of the same abstraction):
|> >
|> >In my implementation of the Self compiler, I use "run-time selection
|> >among different implementation" to good effect in several data
|> >structures. One of the simplest is a collection of parse tree classes
|> >(in C++), each for a different kind of language construct. Simulating
|> >this in Ada would require tagged variant records or something, without
|> >behavior attached to each variant. A more complex data structure is a
|> >control flow graph, with different classes for each kind of CFG node
|> >(e.g. add, branch, merge). All CFG nodes support a common protocol,
|> >but with widely-varying implementations. No node knows what kind of
|> >node is its successor or predecessor, only its interface.
|> >
|>
|> Craig, I don't really understand this example very well as an
|> illustration of the problem at hand. Perhaps by "multiple
|> implementations" we mean two different things? I'm thinking of an
|> interface as defining a SINGLE abstract behavior -- not just method
|> name and parameter profile, but also a specification of that behavior
|> in implementation-neutral terms. Any such behavior might have more
|> than one possible implementation.
|>
|> It sounds like you might be thinking of multiple SIMILAR BUT NOT
|> IDENTICAL abstract behaviors, and considering them to be different
|> "implementations" of the same "protocol." Is this a correct
|> assumption?
|>
|> Cheers,
|> -Bruce
Yes, that's what I'm describing. I've forgotten the original question
by now, but my response was providing a concrete example for dynamic
binding and inclusion polymorphism as commonly found in OO languages.
The alternative (at least in Ada) is quite painful. In any case, I
don't recall why you're interested in the restricted subcase of
providing multiple implementations with *identical* abstract behavior.
I'm sure it's less common and less useful than collections of
implementations with related abstract behavior. An example of
multiple implementations with identical behavior is multiple
implementations of a key-value table (lists of pairs or hash tables);
both have the same abstract behavior but different performance
tradeoffs for large and small tables.
-- Craig Chambers
next reply other threads:[~1992-11-20 20:28 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
1992-11-20 20:28 klamath.cs.washington.edu!chambers [this message]
-- strict thread matches above, loose matches on Subject: below --
1992-12-04 20:49 OOD, Ada, and Inheritance Bruce Weide
1992-12-04 8:54 cis.ohio-state.edu!zaphod.mps.ohio-state.edu!darwin.sura.net!paladin.amer
1992-12-03 21:19 dog.ee.lbl.gov!overload.lbl.gov!agate!usenet.ins.cwru.edu!magnus.acs.ohio
1992-12-02 20:25 dog.ee.lbl.gov!network.ucsd.edu!usc!zaphod.mps.ohio-state.edu!cis.ohio-st
1992-12-02 14:58 pipex!bnr.co.uk!bnrgate!nott!cunews!cunews!knight
1992-11-17 20:37 dog.ee.lbl.gov!pasteur!agate!usenet.ins.cwru.edu!magnus.acs.ohio-state.ed
1992-11-16 15:09 eru.mt.luth.se!lunic!sunic!mcsun!uknet!comlab.ox.ac.uk!ajs
1992-11-16 8:48 cis.ohio-state.edu!zaphod.mps.ohio-state.edu!darwin.sura.net!Sirius.dfn.d
1992-11-13 22:45 klamath.cs.washington.edu!chambers
1992-11-13 20:37 Bruce Weide
1992-11-11 4:20 sun-barr!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!darwin.sura.net!
1992-11-10 20:58 sun-barr!cs.utexas.edu!natinst.com!news.dell.com!milano!cobweb.mcc.com!br
1992-11-09 18:56 Ralph Johnson
1992-11-09 18:30 eru.mt.luth.se!lunic!sunic!lth.se!newsuser
1992-11-09 16:36 Jorge Luis Diaz-Herrera
1992-11-09 14:53 think.com!sdd.hp.com!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!elephan
1992-11-07 18:49 John Goodsen
1992-11-07 1:25 mole-end!mat
1992-11-06 20:13 John Goodsen
1992-11-06 9:00 agate!doc.ic.ac.uk!uknet!root44!hrc63!mrcu!paj
1992-11-05 19:20 David Emery
1992-11-05 19:09 saimiri.primate.wisc.edu!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!new
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox