comp.lang.ada
 help / color / mirror / Atom feed
From: "Nick Roberts" <Nick.Roberts@dial.pipex.com>
Subject: Re: should I be interested in ada?
Date: 1999/02/22
Date: 1999-02-22T00:00:00+00:00	[thread overview]
Message-ID: <7aslfp$gpq$1@plug.news.pipex.net> (raw)
In-Reply-To: 7aldu1$4q$1@nnrp1.dejanews.com


robert_dewar@my-dejanews.com wrote in message
<7aldu1$4q$1@nnrp1.dejanews.com>...
|In article <7akvao$j5t$2@plug.news.pipex.net>,
|  "Nick Roberts" <Nick.Roberts@dial.pipex.com> wrote:
|
|>    Reorder(X,J)
|
|>
|> You've got to declare a utility procedure, certainly, but
|> otherwise this is just as neat as the Fortran, surely?
|
|My goodness one would almost think that Nick was trying to
|make Ada look bad by making dubious arguments.

I am certainly not trying to do this!

|First, the
|Ada code is far uglier and less safe than the Fortran code,

Hearsay. This is a totally subjective opinion (either way I suppose), isn't
it?

|I really cannot imagine anyone thinking otherwise.

To be honest, I would be interested in seeing a greater variety of opinions
(please!). Robert does not seem to have procduced any counter-argument to my
point about the advantages of abstraction.

|But
|more importantly, the Ada code does not catch the semantics
|of the FORALL at all, there is no parallelism at all in the
|Ada code, and indeed it is quite likely that not even a
|clever optimizer can bail this out, because, as always it
|is the exceptions that get you in Ada (if an exception is
|raised, the semantics dictate exactly which iterations of
|the loop have occured and which have not). Nick has
|conveniently ignored this in his thinking, but it turns
|out to be absolutely crucial. All sorts of loops in Fortran
|that can be assumed to be parallel by the optimizer even if
|FORALL is not used CANNOT be assumed to be parallel in Ada
|because of the exception issue.

I think this point is essentially wrong, in that the cases where the Ada
optimiser cannot produce code which is just as good (as the Fortran code
with or without FORALL) will be very rare, in practice.

Perhaps Robert should re-read RM95 11.6 (6). Only the intervention of an
independant subprogram (in the loop) would cause the problems he suggests.
In most code, there will be no such subprogram, but, anyway, in just about
any speed critical code an independant subprogram can almost always be
avoided (by changing the place its body is declared in the source text, or
making it inline).

|This means that FOR ALL is in a sense even more crucial
|in Ada (which doesn't have it) than in Fortran 95 (which
|does).
|
|All this was covered in rather excruciating detail in the
|thread a few years ago about implementing FOR ALL in Ada.


I never saw this thread: I shall have a little search on DN. [The trouble
with DN is that there must be tens of thousands of posts per year, even on a
'signal-dense' NG like CLA. To review it all would be a Herculean task (give
a smelly stables any day :-).]

[BTW I would like to restate that I am very pleased - most gratified
really -  to see answers to my silly posts from the likes of Professor
Dewar, a man who has a rare depth of experience in the field (of computer
science and the development of programming languages). My personal
philosophy is that the only way to learn is to make mistakes. To have your
mistakes pointed out to you by the experts is a privilege. I say what I
really think (you may have noticed ;-), and I do not give praise lightly.]

-------------------------------------
Nick Roberts
-------------------------------------








  reply	other threads:[~1999-02-22  0:00 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-02-14  0:00 should I be interested in ada? Phillip Helbig
1999-02-15  0:00 ` Marin David Condic
1999-02-23  0:00   ` David Starner
1999-02-15  0:00 ` Gautier
1999-02-16  0:00 ` Ken Thomas
1999-02-17  0:00   ` Nick Roberts
1999-02-18  0:00     ` robert_dewar
1999-02-18  0:00       ` Nick Roberts
1999-02-18  0:00         ` Jerry Petrey
1999-02-18  0:00           ` fraser
1999-02-19  0:00             ` Matthew Heaney
1999-02-20  0:00               ` fraser
1999-02-18  0:00           ` Nick Roberts
1999-02-18  0:00             ` Dan Nagle
1999-02-18  0:00               ` nabbasi
1999-02-19  0:00               ` Nick Roberts
1999-02-19  0:00                 ` Dan Nagle
1999-02-19  0:00                   ` robert_dewar
1999-02-19  0:00                     ` Nick Roberts
1999-02-19  0:00                     ` Dan Nagle
1999-02-23  0:00                     ` Peter Hermann
1999-02-19  0:00                 ` robert_dewar
1999-02-19  0:00                   ` Nick Roberts
1999-02-19  0:00                     ` William Clodius
1999-02-20  0:00                       ` Nick Roberts
1999-02-21  0:00                         ` robert_dewar
1999-02-21  0:00                           ` William Clodius
1999-02-22  0:00                           ` Nick Roberts
1999-02-19  0:00                     ` robert_dewar
1999-02-21  0:00                       ` William Clodius
1999-02-23  0:00                         ` Robert I. Eachus
1999-02-18  0:00             ` Joel Seidman
1999-02-18  0:00         ` William Clodius
1999-02-18  0:00           ` nabbasi
1999-02-18  0:00             ` robert_dewar
1999-02-18  0:00           ` robert_dewar
1999-02-19  0:00             ` William Clodius
1999-02-19  0:00               ` Nick Roberts
1999-02-20  0:00                 ` robert_dewar
1999-02-22  0:00                   ` Nick Roberts [this message]
1999-02-22  0:00                     ` William Clodius
1999-02-23  0:00                     ` robert_dewar
1999-02-23  0:00                       ` Nick Roberts
1999-02-22  0:00                 ` William Clodius
1999-02-23  0:00                   ` Nick Roberts
1999-02-23  0:00                     ` William Clodius
1999-02-25  0:00                       ` Nick Roberts
1999-02-25  0:00                         ` robert_dewar
1999-02-23  0:00               ` Robert I. Eachus
1999-02-24  0:00                 ` Nick Roberts
1999-02-26  0:00                   ` Robert A Duff
1999-02-27  0:00                     ` Semantic info pragmas (was: should I be interested in ada?) Nick Roberts
1999-03-01  0:00                       ` Samuel Tardieu
1999-03-01  0:00                         ` Robert A Duff
1999-02-24  0:00                 ` should I be interested in ada? William Clodius
1999-02-24  0:00               ` William Clodius
1999-02-25  0:00                 ` Nick Roberts
1999-02-25  0:00                   ` robert_dewar
1999-02-26  0:00                     ` Nick Roberts
1999-02-18  0:00         ` robert_dewar
1999-02-19  0:00           ` Nick Roberts
1999-02-19  0:00             ` robert_dewar
1999-02-19  0:00               ` Nick Roberts
1999-02-20  0:00                 ` robert_dewar
1999-02-22  0:00                   ` dennison
1999-02-22  0:00                   ` Nick Roberts
1999-02-23  0:00                     ` Robert I. Eachus
1999-02-24  0:00                       ` White rabbit (was: should I be interested in ada?) dennison
1999-02-25  0:00                       ` Alice books " JP Thornley
1999-02-25  0:00                         ` Robert I. Eachus
1999-02-20  0:00                 ` should I be interested in ada? robert_dewar
1999-02-20  0:00                   ` Steve Doiel
1999-02-19  0:00               ` William Clodius
1999-02-19  0:00               ` dennison
1999-02-19  0:00                 ` robert_dewar
1999-02-19  0:00                 ` William Clodius
1999-02-19  0:00                 ` Nick Roberts
1999-02-20  0:00                   ` robert_dewar
1999-02-22  0:00                     ` Nick Roberts
1999-02-19  0:00               ` Phillip Helbig
1999-02-18  0:00     ` robert_dewar
1999-02-18  0:00       ` Nick Roberts
1999-02-18  0:00         ` William Clodius
1999-02-18  0:00           ` dennison
1999-02-20  0:00 ` Hartmut H. Schaefer
1999-02-20  0:00   ` bill
1999-02-21  0:00     ` dewar
1999-02-21  0:00   ` dewar
1999-02-22  0:00     ` dennison
replies disabled

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