From: jsa@alexandria (Jon S Anthony)
Subject: Re: Eiffel and Java
Date: 1996/10/30
Date: 1996-10-30T00:00:00+00:00 [thread overview]
Message-ID: <JSA.96Oct30181901@alexandria> (raw)
In-Reply-To: mheaney-ya023180002810962151220001@news.ni.net
In article <E02IMv.I9M@syd.csa.com.au> donh@syd.csa.com.au (Don Harrison) writes:
> Matthew Heaney writes:
>
> :Ada's type mechanism accomplishes the equivalent of pre- and
> :post-conditions, and you don't seem to mind their inclusion in Eiffel, so
> :that can't be it.
>
> It's true that Ada's typing does accomplish some of what assertions offer
> but assertions are more general (and useful) than that. For example, it is
Right.
> :About subprogram calls. C++ or Eiffel programmers call objects this way:
> :
> : theStack.push (5);
> :
> :and Ada programmers do this
> :
> : Push (5, On => The_Stack);
> :
> :It's not a moral issue which way is better, just a difference in syntax.
> :They both do the same thing.
>
> Yes - not something to lose sleep over. The Ada syntax can be justified
> because it is a hybrid language. IMO, the dot notation is preferable for
Actually, while it is not multiple dispatching (multi-methods), the
syntax does indeed allow several little niceties that the dot notation
flubs. It is this stuff that is the "justification" - not any so called
"hybrid" aspects.
1) the dot notation makes the operation _look_ like a field of the object but
in general this is _not_ true (some OOLs do have per object methods but
not the usual ones like Eiffel, C++, Sather, etc...)
2) the dot is asymmetrical and makes many cummutative operations look
lopsided. For example, Union(set_a, set_b) = Union(set_b, set_a), and
the notation should reflect this (infix would be even nicer here). But
in "dot land" you have set_a.Union(set_b) which looks like set_a _has_
the operation and is "special" somehow.
3) the function notation allows Ada to dispatch based on the _result_ of
parameter which is a function call. Or has the function dispatch to
the right thing based on the other parameters. Bob Duff gave a couple
of nice examples of this:
Union(My_Set, Singleton(X)), where Singleton's dispatching is the
controlling _result_ and _not_ the argument (with X being an integer
or something). Here, Singleton would dispatch to the proper version
based on the tag of My_Set.
(Singleton(X) + Singleton(Y)) * My_Set, where "+" is union and "*" is
intersection. Here the tag of My_Set would control the dispatch of
the Singleton operations.
> it is special. The downside is that symmetric operations do not
> appear as such. Well, not really, because you can always regain it
> by inventing another class for performing symmetric operations:
>
> eg. class SET_OPS
> ...
> union (a, b: SET): SET is ...
> intersection (a, b: SET): SET is ...
> ...
> end
Well, sort of... Seems like pretty extraneous futzing to accomplish
such a simple and ordinary thing.
> In any case, truly symmetric operations are relatively few, IMO.
Actually, if you stated this as "for my areas, symmetric ops are
relatively few", I could buy it. But in general symmetric operations
are all over the place.
/Jon
--
Jon Anthony
Organon Motives, Inc.
Belmont, MA 02178
617.484.3383
jsa@organon.com
next prev parent reply other threads:[~1996-10-30 0:00 UTC|newest]
Thread overview: 168+ 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 ` David Hanley
1996-10-28 0:00 ` Matt Kennel
1996-10-28 0:00 ` Alexandre Oliva
1996-10-28 0:00 ` Robert Dewar
1996-10-31 0:00 ` Doug Marker
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 ` Jon S Anthony [this message]
1996-11-01 0:00 ` Eiffel and Java + Ada dispatching Jean-Marc Jezequel
1996-10-30 0:00 ` Eiffel and Java 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-31 0:00 ` Joachim Durchholz
1996-11-01 0:00 ` Norman H. Cohen
1996-11-02 0:00 ` Eiffel and Java + Ada dispatching Jon S Anthony
1996-11-02 0:00 ` Eiffel and Java Jon S Anthony
1996-11-03 0:00 ` 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 ` 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 ` Matt Kennel
1996-11-03 0:00 ` Darko BUDOR
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-29 0:00 ` Eiffel and Java + Ada dispatching Vincent WEBER
1996-10-30 0:00 ` Don Harrison
1996-10-30 0:00 ` Jon S Anthony
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 ` 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
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 ` Robert A Duff
1996-11-12 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-12 0:00 ` Eiffel and Java + Ada dispatching Robert A Duff
1996-11-13 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-13 0:00 ` Robert A Duff
1996-11-14 0:00 ` Don Harrison
1996-11-08 0:00 ` Jon S Anthony
1996-11-14 0:00 ` 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 ` William Clodius
1996-11-01 0:00 ` Benedict A. Gomes
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
-- strict thread matches above, loose matches on Subject: below --
1996-10-28 0:00 cosc19z5@bayou.uh.edu
[not found] ` <01bbc7f6$b1c0b7a0$LocalHost@gaijin>
1996-11-01 0:00 ` Alan Lovejoy
1996-11-01 0:00 ` Chris
1996-11-01 0:00 ` Ranjan Bagchi
1996-11-02 0:00 Ell
1996-11-02 0:00 ` traymond
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox