comp.lang.ada
 help / color / mirror / Atom feed
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

             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