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 11:00:37 -0800
Date: 2003-01-10T19:00:37+00:00	[thread overview]
Message-ID: <ba162549.0301101100.4b000259@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>

Christopher,

I apologize for not noticing that you were referring to your own paper.
But in the paper you mention numerous shortcomings
of the implementation:

  "Ada is not suited to handling physical dimensions!"

and

  ...we can include semantic information within variable declarations...

  g: Meter_Per_Second_2 := 9.81;
  t: Second             := 10.0;
  s: Meter              := 0.5 * g * t**2;
  
  It is the programmer's own responsibility that this formula is physically 
  correct, no type checking is done! 

  ...There is one service restriction: 
    Checks in assignments concerning physical dimensions are not performed. 

The C++ solution affords full compile-time checking of assignments,
and will not allow a quantity of one dimensionality to be assigned
to a variable of another dimensionality except by resorting to
a reinterpret-cast.



  parent reply	other threads:[~2003-01-10 19:00 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
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 [this message]
  -- 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