comp.lang.ada
 help / color / mirror / Atom feed
From: "Robert I. Eachus" <rieachus@attbi.com>
Subject: Re: The 1980 ACM Turing Award Lecture The Emperor's Old Clothes
Date: Sat, 15 Jun 2002 18:01:33 GMT
Date: 2002-06-15T18:01:33+00:00	[thread overview]
Message-ID: <3D0B813A.3040204@attbi.com> (raw)
In-Reply-To: n8flgu44nkne4a375qpjjkaeqsfmqhqk4s@4ax.com

Lyle McKennot wrote:


> How about the  1980 ACM Turing Award lecture "The Emperor's Old
> Clothes" ?
> 
> After all, it was that scathing attack by Hoare that made a lot of
> people in the academic community abandon Ada.
> 
> It is still available at :
> 
> http://lambda.cs.yale.edu/cs422/doc/hoare.pdf


Have you even read (or heard) this speech, and if you have, have you 
tried to relate it to the current version of Ada?  If you had, you would 
realize that Tony's criticisms of Ada 80 were valid, most did not apply 
to Ada 83, and no one in their right mind would consider his remarks 
about Ada 80 to apply to Ada 95.  In fact you can probably recognize 
that Tony's arguments in certain areas prevailed.  Some features of Ada 
83 that were not important to all classes of users were moved to 
optional annexes, other annexes were added to deal with programming 
domains not considered in the design of Ada 80 or Ada 83.

In one sense Tony lost on exceptions.  But as the long discussion on 
exception arguments here have shown, Ada provides the necessary 
functionality to everyone, and provides some extensions to those who 
want to do more with them.  But in general, almost every Ada programmer 
agrees that exceptions are to be avoided.  Not as a language feature, 
but as evidence of a bad program.

Any program that raises Program_Error is badly broken, other than, of 
course, a compiler test that validates that Program_Error is raised and 
handled appropriately.  With modern computers, the only time anyone ever 
sees Storage_Error is when a newbie writes:  "Foo: String;"  Pretty soon 
even that won't be guaranteed to raise an exception, but I hope 
compilers will still provide warning messages. ;-)

Ada 80 had some serious problems.  For one thing it had too many 
predefined exceptions.  Most of these were gone from the Ada 83 
standard, but we still missed one (Numeric_Error).  That problem was 
actually fixed before the design of Ada 95 was started.  Another major 
problem was the order of elaboration rules.  I wrote a cute program 
which was a legal Ada 80 program if, and only if, Fermat's Last Theorem 
was true.  Ada 95 (and Ada 83) compilers are allowed to generate code 
that would raise Program_Error if FLT was false, and otherwise spent a 
very long time initializing. (Or you could turn off Elaboration_Check.) 
  Of course, if someone wants to, they can build a special check into 
their Ada 95 compiler which optimizes away the dependence on FLT.

The last is not humor, it is serious.  The change in the definition of 
what it means to execute an Ada program between Ada 83 and Ada 95 is 
very subtle, but important.  And Ada 95 compiler is allowed greater 
freedom in optimizing away truly useless code, and slightly less freedom 
to optimize away checks that have a real effect on the result of the 
program.

Is getting exceptions right very tough?  Yes.  But the right way to deal 
with that is in the langauge definition so that ordinary programmers can 
produce code that works without having to think about exceptions all the 
time.  (But you have to think about them during requirements analysis 
and the design process.  The Arianne 4 team did this right, the Arianne 
5 project did not redo the requirements analysis...)






  parent reply	other threads:[~2002-06-15 18:01 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-06-14  0:49 ada paper critic Immanuel Scholz
2002-06-14  1:28 ` Immanuel Scholz
2002-06-14  1:43   ` Dale Stanbrough
2002-06-14  4:53     ` David Marceau
2002-06-14  6:40       ` Dale Stanbrough
2002-06-14  6:49       ` Hyman Rosen
2002-06-14 12:18       ` Baugereau
2002-06-14 16:30         ` David Marceau
2002-06-14 17:34           ` Baugereau
2002-06-14 19:01             ` Wes Groleau
2002-06-14 19:43               ` Baugereau
2002-06-15  3:02                 ` Vinzent Hoefler
2002-06-15  9:49                   ` Pascal Obry
2002-06-17 15:53                     ` Dan Andreatta
2002-06-17 18:20                       ` Pascal Obry
2002-06-17 20:56                     ` Michael Bode
2002-06-17 21:18                       ` Pascal Obry
2002-06-16 21:52                   ` Ted Dennison
2002-06-14 20:02     ` Immanuel Scholz
2002-06-14  3:14   ` Ted Dennison
2002-06-14  4:35     ` Dale Stanbrough
2002-06-14  8:05       ` David Marceau
2002-06-14 12:31         ` Dale Stanbrough
2002-06-14 15:08         ` Darren New
2002-06-17  0:17           ` Robert A Duff
2002-06-14 19:05         ` Wes Groleau
2002-06-16  3:34           ` Dale Stanbrough
2002-06-16  3:32         ` Dale Stanbrough
2002-06-14  8:25       ` Dmitry A. Kazakov
2002-06-14 12:19         ` Immanuel Scholz
2002-06-14 14:51           ` Dmitry A. Kazakov
2002-06-14 15:09             ` Darren New
2002-06-16 22:49               ` Dmitry A.Kazakov
2002-06-16 15:07                 ` Jim Rogers
2002-06-17  4:06                   ` Darren New
2002-06-17  4:52                     ` Jim Rogers
2002-06-17  9:45                       ` David Marceau
2002-06-17 15:42                       ` Darren New
2002-06-17  3:59                 ` Darren New
2002-06-17 22:19                   ` Dmitry A.Kazakov
2002-06-14 12:58       ` Larry Kilgallen
2002-06-14 22:16         ` Dale Stanbrough
2002-06-15  1:22           ` Larry Kilgallen
2002-06-15  0:51             ` Dale Stanbrough
2002-06-15 11:49               ` Immanuel Scholz
2002-06-15 21:45             ` Robert A Duff
2002-06-14 14:59       ` Ted Dennison
2002-06-16  3:27         ` Dale Stanbrough
2002-06-16 22:18           ` Wes Groleau
2002-06-16 22:38           ` Ted Dennison
2002-06-14 15:00       ` Ted Dennison
2002-06-14 20:13         ` Wes Groleau
2002-06-14 18:52       ` Jeffrey Carter
2002-06-15 22:03         ` Robert A Duff
2002-06-16  1:58           ` Jeffrey Carter
2002-06-16  3:19             ` Dale Stanbrough
2002-06-16 22:20         ` Wes Groleau
2002-06-17  1:57           ` Larry Kilgallen
2002-06-17  2:16           ` Jeffrey Carter
2002-06-14 15:25   ` John R. Strohm
2002-06-15  4:05     ` Lyle McKennot
2002-06-17 13:32       ` Marin David Condic
2002-06-15  4:06     ` The 1980 ACM Turing Award Lecture The Emperor's Old Clothes Lyle McKennot
2002-06-15 13:45       ` Ted Dennison
2002-06-15 13:55         ` Ed Falis
2002-06-15 15:03           ` Pat Rogers
2002-06-15 18:42         ` Jeffrey Carter
2002-06-16 22:25         ` Wes Groleau
2002-06-15 18:01       ` Robert I. Eachus [this message]
2002-06-16  1:53         ` Hyman Rosen
2002-06-17 20:06           ` Robert I. Eachus
2002-06-17 20:54             ` Hyman Rosen
2002-06-18 14:56               ` Stephen Leake
2002-06-18 17:08                 ` Hyman Rosen
2002-06-16  3:15         ` Lyle McKennot
2002-06-16  3:51           ` Pat Rogers
  -- strict thread matches above, loose matches on Subject: below --
2002-06-15  6:13 Gautier direct_replies_not_read
2002-06-15  8:34 ` Lyle McKennot
2002-06-15 17:32   ` Gautier
2002-06-19  7:07 ` Peter Amey
replies disabled

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