comp.lang.ada
 help / color / mirror / Atom feed
From: bobduff@world.std.com (Robert A Duff)
Subject: Re: Language Design Mistakes (was "not intended...")
Date: 1997/05/16
Date: 1997-05-16T00:00:00+00:00	[thread overview]
Message-ID: <EAAH7o.IsK@world.std.com> (raw)
In-Reply-To: 199705151433.OAA18453@sw-eng.falls-church.va.us


In article <199705151433.OAA18453@sw-eng.falls-church.va.us>,
John Walker  <walkerj@SW-ENG.FALLS-CHURCH.VA.US> wrote:
>It is not at all clear that MIL-STD-1815 was merely a "draft" for
>1815A.  I have heard both that the differences between the two
>versions were profound and crucial, *and* that they were relatively
>modest.

I have a copy of the Ada manual from July 1980.  From the point of view
of a programmer, the changes from this document to the final Ada 83
standard were modest -- the bulk of the functionality, and what it
looked like, didn't change much.  However, lots of bugs were fixed, and
other minor changes were made.  To a compiler writer, these changes are
quite large.  Here are a couple of the "bigger" changes (from both
points of view):

In Ada 80, you could say "raise T'Failure;", for any task T.  This was a
lot like "abort T;", except that T could handle it (using an exception
handler).  This feature has a lot in common with Ada 95's "select...then
abort...".

Ada 80 required the compiler to determine a "correct" elaboration order,
by looking at which subprograms get called (directly and indirectly)
during elaboration, and making sure the bodies of those subprograms are
elaborated before the calls.  One way to read this rule requires the
compiler to predict (at link time) which calls will happen during
elaboration (at run time).  This is of course ludicrous, since it would
require the compiler/binder to (1) solve the halting problem, and (2) predict
the value of any input data read during elaboration.  Therefore, I
*suspect* that they meant for the compiler/binder to do a walk of the
call graph.  This rule was eliminated for Ada 83, and pragma Elaborate
was added.

Here's a "smaller" change: There was a rule that you couldn't have a
record component that is an array with non-static bounds, *unless* those
bounds are discriminants.  This rule was eliminated between 1980 and
1983.

>...It might be interesting from a historical perspective for
>someone to describe the differences and their signficance, both for
>the language and for its implementation.  If anyone is aware of any
>publications on the topic, I'd really like to hear about them.

Well, if you can get ahold of it, the best thing to do is read the old
document(s), instead of somebody's list of differences.

The differences between Green and Ada 83 are much larger, and more
interesting.  E.g. the entire tasking model was completely redone.

Another interesting thing to do is to read the Red manual.

- Bob




  parent reply	other threads:[~1997-05-16  0:00 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <199705151433.OAA18453@sw-eng.falls-church.va.us>
1997-05-16  0:00 ` Language Design Mistakes (was "not intended...") Robert Dewar
1997-05-16  0:00 ` Robert A Duff [this message]
1997-05-16  0:00   ` Robert Dewar
1997-05-19  0:00     ` Robert I. Eachus
1997-05-22  0:00   ` Juanma Barranquero
1997-05-16  0:00 John Walker
  -- strict thread matches above, loose matches on Subject: below --
1997-05-14  0:00 John Herro
1997-05-14  0:00 ` David Emery
     [not found] ` <dewar.863630601@merv>
1997-05-15  0:00   ` W. Wesley Groleau (Wes)
1997-05-16  0:00     ` Mark Hertel
1997-05-22  0:00     ` hamilt2d
1997-05-22  0:00       ` Samuel A. Mize
1997-05-15  0:00   ` John Herro
1997-05-15  0:00     ` Jeff Carter
1997-05-15  0:00       ` John Herro
1997-04-23  0:00 Not intended for use in medical, Robert C. Leif, Ph.D.
1997-05-04  0:00 ` Robert Dewar
1997-05-05  0:00   ` Kaz Kylheku
1997-05-06  0:00     ` Kaz Kylheku
1997-05-06  0:00       ` Robert A Duff
1997-05-07  0:00         ` Robert Dewar
1997-05-08  0:00           ` John G. Volan
1997-05-10  0:00             ` Robert Dewar
1997-05-12  0:00               ` Language Design Mistakes (was "not intended...") W. Wesley Groleau (Wes)
1997-05-13  0:00                 ` Robert Dewar
1997-05-13  0:00                   ` W. Wesley Groleau (Wes)
1997-05-13  0:00                   ` Robert A Duff
1997-05-14  0:00                     ` Robert Dewar
replies disabled

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