From: eachus@spectre.mitre.org (Robert I. Eachus)
Subject: Re: Eiffel and Java
Date: 1996/11/04
Date: 1996-11-04T00:00:00+00:00 [thread overview]
Message-ID: <EACHUS.96Nov4173856@spectre.mitre.org> (raw)
In-Reply-To: E00t53.CG2@syd.csa.com.au
In article <55crp0$qn9@dscomsa.desy.de> mernst@x4u2.desy.de (Matthias Ernst) writes:
> All languages that unify inheritance and subtyping enforce that
> once you inherit from a class you build a subtype. There are
> several examples (mostly with binary methods and the type Self,
> SAME, like Current or whatever) that show that it may be the
> implementation you are interested in but you can't guarantee
> subtype relationship.
> class Comparable
> is
> "<="(other: Self): Bool is abstract;
> ">="(other: Self): Bool is other <= self end;
> ">"(other: Self): Bool is ~(self <= other) end;
> "<"(other: Self): Bool is other > self end;
> end;...
I think I understand what you want here, but it works fine in Ada 95:
package Compare is
type Comparable is tagged private;
function "<=" (L,R: Comparable) return Boolean is abstract;
function ">=" (L,R: Comparable) return Boolean;
function ">" (L,R: Comparable) return Boolean;
function "<" (L,R: Comparable) return Boolean;
private
type Comparable is null record;
end Compare;
package body Compare is
function ">=" (L,R: Comparable) return Boolean is
begin return R <= L; end ">=";
function ">" (L,R: Comparable) return Boolean is
begin return not (L <= R); end ">";
function "<" (L,R: Comparable) return Boolean;
begin return not (R <= L); end "<";
end Compare;
For types derived from Comparable, you only need to define the one
inequality operation. The other possibility is that you want a
generic template. That works in Ada 95 as well:
generic
type Comparable is tagged private;
with function "<=" (L,R: Comparable) return Boolean is <>;
package Compare is
function ">=" (L,R: Comparable) return Boolean;
function ">" (L,R: Comparable) return Boolean;
function "<" (L,R: Comparable) return Boolean;
end Compare;
package body Compare is -- (same as above)
I went through all this because it is one of the cases where the
symmetric Ada notation does have technical advantages.
--
Robert I. Eachus
with Standard_Disclaimer;
use Standard_Disclaimer;
function Message (Text: in Clever_Ideas) return Better_Ideas is...
next prev parent reply other threads:[~1996-11-04 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 ` 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 ` Larry Kilgallen
1996-10-30 0:00 ` Ronald Cole
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-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 ` Jean-Marc Jezequel
1996-11-01 0:00 ` Don Harrison
1996-11-01 0:00 ` Joachim Durchholz
1996-10-30 0:00 ` Don Harrison
1996-10-30 0:00 ` Jon S Anthony
1996-10-30 0:00 ` Robert I. Eachus
1996-10-30 0:00 ` Eiffel and Java David Petrie Stoutamire
1996-10-30 0:00 ` Eiffel and Java + Ada dispatching 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-31 0:00 ` Jon S Anthony
[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 ` Joachim Durchholz
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 ` 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-07 0:00 ` Norman H. Cohen
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-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 ` 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-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 Robb Nebbe
1996-11-07 0:00 ` Jon S Anthony
1996-11-12 0:00 ` Jon S Anthony
1996-11-01 0:00 ` Jean-Marc Jezequel
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 ` Robert I. Eachus [this message]
1996-10-30 0:00 ` Eiffel and Java 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 ` Ranjan Bagchi
1996-11-01 0:00 ` Alan Lovejoy
1996-11-01 0:00 ` Chris
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