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: 13 Nov 92 22:45:08 GMT	[thread overview]
Message-ID: <1992Nov13.224508.18746@beaver.cs.washington.edu> (raw)

In article <1992Nov13.203723.26049@cis.ohio-state.edu>, weide@elephant.cis.ohio
-state.edu (Bruce Weide) writes:
|> ...
|> Or, by multiple implementations, do you mean to insist on run-time
|> selection among different implementations?  If so, what examples would
|> you (e.g., Ralph, or others holding this view) consider to be "good"
|> examples of the use of inheritance for this purpose; to be contrasted
|> with Rosen's examples, which are criticized as unrepresentative of
|> good OO practices?

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.

I see the other side as part of teaching an undergrad compilers
course.  The compiler substrate that the students extend is written in
Ada, and the tagged variants, enums, and case statements that litter
the code are awful.  Adding a few new language constructs would be
simple in an OO implementation but is difficult in this "standard"
implementation.

-- Craig Chambers

             reply	other threads:[~1992-11-13 22:45 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1992-11-13 22:45 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-20 20:28 klamath.cs.washington.edu!chambers
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 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