From: "robin" <robin_v@bigpond.com>
Subject: Re: Ada vs Fortran for scientific applications
Date: Thu, 25 May 2006 03:40:49 GMT
Date: 2006-05-25T03:40:49+00:00 [thread overview]
Message-ID: <5H9dg.10256$S7.9566@news-server.bigpond.net.au> (raw)
In-Reply-To: pan.2006.05.24.17.53.03.81353@linuxchip.demon.co.uk.uk.uk
"Dr. Adrian Wrigley" <amtw@linuxchip.demon.co.uk.uk.uk> wrote in message
news:pan.2006.05.24.17.53.03.81353@linuxchip.demon.co.uk.uk.uk...
> On Wed, 24 May 2006 17:12:55 +0000, Dick Hendrickson wrote:
> > Dr. Adrian Wrigley wrote:
> >> On Wed, 24 May 2006 15:19:23 +0000, Dick Hendrickson wrote:
> >>
> >>
> >>>
> >>>robin wrote:
> >>>
> >>>>"Dick Hendrickson" <dick.hendrickson@att.net> wrote in message
> >>>>news:PkHcg.90575$Fs1.7198@bgtnsc05-news.ops.worldnet.att.net...
> >>>>
> >>>>>Ada's is surely better. Knowing that a subscript has to be
> >>>>>in range, because it's checked when a value is assigned to
> >>>>>the subscript variable, has to be more efficient than what
> >>>>>Fortran can do. In general, Fortran has to check the value
> >>>>>of the subscripts on every array reference.
> >>>>
> >>>>
> >>>>It can do this only if it is a compiler option.
> >>>>It is not a feature the language.
> >>>
> >>>There's a ambiguous "it" in those sentences. ;)
> >>>
> >>>But, if "it" refers to Fortran, subscript bounds rules
> >>>ARE a feature of the language. You are NEVER allowed to
> >>>execute an out-of-bounds array reference in a Fortran
> >>>program.
> >>
> >> ...
> >>
> >> So what does the standard say must happen if you attempt
> >> such an access? Can a program fail unpredictably under
> >> such (rather common!) circumstances - as routinely happens
> >> in C and C++, sometimes at great cost?
> >
> > The Fortran standard says nothing at all about what must
> > happen for most run-time errors. There is a requirement
> > that a compiler be able to diagnose syntax-like errors at
> > compile time. There is also a requirement that some
> > (unspecified) I/O errors and some memory management errors
> > be checked for at run time. The job will abort unless the
> > program uses one of the error detection methods. But for
> > things like subscript bounds errors, or subroutine argument
> > mismatches, the standard doesn't impose anything on the
> > compiler.
>
> ...
>
> > The other big problem with [old] Fortran programs was
> > messing up the argument list in a procedure call.
> > Separate compilation made this a lot easier to do.
> > The Fortran 90 addition of MODULES essenially closes
> > this hole. Most procedure interfaces now can be explicit
> > and the compiler must check for calling consistency.
> > It's harder to shoot yourself in the foot now, but
> > people can still lie to the compiler.
>
> I think this is an area that Ada really shines. The standard
> requires numerous checks for consistency at both compile
> time and runtime. Versions of code that don't match properly
> can't be linked together or can't be run together (as appropriate).
> Using the language gives a feeling of integrity of coding,
> with mistakes often being caught very early on.
>
> Unfortunately, the language features for integrity cannot
> be added to an existing language without breaking old
> code.
That was not the case for Fortran.
Old Fortran codes can still run, even though the language
now provides the means for consistency checks.
> This is because the integrity features are often a result
> of prohibiting "dodgy" code, flawed syntax or misfeatures.
> The history of the C family of languages illustrates this.
> I'm not sure where modern Fortran sits in relation to
> its forbears in terms of safety and security though.
> It's noteworthy that Ada and Fortran are on convergent
> paths (modules, user defined types, templates etc).
>
> With array subscripts, an exception must be raised if the
> bounds are exceeded.
As is the case with PL/I (given that the programmer
has enabled that check).
> The same with arithmetic operations.
> (curiously, compiling Ada under gcc (GNAT), a compilation
> switch is needed to be standards compliant - a mistake:().
> The checks can be switched on and off in the source code
> as desired.
As is the case with PL/I.
> One of the benefits of the compile- and run-time checking
> is that refactoring code becomes much easier because the
> compiler will usually tell you about what parts haven't
> been fixed up yet. Languages like C or Perl are at the
> opposite end of the spectrum, I find. From what I read here,
> Fortran is somewhere in between.
next prev parent reply other threads:[~2006-05-25 3:40 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 [this message]
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
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