comp.lang.ada
 help / color / mirror / Atom feed
From: Hyman Rosen <hyrosen@mail.com>
Subject: Re: Why is Ada NOT a good choice for a beginner to programming?
Date: Fri, 10 Jan 2003 04:26:21 -0500
Date: 2003-01-10T04:26:21-05:00	[thread overview]
Message-ID: <1042190781.488452@master.nyc.kbcfp.com> (raw)
In-Reply-To: <mailman.1042188242.31049.comp.lang.ada@ada.eu.org>

Grein, Christoph wrote:
> For me, the code posted looked like Kazakov's solution with run-time handling of 
> dimension exponents. Your reply now seems to say that C++ does the checking and 
> exponent addition during compile time. Is that true?

Yes. All those exponents are part of the type, not the object.

When you multiply or divide two units, the compiler can find
only one specialization of the operator* or operator/ template
which accepts the correct parameters, and is therefore forced to
synthesize the correct return type. C++ instantiates the correct
operator for you; in Ada, you would have to request a generic
instantiation before you could use it.

Meanwhile, addition and subtraction are defined only for
two unit operands of the same type (that is, all exponents
equal), so any attempt to add disparate units will not
compile.

Unit objects don't need to carry around type information at runtime,
so they are only as large as the type used to hold their numeric
value. Any half-decent C++ compiler will also inline all the
arithmetic, so the compiled code should look just like arithmetic
on the underlying type, with no runtime overhead at all for the
units checking. This technique works only when all units are
statically present in the code, naturally.

My code is the bare skeletal outline of the approach, of course.




  reply	other threads:[~2003-01-10  9:26 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-10  8:35 Why is Ada NOT a good choice for a beginner to programming? Grein, Christoph
2003-01-10  9:26 ` Hyman Rosen [this message]
2003-01-13 16:49 ` Hyman Rosen
  -- strict thread matches above, loose matches on Subject: below --
2003-01-13  6:13 Grein, Christoph
2003-01-10  6:38 Grein, Christoph
2003-01-10  8:21 ` Hyman Rosen
2003-01-10 15:51 ` Kevin Cline
2003-01-10 19:00 ` Kevin Cline
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