comp.lang.ada
 help / color / mirror / Atom feed
From: anon@att.net
Subject: Re: Efficiency of code generated by Ada compilers
Date: Tue, 10 Aug 2010 22:50:40 +0000 (UTC)
Date: 2010-08-10T22:50:40+00:00	[thread overview]
Message-ID: <i3sl3v$1ogj$1@news.ett.com.ua> (raw)
In-Reply-To: op.vg77swroxmjfy8@garhos

In <op.vg77swroxmjfy8@garhos>, =?iso-8859-15?Q?Yannick_Duch=EAne_=28Hibou57=29?= writes:
>Le Tue, 10 Aug 2010 16:03:13 +0200, Elias Salom=E3o Helou Neto  =
>
><eshneto@gmail.com> a =E9crit:
>> It is a pity that this post became a technical discussion on array
>> indexing.
>Could I, if you please, talk to Phil without your prior acknowledgment  =
>
>please ? ;)
>
>While I understand why you reacted (not the way you do... closed  =
>
>parenthesis)
>
>> A simple question that could be asked in a single line is:
>> can Ada access arrays without range checking?
>Sorry, due to a recent trouble with my news reader, I've the original po=
>st.
>
>However, on this sentence basis, I would say: if you do not want range  =
>
>check, then just disable it in the compiler option. But be warned you wi=
>ll  =
>
>then be unable to catch runtime error. While there is a way to safely dr=
>op  =
>
>this compiler option: validation with SPARK checker (just tell if you ne=
>ed  =
>
>to learn about it).
>
>If your matter is just about range checking, the answer is as simple as =
> =
>
>that.
>
>If you use GNAT, you may insert "-gnatp" in the command line arguments.
>http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gnat_ugn_unw/Run_002dTime-Checks=
>..html
>
>If you use GNAT from the GPS environment, you may open the "Project" men=
>u,  =
>
>then the "Edit project properties" submenu. Then choose the "Switches"  =
>
>tab, then the "Ada" tab and check the "Suppress all check" check box or =
> =
>
>uncheck the "Overflow check" check box.
>
>Providing I did not fail to understand what you meant.
>
>-- =
>
>There is even better than a pragma Assert: a SPARK --# check.
>--# check C and WhoKnowWhat and YouKnowWho;
>--# assert Ada;
>--  i.e. forget about previous premises which leads to conclusion
>--  and start with new conclusion as premise.
While the main expression are equal. The code generation by Ada compilers 
versus C or C++ is less efficient do to a number of factors.

  1. Elaboration:     Ada compilers can generate run-time elaboration
                      routines that must be executed before starting 
                      the main users program. C/C++ compilers do not 
                      perform any run-time elaboration, which cause 
                      the execution and code generation to be more 
                      efficient but cause the less program to be less
                      reliable.

  2. Run-Time Checks: The Ada compiler generates inline run-time checks 
                      which the C/C++ compiler do not.  Using the pragma 
                      "suppress" statement can eliminate most checks. The 
                      absent of these checks makes C/C++ less reliable.
                      Using the following removes all checks the statement 
                      does have other precise options as well.

             pragma Suppress ( All_Checks ) ;
             -- removes all checks on the program or that package.
                                            
             pragma Suppress ( All_Checks, ON => <name 1>, 
                                               ...
                                           ON => <name n> ) ;
             --  removes all checks on that set of names only. 
             --  Names may be an object such as an array or routine
             --  Also, the "ON =>" symbols are optional


  3. GCC backend:     Ada as well as any other language besides C or C++
                      must translate the core language into the C/C++ like 
                      tree structure. Which forces the core languages to be 
                      limited to C/C++ code generation.




  reply	other threads:[~2010-08-10 22:50 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
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 [this message]
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