From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-0.5 required=3.0 tests=BAYES_05 autolearn=ham autolearn_force=no version=3.4.5-pre1 Date: 3 Dec 92 21:19:26 GMT From: dog.ee.lbl.gov!overload.lbl.gov!agate!usenet.ins.cwru.edu!magnus.acs.ohio -state.edu!cis.ohio-state.edu!pacific.mps.ohio-state.edu!linac!uwm.edu!wupost!c s.utexas.edu!torn!nott!cunews! (Alan Knight) Subject: Re: OOD, Ada, and Inheritance Message-ID: List-Id: In <1992Dec2.202522.2335@cis.ohio-state.edu> weide@elephant.cis.ohio-state.edu (Bruce Weide) writes: >Good try! But at least as I understand the I/O and matrix algebra >examples it should be the case that, if you actually write the >abstract specification that you claim it is "clear" could exist, you >will no doubt find that the behaviors of the various multiple >implementations are IDENTICAL. I'm not sure what you mean by the >finite element example because I don't know enough about that >application to comment intelligently. (I know, a lot of you are >probably saying this applies to the other examples, too. :-) >The point is that we certainly want to permit multiple implementations >of the SAME abstract behavior. Alan's examples are good testimony to >that. But what do we mean by "similar" abstract behavior? Without >writing down precisely what behaviors we're talking about, I don't see >how we can answer this question. At a guess, I would say that "similar" abstract behaviours are those that can be viewed as the same at some level of abstraction, but differ when viewed at others. For example, you say that the matrix implementations would have identical abstract behaviour, but a great many of them would give (usually slightly) different answers. For some applications, these differences would be very significant, for others they might not be. Both levels of abstraction could still be implementation-neutral. Another common OO example is a tree class in which leaves and internal nodes are implemented in different ways. In this case the leaves may behave quite differently from the others in detail, but one would still consider them to be the same in the abstract. The same applies to a linked-list implementation with an end-of-list that is of a separate class rather than just being null. -- Alan Knight knight@mrco.carleton.ca +1 613 788 2600x5783 Dept. of Mechanical and Aerospace Engineering Carleton University, Ottawa, Ontario, Canada, K1S 5B6