From: donh@syd.csa.com.au (Don Harrison)
Subject: Re: Eiffel and Java + Ada dispatching
Date: 1996/11/04
Date: 1996-11-04T00:00:00+00:00 [thread overview]
Message-ID: <E0BKHr.3CC@syd.csa.com.au> (raw)
In-Reply-To: JSA.96Nov1183554@alexandria
Jon S Anthony writes:
:In article <E06F2B.Az7@syd.csa.com.au> donh@syd.csa.com.au (Don Harrison) writes:
:
:> Jon S Anthony writes:
:>
:> :> 2) but this is combined with the static overloading inherited from
:> :> Ada83; which is merely syntactic sugar for routine having
:> :> (statically) different signatures.
:> :
:> :Criminey! This is wrong too. It is not "merely syntactic sugar", as it
:> :is part and parcel of why Ada does not need any system validity checks!
:>
:> Disagree. Overloading *is* syntactic sugar because it merely allows reuse
:> of an identifier without any semantic difference (to using a different one).
:> The reason Ada does not need checks on use of polymorphism is that
:> it is avariant (no variance) compared with Eiffel which is covariant.
:
:Go back and re-read that long note I wrote in the "Real OO" thread on
:why Ada does not have system validity problems and then the follow up
:which tried to point out your misunderstandings and you will see why
:you are wrong about this.
I was able to infer from your note why Ada you cannot break polymorhism.
(Broken polymorphism is the problem in Eiffel - System Validity it's solution).
The reason is that Ada is avariant - when overriding dispatching operations,
you cannot redefine non-dispatching parameters covariantly.
eg. Assuming type B descended from A and Q descended from P,
1. procedure op (a: A; p: P'Class); -- dispatches on a
...
2. procedure op (b: B; p: P'Class); -- dispatches on b (overriding op above)
But, as you point out below, a dispatching operation that has the same
signature as another but a different non-dispatching parameter does not
override the original, so cannot be called polymorphically wrt the original.
3. procedure op (b: B; p: Q'Class); -- dispatches on b (distinct operation from
-- 1. above - does not override it).
What we can see from this is that overriding in Ada is implied (by the
combination of descendant dispatching parameter, same non-dispatching parameter)
rather than being explicit as in Eiffel (redefine clause).
:The reason that OL enters into the puzzle is that it allows for the
:definition of _new_ operations (on specific types) with descendent
:controlling parameter(s) and a _non_ controlling descendent
:parameter(s) but with the same name. Now you can claim that this is
:"confusing" (a value judgement), but that will most likely be because
:you are not used to the differentiation between specific types and
:class-wide types ...
Yes. I agree this may be confusing to some. I was one of them. :)
Personally, if writing Ada, I would prefer to use a different name rather
than overloading the old one to remove all confusion.
4. procedure new_op (b: B; p: Q'Class); -- dispatches on b
Don.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Don Harrison donh@syd.csa.com.au
next prev parent reply other threads:[~1996-11-04 0:00 UTC|newest]
Thread overview: 162+ messages / expand[flat|nested] mbox.gz Atom feed top
1996-10-27 0:00 Eiffel and Java Vincent WEBER
1996-10-27 0:00 ` Jean-Michel P. Decombe
1996-10-28 0:00 ` Robert Dewar
1996-10-31 0:00 ` Doug Marker
1996-10-28 0:00 ` Alexandre Oliva
1996-10-28 0:00 ` David Hanley
1996-10-28 0:00 ` Matt Kennel
1996-10-29 0:00 ` Chris Trimble
1996-10-31 0:00 ` Doug Marker
1996-10-31 0:00 ` David Bennett
1996-10-28 0:00 ` Matthew Heaney
1996-10-29 0:00 ` Vincent WEBER
1996-10-31 0:00 ` James McKim
1996-11-01 0:00 ` Matthew Heaney
1996-11-04 0:00 ` James McKim
1996-10-30 0:00 ` Don Harrison
1996-10-31 0:00 ` James McKim
1996-11-04 0:00 ` Don Harrison
1996-11-23 0:00 ` Van Snyder
1996-10-30 0:00 ` Jon S Anthony
1996-11-01 0:00 ` Eiffel and Java + Ada dispatching Jean-Marc Jezequel
1996-10-31 0:00 ` Eiffel and Java Joachim Durchholz
1996-11-01 0:00 ` Norman H. Cohen
1996-11-02 0:00 ` Jon S Anthony
1996-11-02 0:00 ` Eiffel and Java + Ada dispatching Jon S Anthony
1996-11-03 0:00 ` Eiffel and Java Joachim Durchholz
1996-11-05 0:00 ` Norman H. Cohen
1996-10-28 0:00 ` Larry Kilgallen
1996-10-30 0:00 ` Ronald Cole
1996-10-29 0:00 ` Don Harrison
1996-10-29 0:00 ` Eiffel and Java + Ada dispatching Vincent WEBER
1996-10-30 0:00 ` Jean-Marc Jezequel
1996-11-01 0:00 ` Joachim Durchholz
1996-11-01 0:00 ` Don Harrison
1996-10-30 0:00 ` Don Harrison
1996-10-30 0:00 ` Jon S Anthony
1996-10-29 0:00 ` Eiffel and Java Fergus Henderson
1996-10-30 0:00 ` Don Harrison
1996-10-30 0:00 ` Fergus Henderson
1996-10-31 0:00 ` David L. Shang
1996-11-01 0:00 ` Matt Kennel
1996-11-04 0:00 ` David L. Shang
1996-11-05 0:00 ` Matt Kennel
1996-11-06 0:00 ` David L. Shang
1996-11-04 0:00 ` Robert I. Eachus
1996-11-01 0:00 ` Jon S Anthony
1996-11-02 0:00 ` Fergus Henderson
1996-11-04 0:00 ` David L. Shang
1996-11-05 0:00 ` Jon S Anthony
1996-11-02 0:00 ` Darko BUDOR
1996-11-02 0:00 ` Fergus Henderson
1996-11-03 0:00 ` Darko BUDOR
1996-11-03 0:00 ` Matt Kennel
1996-11-03 0:00 ` Jon S Anthony
1996-11-03 0:00 ` Matthias Ernst
1996-11-05 0:00 ` Jon S Anthony
1996-11-10 0:00 ` Marcos F. F. de Macedo
1996-11-11 0:00 ` David L. Shang
1996-11-12 0:00 ` Fergus Henderson
1996-11-12 0:00 ` David L. Shang
1996-11-12 0:00 ` David L. Shang
1996-11-16 0:00 ` Fergus Henderson
1996-11-18 0:00 ` David L. Shang
1996-11-18 0:00 ` Kai Quale
1996-11-18 0:00 ` David L. Shang
1996-11-25 0:00 ` Kai Quale
1996-11-15 0:00 ` Paul Johnson
1996-11-12 0:00 ` Alexander Asteroth
1996-11-11 0:00 ` Marcos F. F. de Macedo
1996-11-12 0:00 ` Benedict A. Gomes
1996-11-12 0:00 ` Matt Kennel
1996-10-30 0:00 ` Eiffel and Java + Ada dispatching Robert I. Eachus
1996-10-30 0:00 ` Jon S Anthony
1996-11-04 0:00 ` Don Harrison
1996-11-04 0:00 ` C to Ada Ali Mirhosseini
1996-11-04 0:00 ` Robert Dewar
1996-11-04 0:00 ` Matthew Daniel
1996-11-05 0:00 ` Eiffel and Java + Ada dispatching Jon S Anthony
1996-11-05 0:00 ` Don Harrison
1996-11-06 0:00 ` Jon S Anthony
1996-10-30 0:00 ` Eiffel and Java David Petrie Stoutamire
1996-10-31 0:00 ` Eiffel and Java + Ada dispatching Jon S Anthony
1996-11-01 0:00 ` Jean-Marc Jezequel
[not found] ` <E06F2B.Az7@syd.csa.com.au>
1996-11-01 0:00 ` Jon S Anthony
1996-11-04 0:00 ` Don Harrison [this message]
1996-11-05 0:00 ` Jon S Anthony
1996-11-02 0:00 ` Robert Dewar
1996-11-04 0:00 ` Norman H. Cohen
1996-11-05 0:00 ` Don Harrison
1996-11-05 0:00 ` Robb Nebbe
1996-11-06 0:00 ` To overload or not to overload (was Eiffel and Java + Ada dispatching) Don Harrison
1996-11-06 0:00 ` Robb Nebbe
1996-11-07 0:00 ` Norman H. Cohen
1996-11-07 0:00 ` Don Harrison
1996-11-07 0:00 ` Jon S Anthony
1996-11-11 0:00 ` Don Harrison
1996-11-07 0:00 ` Jon S Anthony
1996-11-07 0:00 ` Juergen Schlegelmilch
1996-11-08 0:00 ` Don Harrison
1996-11-08 0:00 ` Don Harrison
1996-11-14 0:00 ` Jon S Anthony
1996-11-14 0:00 ` Jon S Anthony
1996-11-08 0:00 ` bill.williams
1996-11-11 0:00 ` Don Harrison
1996-11-06 0:00 ` Eiffel and Java + Ada dispatching Jean-Marc Jezequel
1996-11-07 0:00 ` Robb Nebbe
1996-11-08 0:00 ` Robert I. Eachus
1996-11-05 0:00 ` Joachim Durchholz
1996-11-06 0:00 ` Robert I. Eachus
1996-11-08 0:00 ` Don Harrison
1996-11-08 0:00 ` Jon S Anthony
1996-11-08 0:00 ` Robert A Duff
1996-11-12 0:00 ` Don Harrison
1996-11-12 0:00 ` Robert A Duff
1996-11-13 0:00 ` Don Harrison
1996-11-13 0:00 ` Robert A Duff
1996-11-14 0:00 ` Don Harrison
1996-11-13 0:00 ` Jon S Anthony
1996-11-15 0:00 ` Don Harrison
1996-11-19 0:00 ` Jon S Anthony
1996-11-20 0:00 ` Don Harrison
1996-11-12 0:00 ` Joachim Durchholz
1996-11-15 0:00 ` Richard Riehle
1996-11-16 0:00 ` Interfacing contracts (Was: Eiffel and Java + Ada dispatching) Geert Bosch
1996-11-17 0:00 ` Robert A Duff
1996-11-14 0:00 ` Eiffel and Java + Ada dispatching Robert I. Eachus
1996-11-14 0:00 ` Robert A Duff
1996-11-15 0:00 ` Don Harrison
1996-11-15 0:00 ` Robert I. Eachus
1996-11-19 0:00 ` Don Harrison
1996-11-18 0:00 ` Vincent Celier
1996-11-22 0:00 ` Don Harrison
1996-11-19 0:00 ` Jon S Anthony
1996-11-15 0:00 ` portmanteau (was Re: Eiffel and Java + Ada dispatching) Robert I. Eachus
1996-11-07 0:00 ` Eiffel and Java + Ada dispatching Jon S Anthony
1996-11-07 0:00 ` Robb Nebbe
1996-11-12 0:00 ` Jon S Anthony
1996-10-31 0:00 ` Joachim Durchholz
1996-11-01 0:00 ` Eiffel and Java Matthias Ernst
1996-11-01 0:00 ` Benedict A. Gomes
1996-11-01 0:00 ` William Clodius
1996-11-02 0:00 ` Eiffel and Java + Ada dispatching Jon S Anthony
1996-11-02 0:00 ` Jon S Anthony
1996-11-04 0:00 ` Eiffel and Java Robert I. Eachus
1996-10-30 0:00 ` Jon S Anthony
1996-11-01 0:00 ` Don Harrison
1996-11-01 0:00 ` Jon S Anthony
1996-11-07 0:00 ` Marcos F. F. de Macedo
1996-11-11 0:00 ` Ian Joyner
1996-11-12 0:00 ` Don Harrison
1996-11-13 0:00 ` Norman H. Cohen
1996-11-15 0:00 ` Don Harrison
1996-11-14 0:00 ` Jon S Anthony
1996-11-15 0:00 ` Don Harrison
1996-11-19 0:00 ` Jon S Anthony
1996-11-21 0:00 ` Don Harrison
1996-11-12 0:00 ` Jon S Anthony
1996-10-31 0:00 ` Joachim Durchholz
1996-11-01 0:00 ` Jon S Anthony
1996-11-02 0:00 ` Jon S Anthony
1996-11-03 0:00 ` Eiffel and Java + Ada dispatching Joachim Durchholz
1996-11-04 0:00 ` Eiffel and Java Richard A. O'Keefe
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox