comp.lang.ada
 help / color / mirror / Atom feed
From: kcline17@hotmail.com (Kevin Cline)
Subject: Re: Why is Ada NOT a good choice for a beginner to programming?
Date: 10 Jan 2003 07:51:15 -0800
Date: 2003-01-10T15:51:16+00:00	[thread overview]
Message-ID: <ba162549.0301100751.5e21e05c@posting.google.com> (raw)
In-Reply-To: mailman.1042181162.27181.comp.lang.ada@ada.eu.org

"Grein, Christoph" <christoph.grein@eurocopter.com> wrote in message news:<mailman.1042181162.27181.comp.lang.ada@ada.eu.org>...
> > > One complaint he had was that it be possible to define a Length
> > > using derived types and still have "*" return values of type Length,
> > > when it should return an area.  He had a point, hadn't he?
> > > OTOH, with only structural equivalence of types, and no way to derive
> > > both an integral length type and an integral area type, that are really
> > > diferent, how can you build areas into your types, such that the compiler
> > > will prevent use of values of the wrong type?
> > > 
> > > In which languages has this been fixed?
> > 
> > This is relatively easy to do in C++.
> > See http://www.fnal.gov/docs/working-groups/fpcltf/html/SIunits-summary.html
> 
> This is also easy in Ada.
> 
> For a collection of methods how to deal with dimensions in Ada, see
> <http://home.T-Online.de/home/Christ-Usch.Grein/Ada/Dimension.html>

Did you read Grein's paper?  He says that it was not easy at all.

Grein writes:

  But the request to have full dimensional checking persists as can be seen
  from the pertinent discussions in newsgroup Comp.Lang.Ada. There are two
  basic ways one can try to solve the problem, either by adding to the
  numeric value its dimension as attribute, or by using different types for
  different dimensions.  Since the first method is runtime-consuming,
  whereas the second one is only compiletime-consuming, all effort naturally
  concentrates on the second method.   This is doomed to fail
  as is shown in the paper cited above - although a plethora of overloaded
  operations is used, the result is not really satisfactory.
  Physical equations with all their powers and roots evade these attempts.

In short, Ada's requirement for explicit generic instantiation repels
attempts to create a compile-time verified system of dimensional types,
and Grein gave up on attempts to achieve compile-time type safety.

C++ does not have this problem, and compile-time type safety is
achieved in a fairly obvious way.



  parent reply	other threads:[~2003-01-10 15:51 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-10  6:38 Why is Ada NOT a good choice for a beginner to programming? Grein, Christoph
2003-01-10  8:21 ` Hyman Rosen
2003-01-10 15:51 ` Kevin Cline [this message]
2003-01-11 18:32   ` Dimension checking was " Robert C. Leif
2003-01-13 17:34     ` Stephen Leake
2003-01-13 23:20     ` Kevin Cline
2003-01-10 19:00 ` Kevin Cline
  -- strict thread matches above, loose matches on Subject: below --
2003-01-13  6:13 Grein, Christoph
2003-01-10  8:35 Grein, Christoph
2003-01-10  9:26 ` Hyman Rosen
2003-01-13 16:49 ` Hyman Rosen
2002-12-21 15:47 Alexandre E. Kopilovitch
2002-12-23 14:48 ` Wes Groleau
2002-12-21  3:30 David Wright
2002-12-21  5:44 ` sk
2002-12-23 14:29   ` Wes Groleau
2002-12-23 17:36     ` sk
2002-12-23 18:24       ` David Wright
2002-12-23 19:16         ` sk
2002-12-23 19:48           ` David Wright
2002-12-23 21:33             ` Wes Groleau
2002-12-23 21:17           ` Robert A Duff
2002-12-24 19:22             ` faust
2002-12-24  0:46               ` Robert A Duff
2002-12-24  9:41                 ` Pascal Obry
2002-12-25  4:43                 ` faust
2002-12-27 17:54                   ` Warren W. Gay VE3WWG
2003-01-02 13:50                     ` Wes Groleau
2002-12-25  7:24                 ` AG
2003-01-02  9:56                   ` John McCabe
2003-01-02 13:47                 ` Wes Groleau
2003-01-08 19:39                   ` faust
2003-01-08  2:44                     ` Jeffrey Creem
2003-01-08 18:54                       ` Wes Groleau
2003-01-08 19:48                         ` chris.danx
2003-01-08 21:59                           ` Wes Groleau
2003-01-09 15:31                             ` Georg Bauhaus
2003-01-10  3:26                               ` Hyman Rosen
2003-01-10 22:58                                 ` Georg Bauhaus
2003-01-10  3:51                               ` Kevin Cline
2003-01-10 13:29                               ` Wes Groleau
2003-01-11 12:09                               ` Richard Riehle
2003-01-11 18:13                                 ` Wes Groleau
2003-01-09 16:52                           ` faust
2003-01-08 21:57                             ` Vinzent Hoefler
2003-01-09  0:59                       ` faust
2003-01-09  0:59                       ` faust
2003-01-08 13:14                         ` Ted Dennison
2003-01-08 17:41                         ` Warren W. Gay VE3WWG
2003-01-09 16:40                           ` faust
2003-01-08 21:58                             ` Vinzent Hoefler
2002-12-23 21:30         ` Wes Groleau
2002-12-23 22:11           ` David Wright
2002-12-30 16:22         ` Mark
2002-12-24  0:50     ` Craig Carey
2002-12-29 14:44       ` Colin Paul Gloster
2002-12-21  8:39 ` arvids lemchens
2002-12-21  8:53 ` Gautier
2002-12-21  9:42 ` Craig Carey
2002-12-21 10:44 ` Dale Stanbrough
2002-12-21 15:47   ` Alfred Hilscher
2002-12-21 19:01     ` tmoran
2002-12-22  1:06       ` Robert C. Leif
2002-12-23 14:56         ` Wes Groleau
2002-12-23 11:05       ` Alfred Hilscher
2002-12-22  0:34     ` James S. Rogers
2002-12-23 11:11       ` Alfred Hilscher
2002-12-23 14:32         ` Wes Groleau
2002-12-23 19:54         ` tmoran
2002-12-21 11:57 ` David Marceau
2002-12-21 15:59 ` Alfred Hilscher
2002-12-21 17:48 ` Britt Snodgrass
2002-12-21 20:05 ` Peter Hend�n
2002-12-22  1:54 ` faust
2002-12-22  1:28   ` Hyman Rosen
2002-12-22  2:11     ` Larry Kilgallen
2002-12-22 22:49     ` faust
     [not found] ` <u7m2ua.qk3.ln@beastie.ix.netcom.com>
2002-12-23 14:55   ` Wes Groleau
2002-12-24 14:01 ` W D Tate
2002-12-24 20:06   ` Rod Haper
2002-12-25  0:37   ` noone
2002-12-26 13:23     ` W D Tate
2002-12-26 20:37       ` David Starner
2002-12-27 14:02         ` W D Tate
2003-01-13 12:18 ` John English
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox