comp.lang.ada
 help / color / mirror / Atom feed
From: Gordon Sande <g.sande@worldnet.att.net>
Subject: Re: Bounds Check Overhead
Date: Fri, 26 May 2006 17:49:09 GMT
Date: 2006-05-26T17:49:09+00:00	[thread overview]
Message-ID: <2006052614490816807-gsande@worldnetattnet> (raw)
In-Reply-To: 87ac9420s5.fsf@ludovic-brenta.org

On 2006-05-26 13:44:58 -0300, Ludovic Brenta <ludovic@ludovic-brenta.org> said:

> Rich Townsend <rhdt@barVOIDtol.udel.edu> writes:
>> Dick Hendrickson wrote:
>>> Given something like
>>> COMMON I
>>> DO I = 1,10
>>> call something (I)
>>> call something_else()
>>> enddo
>>> "something" is not allowed to change it's argument and neither
>>> "something" nor "something_else" is allowed to change the variable
>>> in common.  This prohibition flows down the entire call tree from
>>> these routines.  And that's why it's hard to check.
>> 
>> ...although a lot of the constructs introduced in Fortran 90 help in
>> checking -- in particular, if the called subroutines have INTENT()
>> on their arguments, then its pretty cut-and-dry whether I will be
>> modified or not. Having said that, things like host association can
>> muddy the waters somewhat -- but at least you only have to go down
>> one level to check if I is being modified.
> 
> Then Ada is better in that respect than Fortran.  In Ada, the compiler
> has enough knowledge about what subprograms do to their arguments that
> it can easily check that loop indexes never change (i.e. you can pass
> the loop index as an "in" parameter but not as an "out" or "in out"
> parameter).

> Also, in Ada, the loop index does not exist outside of the loop.  From
> what you said, it seems to me that in Fortran, the loop index still
> exists after the loop, and has a well-defined value, but the
> programmer can then change it.  Correct?

Many search idioms use the fact that a DO index is just another integer
variable which will have a known value on a forced exit from the loop.
It also has a known value when the loop terminates naturally. The index
is the exclusive property of the DO inside the loop but it is visible
to the rest of the program. Being an integer is a new restriction.

The contract that the programmer has with the compiler is that the
index will not be tampered with. The checking that many systems do is not
exhaustive and proveably correct. It just grumbles about the obvious cases.
If one use F90 well then the compiler will catch many more cases. Too
many folks in a hurry (and who know they never make mistakes) do not
bother (so they spend more time debugging and blaming the hardware or
compiler).

In olden times of F66 there was a long contorted notion of first and
second level definition to account for the fact that a DO index was
likely to be in a hardware register and compiler technology was not
developed to do much checking. It was more documentation of the quirks
that had been discovered in the early compilers. That is long since
past but some echoes survive.

The Ada constructs would require that one explicitly capture the loop
index on forced exit and do whatever else is required to notice a natural
termination. If the index was to be used in any way other than as an
arguement then one would have to explicitly copy it.

One gets used to whatever idioms are required. After a while they look
natural.

There have been more than a few suggested syntaxes for loops and searches.
This is not a topic devoid of extensive discussion.






  reply	other threads:[~2006-05-26 17:49 UTC|newest]

Thread overview: 314+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-22  4:54 Ada vs Fortran for scientific applications Nasser Abbasi
2006-05-22  6:45 ` Brooks Moses
2006-05-22  7:41   ` Jan Vorbrüggen
2006-05-22 18:49     ` Brooks Moses
2006-05-23  5:51       ` Tim Prince
2006-05-23  8:56       ` Jan Vorbrüggen
2006-05-23 13:28         ` Greg Lindahl
2006-05-24  8:10           ` Jan Vorbrüggen
2006-05-24 15:19             ` Richard E Maine
2006-05-29 12:55               ` Jan Vorbrüggen
2006-05-24 15:24             ` Dick Hendrickson
2006-05-24 19:03               ` glen herrmannsfeldt
2006-05-29 12:56                 ` Jan Vorbrüggen
2006-05-29 20:07                   ` glen herrmannsfeldt
2006-05-30  4:55                   ` robert.corbett
2006-05-30  7:05                     ` Jan Vorbrüggen
2006-05-22 11:48   ` Michael Metcalf
2006-05-22 12:01     ` Dr. Adrian Wrigley
2006-05-23  8:34   ` Jon Harrop
2006-05-22  7:34 ` Dmitry A. Kazakov
2006-05-23  8:32   ` Jon Harrop
2006-05-22  7:36 ` Greg Lindahl
2006-05-22 21:25   ` Ken Plotkin
2006-05-22 21:40     ` blmblm
2006-05-23  2:12       ` Ken Plotkin
2006-05-23 15:32     ` Pascal Obry
2006-05-23 17:33       ` Marc A. Criley
2006-05-22 10:34 ` Tim Prince
2006-05-22 12:52 ` George N. White III
2006-05-22 13:02 ` Jean-Pierre Rosen
2006-05-22 15:23   ` Dan Nagle
2006-05-22 16:20     ` Nasser Abbasi
2006-05-22 16:38       ` Jan Vorbrüggen
2006-05-22 16:41       ` Gordon Sande
2006-05-22 16:48       ` Dan Nagle
2006-05-23  2:12         ` news.hinet.net
2006-05-22 17:22       ` Paul Van Delst
2006-05-23  7:04         ` Gareth Owen
2006-05-23  7:02           ` Martin Krischik
2006-05-23 14:23           ` Rich Townsend
2006-05-23 17:24             ` Brooks Moses
2006-05-23 18:40               ` Rich Townsend
2006-05-23 21:17                 ` Martin Dowie
2006-05-24  2:21                   ` Nasser Abbasi
2006-05-26 15:18                     ` Martin Dowie
2006-05-25 19:43                 ` Janne Blomqvist
2006-05-24  5:26       ` robin
2006-05-24  6:06         ` GF Thomas
2006-05-22 16:38     ` Richard E Maine
2006-05-23  8:25     ` Jean-Pierre Rosen
2006-05-23 11:40       ` Dan Nagle
2006-05-23 13:14         ` Dr. Adrian Wrigley
2006-05-23 17:07           ` Dan Nagle
2006-05-23 22:20             ` Dr. Adrian Wrigley
2006-05-23 22:49               ` Dan Nagle
2006-05-23 23:21                 ` Dr. Adrian Wrigley
2006-05-24  0:49                   ` Dan Nagle
2006-05-24  5:07                     ` GF Thomas
2006-05-24 12:56               ` J.F. Cornwall
2006-05-24 13:39                 ` Dr. Adrian Wrigley
2006-05-24 16:49                   ` J.F. Cornwall
2006-05-24 18:08                     ` Dr. Adrian Wrigley
2006-05-24  5:26         ` robin
2006-05-27  5:18         ` Aldebaran
2006-05-23 17:09       ` Dick Hendrickson
2006-05-23 17:53         ` Georg Bauhaus
2006-05-23 18:21         ` Dmitry A. Kazakov
2006-05-23 18:34           ` Brooks Moses
2006-05-24  7:15             ` Dmitry A. Kazakov
2006-05-23 20:33           ` Dick Hendrickson
2006-05-24  7:52         ` Jean-Pierre Rosen
2006-05-24 14:50         ` robin
2006-05-24 15:19           ` Dick Hendrickson
2006-05-24 15:43             ` Dr. Adrian Wrigley
2006-05-24 17:12               ` Dick Hendrickson
2006-05-24 17:32                 ` Richard E Maine
2006-05-24 17:54                 ` Dr. Adrian Wrigley
2006-05-24 18:10                   ` Richard E Maine
2006-05-24 18:39                     ` Nasser Abbasi
2006-05-24 19:36                       ` Gautier
2006-05-24 19:37                       ` Gautier
2006-05-24 19:56                         ` Richard E Maine
2006-05-30 19:39                           ` Craig Powers
2006-05-26  2:58                         ` robin
2006-05-24 18:34                   ` Gordon Sande
2006-05-24 18:40                     ` Ed Falis
2006-05-25 22:31                       ` Brooks Moses
2006-05-24 18:43                     ` Ed Falis
2006-05-24 18:59                       ` J.F. Cornwall
2006-05-24 19:10                       ` Gordon Sande
2006-05-25  3:40                       ` robin
2006-05-25 15:19                         ` Martin Krischik
2006-05-27 14:29                           ` robin
2006-05-27 13:22                             ` Georg Bauhaus
2006-05-29 11:46                             ` Jan Vorbrüggen
2006-05-29 17:37                             ` Martin Krischik
2006-05-24 21:04                   ` Dick Hendrickson
2006-05-31  4:26                     ` robert.corbett
2006-05-25  3:40                   ` robin
2006-05-24 16:03             ` Richard E Maine
2006-05-24 19:08               ` glen herrmannsfeldt
2006-05-25  3:40             ` robin
2006-05-25  5:04               ` Nasser Abbasi
2006-05-25  6:04                 ` Richard Maine
2006-05-25 10:42                   ` Shmuel (Seymour J.) Metz
2006-05-25 15:09                     ` Richard E Maine
2006-05-25 19:39                       ` Shmuel (Seymour J.) Metz
2006-05-25 12:09                   ` Dr. Adrian Wrigley
2006-05-25 12:42                     ` Dan Nagle
2006-05-25 12:45                     ` Gordon Sande
2006-05-25 16:23                       ` Checking for Undefined [was Re: Ada vs Fortran for scientific applications] Bob Lidral
2006-05-25 17:48                         ` Nasser Abbasi
2006-05-25 17:57                         ` Gordon Sande
2006-05-25 20:20                           ` Bob Lidral
2006-05-27 14:29                             ` Checking for Undefined robin
2006-05-25 20:35                           ` Checking for Undefined [was Re: Ada vs Fortran for scientific applications] glen herrmannsfeldt
2006-05-25 22:02                           ` Checking for Undefined Simon Wright
2006-05-27 14:29                           ` robin
2006-05-27 15:10                             ` Gordon Sande
2006-05-26  2:58                       ` Ada vs Fortran for scientific applications robin
2006-07-09 20:52                       ` adaworks
2006-07-09 21:33                         ` Brooks Moses
2006-07-10  3:08                           ` jimmaureenrogers
2006-07-10 11:23                           ` Björn Persson
2006-07-10 17:08                             ` Brooks Moses
2006-07-09 21:36                         ` James Giles
2006-07-09 22:29                           ` Martin Dowie
2006-07-09 23:07                             ` James Giles
2006-07-09 23:44                               ` glen herrmannsfeldt
2006-07-11  1:29                               ` robin
2006-07-09 23:19                           ` glen herrmannsfeldt
2006-07-11  1:29                             ` robin
2006-07-11  5:56                               ` glen herrmannsfeldt
2006-07-12  0:37                                 ` robin
2006-07-12  1:15                                   ` glen herrmannsfeldt
2006-07-14  2:47                                     ` Randy Brukardt
2006-07-14  2:56                                       ` glen herrmannsfeldt
2006-07-18  1:48                                     ` robin
2006-07-18 18:35                                       ` glen herrmannsfeldt
2006-07-19 14:35                                         ` BINARY INTEGER robin
2006-07-10  7:38                           ` Ada vs Fortran for scientific applications Dmitry A. Kazakov
2006-07-10 16:41                             ` adaworks
2006-07-10 18:12                               ` John W. Kennedy
2006-07-11  1:29                                 ` robin
2006-07-11  2:49                                   ` John W. Kennedy
2006-07-12  0:37                                     ` robin
2006-07-11  1:29                             ` robin
2006-07-11  6:46                               ` adaworks
2006-07-11  7:30                                 ` James Giles
2006-07-11 20:46                                   ` Simon Wright
2006-07-11 11:44                                 ` Jeffrey Creem
2006-07-11 14:51                                   ` adaworks
2006-07-12  1:29                                     ` Jeffrey Creem
2006-07-11 13:53                                 ` Tom Linden
2006-07-11 15:02                                   ` adaworks
2006-07-11 15:35                                     ` Tom Linden
2006-07-11 16:54                                       ` Alex R. Mosteo
2006-07-11 17:43                                       ` adaworks
2006-07-11 18:15                                         ` Ed Falis
2006-07-11 14:46                                 ` John W. Kennedy
2006-07-11 14:45                                   ` Tom Linden
2006-07-11 17:06                                     ` John W. Kennedy
2006-07-11 15:16                                   ` glen herrmannsfeldt
2006-07-11 15:55                                     ` Richard E Maine
2006-07-11 16:21                                       ` Ed Falis
2006-07-11 16:28                                         ` Richard E Maine
2006-07-12  3:33                                       ` James Dennett
2006-07-11 17:08                                   ` Jean-Pierre Rosen
2006-07-11 22:44                                     ` glen herrmannsfeldt
2006-07-12  9:50                                       ` Jean-Pierre Rosen
2006-07-14  7:00                                         ` glen herrmannsfeldt
2006-07-12  3:35                                     ` James Dennett
2006-07-12  0:37                                   ` robin
2006-07-10  9:57                           ` Georg Bauhaus
2006-07-11 15:14                         ` robin
2006-07-11 17:21                           ` adaworks
2006-07-11 19:50                             ` John W. Kennedy
2006-11-20  9:39                         ` robin
2006-11-21  9:02                           ` Finalization Philippe Tarroux
2006-11-21  9:22                             ` Finalization Dmitry A. Kazakov
2006-11-21 10:32                               ` Finalization Philippe Tarroux
2006-11-21 11:09                                 ` Finalization Dmitry A. Kazakov
2006-11-21 17:29                                   ` Finalization Adam Beneschan
2006-11-21 18:39                                     ` Finalization Dmitry A. Kazakov
2006-11-21 17:22                                 ` Finalization Adam Beneschan
2006-11-21 11:26                             ` Finalization Georg Bauhaus
2006-05-25 16:25                     ` Bounds Check Overhead [was: Re: Ada vs Fortran for scientific applications] Bob Lidral
2006-05-25 22:08                       ` Bounds Check Overhead Simon Wright
2006-05-25 22:27                         ` Brooks Moses
2006-05-25 22:43                           ` Richard E Maine
2006-05-26 10:16                           ` Ludovic Brenta
2006-05-26 10:59                             ` Dan Nagle
2006-05-26 14:44                               ` Dick Hendrickson
2006-05-26 14:52                                 ` Rich Townsend
2006-05-26 16:44                                   ` Ludovic Brenta
2006-05-26 17:49                                     ` Gordon Sande [this message]
2006-05-27  9:06                                       ` Dmitry A. Kazakov
2006-05-27 14:44                                         ` Richard Maine
2006-05-29 12:02                                         ` Jan Vorbrüggen
2006-05-26 20:31                                     ` glen herrmannsfeldt
2006-05-27 14:29                                     ` robin
2006-05-26 14:59                                 ` gary.l.scott
2006-05-26 15:10                                   ` Dick Hendrickson
2006-05-26 18:41                                     ` gary.l.scott
2006-05-26 18:56                                       ` Dan Nagle
2006-05-26 19:16                                         ` Richard Maine
2006-05-27 14:29                               ` robin
2006-05-26 16:18                             ` Richard Maine
2006-05-26 17:30                               ` Nasser Abbasi
2006-05-26 18:24                                 ` Richard Maine
2006-05-26 19:23                                   ` Paul Van Delst
2006-05-26 19:25                                   ` Nasser Abbasi
2006-05-26 19:46                                     ` Richard Maine
2006-05-30 19:13                                       ` Robert A Duff
2006-06-04 23:48                                         ` Richard Maine
2006-05-26 18:26                                 ` Rich Townsend
2006-05-26 19:58                                   ` Simon Wright
2006-05-26 20:06                                     ` Rich Townsend
2006-05-26 20:16                                       ` Richard Edgar
2006-05-26 20:28                                       ` Richard Maine
2006-05-30 19:20                                         ` Robert A Duff
2006-06-05 13:50                                           ` Richard Edgar
2006-05-26 20:27                               ` glen herrmannsfeldt
2006-05-26 20:41                                 ` Richard Maine
2006-05-27 14:29                         ` robin
2006-05-27 14:56                           ` Ludovic Brenta
2006-05-27 15:53                             ` jimmaureenrogers
2006-05-27 15:59                             ` Dmitry A. Kazakov
2006-05-27 17:52                               ` Tom LINDEN
2006-05-28  6:28                                 ` Dave Weatherall
2006-05-26  2:58                     ` Ada vs Fortran for scientific applications robin
2006-05-29 12:21                     ` Jan Vorbrüggen
2006-05-29 13:47                       ` Dr. Adrian Wrigley
2006-05-29 14:17                         ` Jan Vorbrüggen
2006-05-29 14:52                           ` Dmitry A. Kazakov
2006-05-29 15:08                             ` Jan Vorbrüggen
2006-05-29 17:03                               ` Dmitry A. Kazakov
2006-05-30  7:11                                 ` Jan Vorbrüggen
2006-05-30  8:29                                   ` Dmitry A. Kazakov
2006-05-31 14:58                                     ` robin
2006-05-31 14:58                                 ` robin
2006-05-31 15:42                                   ` Dmitry A. Kazakov
2006-05-31 15:54                                     ` Gordon Sande
2006-05-31 14:58                             ` robin
2006-05-31 18:07                               ` Marc A. Criley
2006-05-29 15:47                           ` Dr. Adrian Wrigley
     [not found]                   ` <pan.2006.05.25.12.11.52.919554@linuxchip.demon.co.uk.u <2006052514574816807-gsande@worldnetattnet>
2006-05-25 18:30                     ` Checking for Undefined [was Re: Ada vs Fortran for scientific applications] Thomas Koenig
2006-05-25 18:34                       ` Gordon Sande
2006-05-26  2:58                   ` Ada vs Fortran for scientific applications robin
     [not found]                   ` <pan.2006.05.25.12.11.52.919554@linuxchip.demon.co.uk.u <m2r72h69vz.fsf@grendel.local>
2006-05-26  7:54                     ` Checking for Undefined Dirk Craeynest
2006-05-26 15:04                       ` Dick Hendrickson
2006-05-27 14:29                         ` robin
2006-05-27 15:08                           ` Gordon Sande
2006-05-28  0:56                             ` robin
2006-05-28  1:04                               ` glen herrmannsfeldt
2006-05-28 13:46                               ` Gordon Sande
     [not found]                   ` <pan.2006.05.25.12.11.52.919554@linuxchip.demon.co.uk.u <e574mu$rrj$1@scrotar.nss.udel.edu>
2006-05-26 18:53                     ` Bounds Check Overhead Thomas Koenig
2006-05-26 19:07                       ` Richard Maine
     [not found]                   ` <pan.2006.05.25.12.11.52.919554@linuxchip <20060712.7A4E6E0.D028@mojaveg.lsan.sisna.com>
     [not found]                     ` <20060712.7A4E6E0.D028@mojaveg.lsan.sisna.com>
2006-07-14  6:08                       ` Ada vs Fortran for scientific applications Bob Lidral
2006-07-14  6:17                         ` Richard Maine
2006-07-17 12:44                           ` ONES COMPLEMENT (was: Ada vs Fortran for scientific applications) robin
     [not found]                   ` <20060712.7A4E6E0.D028@mojaveg.lsan.sisna <20060714.7A4E988.A30D@mojaveg.lsan.sisna.com>
     [not found]                     ` <20060714.7A4E988.A30D@mojaveg.lsan.sisna.com>
2006-07-16  9:07                       ` Ada vs Fortran for scientific applications glen herrmannsfeldt
2006-07-18  1:48                         ` ONES COMPLEMENT (was: Ada vs Fortran for scientific applications) robin
2006-07-18 18:41                           ` ONES COMPLEMENT glen herrmannsfeldt
2006-07-19 13:41                             ` robin
2006-07-22  0:09                             ` Richard Steiner
     [not found]                   ` <20060712.7A4E6E0.D028@mojaveg.lsan.sisna <20060717.7A4ADD0.10B1A@mojaveg.lsan.sisna.com>
2006-07-18 13:05                     ` ONES COMPLEMENT (was: Ada vs Fortran for scientific applications) Shmuel (Seymour J.) Metz
2006-07-19 11:18                       ` ONES COMPLEMENT Peter Flass
2006-07-19 17:14                         ` glen herrmannsfeldt
2006-07-19 23:43                           ` robin
2006-07-19 13:41                       ` robin
2006-07-19 17:11                       ` ONES COMPLEMENT (was: Ada vs Fortran for scientific applications) Everett M. Greene
2006-07-19 19:40                         ` Shmuel (Seymour J.) Metz
2006-07-20 16:46                           ` Everett M. Greene
2006-07-20 21:47                             ` Shmuel (Seymour J.) Metz
2006-07-21 17:23                               ` ONES COMPLEMENT glen herrmannsfeldt
2006-07-21 18:04                                 ` John W. Kennedy
2006-07-23  0:26                                   ` robin
2006-07-23  0:26                                 ` robin
2006-07-21 20:05                               ` glen herrmannsfeldt
2006-07-21 21:00                                 ` Dick Hendrickson
2006-07-22  6:19                                   ` glen herrmannsfeldt
2006-07-22 15:12                               ` ONES COMPLEMENT (was: Ada vs Fortran for scientific applications) Everett M. Greene
2006-07-23  0:26                               ` ONES COMPLEMENT robin
     [not found]                     ` <20060717.7A4ADD0.10B1A@mojaveg.lsan.sisna.com>
2006-07-19  6:54                       ` glen herrmannsfeldt
2006-07-19 12:47                         ` Tom Linden
2006-07-19 14:35                         ` robin
2006-05-25 11:02               ` Ada vs Fortran for scientific applications Dan Nagle
2006-05-25 11:23                 ` Gareth Owen
2006-05-26  2:58                   ` robin
2006-05-26  7:13                     ` Gareth Owen
2006-05-26 14:53                     ` Dick Hendrickson
2006-05-26 20:18                       ` glen herrmannsfeldt
2006-05-26 21:50                         ` Björn Persson
2006-05-25 14:33                 ` glen herrmannsfeldt
2006-05-26  2:58                 ` robin
2006-05-26 20:03                 ` JA
2006-05-25 11:32             ` Martin Krischik
2006-05-24  6:46       ` Jan Vorbrüggen
2006-05-24  5:26   ` robin
2006-05-23  8:34 ` gautier_niouzes
2006-05-23 13:33 ` Nasser Abbasi
2006-05-23 14:00   ` Michael Metcalf
2006-05-23 15:04   ` beliavsky
2006-05-23 18:09     ` glen herrmannsfeldt
2006-05-23 22:38     ` Jeffrey Creem
2006-05-23 19:29   ` Gautier
2006-05-23 19:34     ` Rich Townsend
2006-05-23 17:57 ` Aldebaran
2006-05-23 22:14   ` Dr Ivan D. Reid
2006-05-23 23:01 ` John
2006-05-27  5:01 ` Nasser Abbasi
2006-05-27  7:36   ` Pascal Obry
2006-05-27 11:18   ` Björn Persson
replies disabled

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