From: mbk@caffeine.engr.utk.edu (Matt Kennel)
Subject: Re: Real OO
Date: 1996/05/22
Date: 1996-05-22T00:00:00+00:00 [thread overview]
Message-ID: <4nvqd3$c83@gaia.ns.utk.edu> (raw)
In-Reply-To: 1996May20.173709.1047@merlin.hgc.edu
James McKim (jcm@hgc.edu) wrote:
: In article <4nl9fj$35m@gaia.ns.utk.edu> kennel@msr.epm.ornl.gov writes:
: >Perhaps what you want is to be able to inherit implementation without also
: >inheriting interface, which in Eiffel, encompasses assertion as well
: >as routine signatures.
: Hmmm... At first I thought these were orthogonal issues, but upon reflection
: I think you may be right. So class X has a feature f that has type
: semantics and implementation semantics. If we want class Y to be a subtype
: of X then any redefinition of f in Y is bound by the original type
: semantics.
In Sather, if concrete class Y is a *subtype* (implying substitutability)
of X then X has no implementation.
You can "inherit" some part of the implementation of X from
GENERIC_X_STUFF, MIXIN_HERE, and CETI_ALPHA_FIVE. It matters not for
subtyping, as long as X upholds all the interfaces (supertypes) that it
is supposed to.
: Now what happens if we want Z to be a subclass (inherit
: implementation of) X? I'm assuming that in Sather there is no restriction
: on how Z may redefine f, is that correct? And if W is intended to be
: both a subtype and a subclass of X then any redefinition of f must
: follow its original type semantics, but can implement it any old way.
Yes.
: Yes, this is appealing....
: >
: >This is yet another reason to make such a design choice, either explicitly in
: >your language, or in your style of class design: keep distinct
: >'concrete leaf classes' which serve *only* as a locus of shared implementation
: >from 'abstract classes' which serve as specification.
: Lost you here. Are you talking about the subtype or subclass hierarchy?
Both, but I am advocating doing them separately, as suggested by the
"Design Patterns" book.
: If subclass, why would the leaves share implementation with their abstract
: ancestors? I would have expected abstract ancestors to be supertypes.
They are.
: If subtype, why mention the sharing of implementation at all?
They are distinct: the "shared locus of implementation class"
has nothing to do with subtyping, but is a common idiom.
There is some far superior explanation on the Sather home page:
http://www.icsi.berkeley.edu/~sather
Look for the paper about the type & class system.
: *------------------------------------------------------------------------------*
: Jim McKim (860)-548-2458 Co-editor of Eiffel Outlook
: Internet: jcm@hgc.edu Subscribe early and often!
next prev parent reply other threads:[~1996-05-22 0:00 UTC|newest]
Thread overview: 218+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4id031$cf9@dayuc.dayton.saic.com>
1996-03-18 0:00 ` Real OO Norman H. Cohen
1996-03-18 0:00 ` The Right Reverend Colin James III
1996-03-19 0:00 ` Norman H. Cohen
1996-03-20 0:00 ` Norman Cohen giving IBM a bad name The Right Reverend Colin James III
1996-03-20 0:00 ` Brian & Karen Bell
1996-03-20 0:00 ` Colin James III giving humans a bad name (was Re: Norman Cohen giving IBM a bad name) David Emery
1996-03-20 0:00 ` Mark R Okern - F95
1996-03-20 0:00 ` Real OO John G. Volan
1996-03-21 0:00 ` Scott Leschke
1996-03-21 0:00 ` Norman H. Cohen
1996-03-21 0:00 ` Robert A Duff
1996-03-22 0:00 ` Don Harrison
1996-03-21 0:00 ` Colin James III giving humans a bad name (was Re: Norman Cohen giving IBM a bad name) Richard A. O'Keefe
1996-03-21 0:00 ` Robert Dewar
1996-03-20 0:00 ` Real OO Dale Stanbrough
1996-03-21 0:00 ` Richard Pitre
1996-03-20 0:00 ` Norman Cohen giving IBM a bad name Dave Retherford
1996-03-21 0:00 ` Kent Mitchell
1996-03-22 0:00 ` Robert Munck
1996-03-22 0:00 ` Mark Brennan
1996-03-22 0:00 ` David Curry
1996-03-23 0:00 ` Tom Reid
1996-03-21 0:00 ` Real OO Don Harrison
1996-03-21 0:00 ` Colin James III giving humans a bad name (was Re: Norman Cohen giving IBM a bad name) Ulrich Windl
1996-03-20 0:00 ` Real OO Don Harrison
1996-03-22 0:00 ` Don Harrison
1996-03-22 0:00 ` Norman H. Cohen
1996-03-27 0:00 ` Don Harrison
1996-03-27 0:00 ` Norman H. Cohen
1996-03-28 0:00 ` Jacob Gore
1996-04-04 0:00 ` Don Harrison
1996-04-04 0:00 ` Laurent Guerby
1996-04-04 0:00 ` Robb Nebbe
1996-04-04 0:00 ` Jon S Anthony
1996-04-04 0:00 ` Tucker Taft
1996-04-04 0:00 ` Tucker Taft
1996-04-12 0:00 ` Don Harrison
1996-04-12 0:00 ` Don Harrison
1996-04-15 0:00 ` Robert I. Eachus
1996-04-19 0:00 ` Don Harrison
1996-04-19 0:00 ` Matt Kennel
1996-04-20 0:00 ` Bob Hathaway
1996-04-23 0:00 ` Don Harrison
1996-03-22 0:00 ` Norman H. Cohen
1996-03-26 0:00 ` Don Harrison
1996-03-26 0:00 ` Norman H. Cohen
1996-03-29 0:00 ` Don Harrison
1996-03-27 0:00 ` Thomas Beale
1996-03-28 0:00 ` Don Harrison
1996-03-23 0:00 ` Joachim Durchholz
1996-03-26 0:00 ` Norman H. Cohen
1996-04-04 0:00 ` Don Harrison
1996-04-04 0:00 ` Jon S Anthony
1996-04-12 0:00 ` Don Harrison
1996-04-17 0:00 ` Jon S Anthony
1996-04-19 0:00 ` Don Harrison
1996-04-19 0:00 ` Jon S Anthony
1996-04-23 0:00 ` Don Harrison
1996-04-24 0:00 ` Don Harrison
1996-04-29 0:00 ` Jon S Anthony
1996-04-30 0:00 ` Robert Dewar
1996-04-30 0:00 ` Amit Patel
1996-04-30 0:00 ` Robert A Duff
1996-05-07 0:00 ` Amit Patel
1996-05-01 0:00 ` Norman H. Cohen
1996-05-01 0:00 ` Colin James III (The Rt Rev'd)
1996-05-07 0:00 ` Amit Patel
1996-04-30 0:00 ` Robert A Duff
1996-04-30 0:00 ` Robert Dewar
1996-05-01 0:00 ` Richard Bielak
1996-04-30 0:00 ` Amit Patel
1996-05-01 0:00 ` Adam Beneschan
1996-05-02 0:00 ` Ell
1996-05-01 0:00 ` AdaWorks
1996-05-01 0:00 ` Don Harrison
1996-05-01 0:00 ` Don Harrison
1996-05-02 0:00 ` Robert A Duff
1996-05-03 0:00 ` Don Harrison
1996-05-03 0:00 ` Robert A Duff
1996-05-06 0:00 ` Don Harrison
1996-05-06 0:00 ` Robert A Duff
1996-05-06 0:00 ` Robb Nebbe
1996-05-01 0:00 ` David Hopwood
1996-05-03 0:00 ` Don Harrison
1996-05-02 0:00 ` Robert A Duff
1996-05-03 0:00 ` Don Harrison
1996-05-10 0:00 ` Don Harrison
1996-05-08 0:00 ` Joachim Durchholz
1996-05-03 0:00 ` Don Harrison
1996-05-03 0:00 ` Dave Fitch
1996-05-07 0:00 ` Jon S Anthony
1996-04-30 0:00 ` Jon S Anthony
1996-05-01 0:00 ` Matt Kennel
1996-05-03 0:00 ` Don Harrison
1996-05-02 0:00 ` Don Harrison
1996-05-02 0:00 ` Robert I. Eachus
1996-05-02 0:00 ` Jon S Anthony
1996-05-03 0:00 ` Don Harrison
1996-05-06 0:00 ` Jon S Anthony
1996-05-06 0:00 ` Jon S Anthony
1996-05-06 0:00 ` Don Harrison
1996-05-06 0:00 ` Don Harrison
1996-05-07 0:00 ` Jon S Anthony
1996-05-13 0:00 ` Don Harrison
1996-05-09 0:00 ` Jon S Anthony
1996-04-30 0:00 ` Joachim Durchholz
1996-04-19 0:00 ` Multiple Dispatch in Ada 95 (Was Re: Real OO) Brian Rogoff
1996-04-21 0:00 ` Brian Rogoff
1996-04-19 0:00 ` Robert I. Eachus
1996-04-20 0:00 ` Brian Rogoff
1996-04-21 0:00 ` Robert A Duff
1996-04-24 0:00 ` Real OO Joachim Durchholz
1996-05-01 0:00 ` Matt Kennel
1996-05-02 0:00 ` Don Harrison
1996-05-07 0:00 ` Joachim Durchholz
1996-05-08 0:00 ` Jon S Anthony
1996-05-09 0:00 ` Robert I. Eachus
1996-04-30 0:00 ` Jon S Anthony
1996-05-03 0:00 ` Don Harrison
1996-05-07 0:00 ` Jon S Anthony
1996-04-30 0:00 ` Joachim Durchholz
1996-05-08 0:00 ` Joachim Durchholz
1996-05-10 0:00 ` Jon S Anthony
1996-05-02 0:00 ` Jon S Anthony
1996-05-06 0:00 ` Jon S Anthony
1996-04-08 0:00 ` Norman H. Cohen
1996-04-08 0:00 ` Robert A Duff
1996-04-09 0:00 ` Norman H. Cohen
1996-04-10 0:00 ` Don Harrison
1996-04-11 0:00 ` Jacob Gore
1996-04-12 0:00 ` Don Harrison
1996-04-12 0:00 ` Matt Kennel
1996-04-15 0:00 ` Don Harrison
1996-04-12 0:00 ` Jon S Anthony
1996-04-13 0:00 ` Robert A Duff
1996-04-16 0:00 ` Jon S Anthony
1996-04-12 0:00 ` Don Harrison
1996-04-12 0:00 ` Jacob Gore
1996-04-16 0:00 ` Don Harrison
1996-04-09 0:00 ` Valery CROIZIER
1996-04-09 0:00 ` Jon S Anthony
1996-04-09 0:00 ` Joachim Durchholz
1996-05-02 0:00 ` Joachim Durchholz
1996-05-05 0:00 ` Robert A Duff
1996-05-05 0:00 ` Robert Dewar
1996-05-06 0:00 ` Norman H. Cohen
1996-05-07 0:00 ` Ada terminology (was Re: Real OO) David Hopwood
1996-05-07 0:00 ` The Right Reverend Colin James III
1996-05-07 0:00 ` Tucker Taft
1996-05-07 0:00 ` The Right Reverend Colin James III
1996-05-08 0:00 ` bill.williams
1996-05-07 0:00 ` Dave Jones
1996-05-07 0:00 ` Real OO Don Harrison
1996-05-07 0:00 ` Jon S Anthony
1996-05-08 0:00 ` Don Harrison
1996-05-08 0:00 ` Norman H. Cohen
1996-05-08 0:00 ` Robert A Duff
1996-05-10 0:00 ` Matt Kennel
1996-05-10 0:00 ` Robert A Duff
1996-05-14 0:00 ` Matt Kennel
1996-05-15 0:00 ` Robert A Duff
1996-05-07 0:00 ` Amit Patel
1996-05-07 0:00 ` The Right Reverend Colin James III
1996-05-08 0:00 ` Don Harrison
1996-05-08 0:00 ` Juergen Schlegelmilch
[not found] ` <Dr4538.D27@assip.csasyd.oz>
1996-05-09 0:00 ` Richard Riehle
1996-05-10 0:00 ` Tucker Taft
1996-05-13 0:00 ` Don Harrison
1996-05-13 0:00 ` Tucker Taft
1996-05-14 0:00 ` Don Harrison
1996-05-14 0:00 ` Robert A Duff
1996-05-14 0:00 ` Steve Tynor
1996-05-14 0:00 ` Robert A Duff
1996-05-15 0:00 ` Don Harrison
1996-05-15 0:00 ` Steve Tynor
1996-05-15 0:00 ` Robert A Duff
1996-05-16 0:00 ` James McKim
1996-05-18 0:00 ` Matt Kennel
1996-05-20 0:00 ` James McKim
1996-05-22 0:00 ` Matt Kennel [this message]
1996-05-14 0:00 ` Joachim Durchholz
1996-05-14 0:00 ` Roger Browne
1996-05-15 0:00 ` Alexander Kjeldaas
1996-05-15 0:00 ` Steve Tynor
1996-05-19 0:00 ` Piercarlo Grandi
1996-05-14 0:00 ` James McKim
1996-05-15 0:00 ` Juergen Schlegelmilch
1996-05-09 0:00 ` Juergen Schlegelmilch
1996-05-20 0:00 ` Joachim Durchholz
1996-05-07 0:00 ` Joachim Durchholz
1996-05-09 0:00 ` Don Harrison
1996-05-09 0:00 ` Joachim Durchholz
1996-05-09 0:00 ` Jon S Anthony
1996-04-02 0:00 ` Detecting type mismatch at compile time (was Re: Real OO) Robert I. Eachus
1996-04-03 0:00 ` Richard Bielak
1996-04-04 0:00 ` Don Harrison
1996-03-28 0:00 ` Real OO Joachim Durchholz
1996-03-29 0:00 ` Norman H. Cohen
1996-03-30 0:00 ` John G. Volan
1996-03-26 0:00 ` Jon S Anthony
1996-03-29 0:00 ` Joachim Durchholz
1996-04-04 0:00 ` Don Harrison
1996-04-04 0:00 ` Steve Tynor
1996-04-08 0:00 ` Norman H. Cohen
1996-04-09 0:00 ` Matt Kennel
1996-04-04 0:00 ` Dominique Colnet
1996-04-08 0:00 ` Matt Kennel
1996-04-09 0:00 ` Norman H. Cohen
1996-04-09 0:00 ` Robert C. Martin
1996-04-10 0:00 ` J. Kanze
1996-05-02 0:00 Bob Crispen
[not found] <DoDLr7.JDB@world.std.com>
[not found] ` <4if7s5$bfk@ra.nrl.navy.mil>
[not found] ` <DoDqH4.29v@world.std.com>
1996-03-26 0:00 ` AdaWorks
1996-03-29 0:00 ` Brian Rogoff
[not found] <4hneps$1238@watnews1.watson.ibm.com>
[not found] ` <Do3F1K.4xG@assip.csasyd.oz>
[not found] ` <4i455s$ijq@watnews1.watson.ibm.com>
1996-03-15 0:00 ` Don Harrison
[not found] ` <DoBH80.9u9@world.std.com>
1996-03-15 0:00 ` Mark A Biggar
1996-03-15 0:00 ` Richard Pitre
1996-03-16 0:00 ` Des Kenny
[not found] <JSA.96Mar13143956@organon.com>
1996-03-15 0:00 ` Don Harrison
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox