From: Richard Riehle <richard@adaworks.com>
Subject: Re: Another Idea for Ada 20XX
Date: Wed, 05 Dec 2001 20:14:24 -0800
Date: 2001-12-06T04:15:50+00:00 [thread overview]
Message-ID: <3C0EF0A0.9F42EDB4@adaworks.com> (raw)
In-Reply-To: 3C0CF4E3.A53D20A7@sparc01.ftw.rsc.raytheon.com
Wes Groleau wrote:
> Larry Kilgallen wrote:
> > If they simply used common type declarations, a lot of errors would
> > be detected. If Meters is a new type and is used throughout, and
> > Feet is another new type, it becomes difficult to add them.
>
> But that's not enough to prevent 2 Meters * 2 Meters = 4 Meters
> nor to allow 10 minutes * 5 KPH = 833 Meters
>
> --
> Wes Groleau
> http://freepages.rootsweb.com/~wgroleau
Correct. However, a simple type declaration is just part of the
solution.
I don't believe it requires a change to the language. Rather, it begs
for a
simple object-oriented programming solution, along with some
old-fashioned
encapsulation.
package Metric_Number is
type Metric_Type is private;
-- export services for arithmetic on this type
function "+"(L, R : Metric_Type) return Metric_Type;
-- more arithmetic and boolean functions
private
-- full definition for the Metric_Type;
-- helper type to avoid recursion during implementation
end Metric_Number;
In this way, we can control the behavior of each function with some
exactness
instead of depending only on the predefined behavior of ALRM Chapter 4
for
numeric types. Of course, if we also had pre- and post-conditions as
part of
the language, this contract could be made even more robust. In that
case, there
would definitely be no need for a specialized language feature.
Richard Riehle
next prev parent reply other threads:[~2001-12-06 4:14 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-12-02 19:51 Another Idea for Ada 20XX Gautier Write-only-address
2001-12-02 22:36 ` James Rogers
2001-12-03 12:44 ` Marc A. Criley
2001-12-03 14:29 ` Larry Kilgallen
2001-12-04 0:25 ` Marc A. Criley
2001-12-04 1:40 ` Adrian Hoe
2001-12-04 1:56 ` Larry Kilgallen
2001-12-04 16:08 ` Wes Groleau
2001-12-04 17:48 ` Larry Kilgallen
2001-12-09 23:02 ` Nick Roberts
2001-12-10 16:22 ` Stephen Leake
2001-12-10 17:11 ` Wes Groleau
2001-12-10 20:30 ` Robert C. Leif, Ph.D.
2001-12-10 20:59 ` Wes Groleau
2001-12-10 17:09 ` Wes Groleau
2001-12-10 17:32 ` Larry Kilgallen
2001-12-04 19:59 ` Vincent Marciante
2001-12-04 20:20 ` Wes Groleau
2001-12-04 22:18 ` Matthew Heaney
2001-12-06 4:14 ` Richard Riehle [this message]
2001-12-06 17:39 ` Wes Groleau
2001-12-07 0:55 ` Adrian Hoe
2001-12-07 9:01 ` Dmitry A. Kazakov
2001-12-07 11:49 ` Tarjei T. Jensen
2001-12-07 22:51 ` Dimensions (was Re: Another Idea for Ada 20XX) Mark Lundquist
2001-12-08 3:52 ` Richard Riehle
2001-12-08 5:28 ` Mark Lundquist
2001-12-08 18:59 ` Matthew Heaney
2001-12-08 21:23 ` Wes Groleau
2001-12-09 22:15 ` Robert C. Leif, Ph.D.
2001-12-10 14:09 ` Ian
2001-12-03 14:56 ` Another Idea for Ada 20XX Mark Lundquist
2001-12-06 15:27 ` Philip Anderson
2001-12-07 22:51 ` Mark Lundquist
2001-12-10 9:01 ` Dmitry A. Kazakov
-- strict thread matches above, loose matches on Subject: below --
2001-12-02 21:24 Gautier Write-only-address
2001-12-03 14:56 ` Mark Lundquist
2001-12-02 16:01 James Rogers
2001-12-02 16:38 ` Preben Randhol
2001-12-02 22:26 ` James Rogers
2001-12-02 21:19 ` Patrick Hohmeyer
2001-12-02 21:26 ` Lutz Donnerhacke
2001-12-02 23:49 ` Patrick Hohmeyer
2001-12-03 6:06 ` Wilhelm Spickermann
2001-12-03 8:58 ` Lutz Donnerhacke
2001-12-03 13:40 ` Thomas Koenig
2001-12-03 0:21 ` Robert C. Leif, Ph.D.
2001-12-03 0:35 ` Robert Dewar
2001-12-03 1:33 ` James Rogers
2001-12-03 12:34 ` Dirk Dickmanns
2001-12-03 14:56 ` Mark Lundquist
2001-12-03 15:12 ` Lutz Donnerhacke
2001-12-03 17:00 ` chris.danx
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox