From: adaworks@netcom.com (AdaWorks)
Subject: Re: Real OO
Date: 1996/03/26
Date: 1996-03-26T00:00:00+00:00 [thread overview]
Message-ID: <adaworksDoutDH.2u5@netcom.com> (raw)
In-Reply-To: DoDqH4.29v@world.std.com
Robert A Duff (bobduff@world.std.com) wrote:
: In article <4if7s5$bfk@ra.nrl.navy.mil>,
: Richard Pitre <pitre@n5160d.nrl.navy.mil> wrote:
: >I figured that much. But how it this a limitation?
: It's a limitation by comparison with a "pure" OO language, in which
: every built-in data type, including things like integers, is a class,
: and you can do all the OOP-ish things with them. I didn't say this
: limitation is important. This thread started as a discussion of various
: differences between Ada and Eiffel, and this is one such difference.
Of course there is no inherent limitation in Ada. If one wanted to be
absolutely true to the tenets of OOP, one could do something like this:
package Number is
type Base_Number is abstract tagged private;
function "+" (L, R : Base_Number) return Base_Number is abstract;
-- also operators for "-", "*", ... etc.
private
type Base_Number is abstract tagged null record;
end Number;
Then create concrete number packages for each kind of number. For
example,
private
type Int_16 is range -2**16 .. 2**16 -1;
type Integer_16 is new Base_Number with record
Value : Int_16;
end record;
or later,
private
type R_16 is new Float range ...;
type Real16 is new Base_Number with record
Value : R_16;
end record;
Before you exclaim, "Arghhhhhhh" let me suggest that there
might be circumstances in which you really want to create your
own very restricted variation of the arithmetic operators for
the concrete types derived from this abstract class. In fact,
this could be the foundation abstract class for the famous
Fractions package, the Vector Arithmetic package, or several
other packages that service non-standard number models.
Furthermore, although we customarily use numbers defined in the
Ada LRM, nothing prevents us from approaching number definitions
in a more "pure" OOP mode. I realize, such an approach will be rare,
but I can imagine safety-sensitive applications where it might make
sense to do something such as this.
Richard Riehle
adaworks@netcom.com
--
richard@adaworks.com
AdaWorks Software Engineering
Suite 27
2555 Park Boulevard
Palo Alto, CA 94306
(415) 328-1815
FAX 328-1112
next parent reply other threads:[~1996-03-26 0:00 UTC|newest]
Thread overview: 191+ messages / expand[flat|nested] mbox.gz Atom feed top
[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 [this message]
1996-03-29 0:00 ` Real OO Brian Rogoff
1996-05-02 0:00 Bob Crispen
[not found] <4id031$cf9@dayuc.dayton.saic.com>
1996-03-18 0:00 ` Norman H. Cohen
1996-03-18 0:00 ` The Right Reverend Colin James III
1996-03-19 0:00 ` Norman H. Cohen
1996-03-21 0:00 ` Don Harrison
1996-03-20 0:00 ` Norman Cohen giving IBM a bad name The Right Reverend Colin James III
1996-03-20 0:00 ` Colin James III giving humans a bad name (was Re: Norman Cohen giving IBM a bad name) 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 ` Robert A Duff
1996-03-21 0:00 ` Norman H. Cohen
1996-03-22 0:00 ` Don Harrison
1996-03-20 0:00 ` Dale Stanbrough
1996-03-21 0:00 ` Richard Pitre
1996-03-20 0:00 ` 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 ` 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-04-04 0:00 ` Jon S Anthony
1996-04-04 0:00 ` Robb Nebbe
1996-04-04 0:00 ` Laurent Guerby
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 ` 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-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-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 ` Robb Nebbe
1996-05-06 0:00 ` Robert A Duff
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-01 0:00 ` AdaWorks
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 ` Jon S Anthony
1996-05-03 0:00 ` Don Harrison
1996-05-06 0:00 ` Jon S Anthony
1996-05-02 0:00 ` Robert I. Eachus
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-24 0:00 ` 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 ` 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 ` Joachim Durchholz
1996-05-14 0:00 ` Roger Browne
1996-05-14 0:00 ` Don Harrison
1996-05-14 0:00 ` Steve Tynor
1996-05-14 0:00 ` Robert A Duff
1996-05-15 0:00 ` Don Harrison
1996-05-14 0:00 ` Robert A Duff
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
1996-05-15 0:00 ` Steve Tynor
1996-05-15 0:00 ` Alexander Kjeldaas
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-03-28 0:00 ` 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
[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