From: Shark8 <onewingedshark@gmail.com>
Subject: Re: Efficiency of code generated by Ada compilers
Date: Fri, 6 Aug 2010 16:14:21 -0700 (PDT)
Date: 2010-08-06T16:14:21-07:00 [thread overview]
Message-ID: <a4c3d0d3-f5f5-4c36-9bbe-09923e1b9a0c@d8g2000yqf.googlegroups.com> (raw)
In-Reply-To: f3c0cf89-6993-4b83-b4fe-8a920ce23a14@f6g2000yqa.googlegroups.com
On Aug 6, 2:21 pm, Elias Salomão Helou Neto <eshn...@gmail.com> wrote:
> I would like to know how does code generated by Ada compilers compare
> to those generated by C++. I use C++ for numerical software
> implementation, but I am trying to find alternatives. One thing,
> however, I cannot trade for convenience is efficiency. Will Ada
> compiled code possibly be as efficient as that generated by C++
> compilers?
>
> Also, I do need to have something similar to C++ "templated
> metaprogramming" techniques. In particular, C++0x will introduce
> variadic templates, which will allow us to write templates that will
> generate efficient, type-safe, variable-argument functions. Is there
> anything like that in Ada?
>
> If any of the above questions is to be negatively answered, I ask: why
> does Ada even exist? And further, is there any language which is
> _truly_ better (regarding code maintainability, readability and
> developing ease) than C++ and as overhead-free as it?
>
> Thank you in advance,
> Elias.
Well, it really depends on what you mean by "efficient." If you're
terming things like accessing invalid indecies of arrays as
'efficient' "because there's no time wasted on range-checking" then
you're *REALLY* in the wrong place... however, if you're terming
'efficient' as there are no range-checks generated because the
variable indexing the array is constrained to valid values, well then
you'd be quite welcome here.
{GCC has an Ada front-end, so in-theory Ada and C++ gcc-compiled
programs should have very-near the same profiles; this is, however,
not taking into any consideration for Ada's stronger type-system and
impacts of compile-time checks & optimizations that allows.} As for
me, I am rather strongly opinionated that things like range-checking
should [always] be done, unless there is some VERY compelling and
definable reason not to. {Say you're making a Stream-interpreter where
the stream is operation-instructions for some robotic component,
except the stream itself also contains control-commands for sub-
unit[s] that have a different/larger/disjoint range.}
Templates, as I understand them in C++ are roughly analogous to Ada's
generic-system; I never got into C++'s templates and am relatively new
to Ada, so I'll let someone with more experience address that aspect.
next prev parent reply other threads:[~2010-08-06 23:14 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-06 20:21 Efficiency of code generated by Ada compilers Elias Salomão Helou Neto
2010-08-06 20:24 ` (see below)
2010-08-06 23:14 ` Shark8 [this message]
2010-08-07 7:53 ` Dmitry A. Kazakov
2010-08-10 13:52 ` Elias Salomão Helou Neto
2010-08-10 14:24 ` Shark8
2010-08-10 14:28 ` Shark8
2010-08-10 15:01 ` Robert A Duff
2010-08-10 15:14 ` Yannick Duchêne (Hibou57)
2010-08-10 18:32 ` Robert A Duff
2010-08-10 15:10 ` Georg Bauhaus
2010-08-10 15:32 ` Dmitry A. Kazakov
2010-08-10 22:26 ` Randy Brukardt
2010-08-20 7:22 ` Yannick Duchêne (Hibou57)
2010-08-08 14:03 ` Gene
2010-08-08 15:49 ` Robert A Duff
2010-08-08 17:13 ` Charles H. Sampson
2010-08-08 18:11 ` Dmitry A. Kazakov
2010-08-08 20:51 ` Robert A Duff
2010-08-08 22:10 ` (see below)
2010-08-08 22:22 ` Robert A Duff
2010-08-09 4:46 ` Yannick Duchêne (Hibou57)
2010-08-09 5:52 ` J-P. Rosen
2010-08-09 13:28 ` Robert A Duff
2010-08-09 18:42 ` Jeffrey Carter
2010-08-09 19:05 ` Robert A Duff
2010-08-10 10:00 ` Jacob Sparre Andersen
2010-08-10 12:39 ` Robert A Duff
2010-08-09 19:33 ` Yannick Duchêne (Hibou57)
2010-08-09 21:42 ` Robert A Duff
2010-08-10 12:26 ` Phil Clayton
2010-08-10 12:57 ` Yannick Duchêne (Hibou57)
2010-08-10 14:03 ` Elias Salomão Helou Neto
2010-08-10 14:27 ` Yannick Duchêne (Hibou57)
2010-08-10 22:50 ` anon
2010-08-10 23:28 ` Yannick Duchêne (Hibou57)
2010-08-10 23:38 ` Yannick Duchêne (Hibou57)
2010-08-11 7:06 ` Niklas Holsti
2010-08-11 11:58 ` anon
2010-08-11 12:37 ` Georg Bauhaus
2010-08-11 13:13 ` Robert A Duff
2010-08-11 23:49 ` Randy Brukardt
2010-08-10 14:31 ` Shark8
2010-08-11 7:14 ` Charles H. Sampson
2010-08-11 6:42 ` Charles H. Sampson
2010-08-08 22:35 ` tmoran
2010-08-09 13:53 ` Robert A Duff
2010-08-09 17:59 ` tmoran
2010-08-09 19:36 ` Yannick Duchêne (Hibou57)
2010-08-09 21:38 ` Robert A Duff
2010-08-11 7:42 ` Charles H. Sampson
2010-08-11 13:38 ` Robert A Duff
2010-08-12 7:48 ` Charles H. Sampson
2010-08-12 8:08 ` Ludovic Brenta
2010-08-12 17:10 ` Charles H. Sampson
2010-08-12 18:06 ` Jeffrey Carter
2010-08-11 18:49 ` Simon Wright
2010-08-12 7:54 ` Charles H. Sampson
2010-08-12 8:36 ` Dmitry A. Kazakov
2010-08-12 11:04 ` Brian Drummond
2010-08-12 19:23 ` Simon Wright
2010-08-12 20:21 ` (see below)
2010-08-13 15:08 ` Elias Salomão Helou Neto
2010-08-13 15:10 ` Elias Salomão Helou Neto
2010-08-13 18:01 ` Georg Bauhaus
2010-08-13 19:52 ` Robert A Duff
2010-08-14 9:44 ` Georg Bauhaus
2010-08-13 20:22 ` Robert A Duff
2010-08-14 1:34 ` Randy Brukardt
2010-08-14 7:18 ` anon
2010-08-13 21:57 ` Jeffrey Carter
2010-08-13 22:37 ` Yannick Duchêne (Hibou57)
2010-08-13 22:43 ` Yannick Duchêne (Hibou57)
2010-08-13 23:29 ` tmoran
2010-08-14 0:02 ` Yannick Duchêne (Hibou57)
2010-08-14 0:16 ` (see below)
2010-08-14 10:47 ` Brian Drummond
2010-08-14 13:58 ` Yannick Duchêne (Hibou57)
2010-08-15 0:23 ` Brian Drummond
2010-08-14 14:51 ` (see below)
2010-08-15 0:58 ` Brian Drummond
2010-08-15 1:58 ` (see below)
2010-08-15 10:31 ` Brian Drummond
2010-08-13 15:37 ` Dmitry A. Kazakov
2010-08-16 13:29 ` Elias Salomão Helou Neto
2010-08-16 14:09 ` Dmitry A. Kazakov
2010-08-18 14:00 ` Elias Salomão Helou Neto
2010-08-18 16:38 ` Dmitry A. Kazakov
2010-08-19 18:52 ` Elias Salomão Helou Neto
2010-08-19 19:48 ` Dmitry A. Kazakov
2010-08-13 16:58 ` (see below)
2010-08-14 16:13 ` Charles H. Sampson
2010-08-16 13:45 ` Elias Salomão Helou Neto
2010-08-15 12:32 ` Florian Weimer
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox