comp.lang.ada
 help / color / mirror / Atom feed
From: bobduff@world.std.com (Robert A Duff)
Subject: Re: Finalization and Garbage Collection: a hole in the RM?
Date: 1996/09/03
Date: 1996-09-03T00:00:00+00:00	[thread overview]
Message-ID: <Dx5y2w.BFu@world.std.com> (raw)
In-Reply-To: mazzanti-0209961050000001@mac-mazz.iei.pi.cnr.it


In article <mazzanti-0209961050000001@mac-mazz.iei.pi.cnr.it>,
Franco Mazzanti <mazzanti@iei.pi.cnr.it> wrote:
>"Bounded Errors" are not considered by the RM (not from me) cases of
>true "unpredictability". A program with bounded errors is not erroneous.
> 
>The entry "erroneous" in the RM (and AARM) Index does not allow to track
>down all the cases. We have to look also at the entries "abnormal" and
>"unspecified".  Even so, there is a small aspect which is still non captured
>([RM 13.13.2.(35)]).  Finally, we should have to consider also any
>possible language "holes" (i.e. I cannot take for granted that the RM is
>"perfect").

Your best bet is to get the ascii version of the RM or AARM, and search
in a text editor for "erroneous", "unspecified", "implementation
defined", etc.  (I say "impl def", because it is theoretically possible
for an implementation to take something that's implemenation defined,
and define it to be erroneous.  In most cases, this is highly unlikely.
You can probably tell by looking at each case whether or not its likely
in practise.)

Also, read 11.6.

>For what I can see, according to [RM 1.1.4(18)]  (see below), there is
>nothing "unpredictable" ("erroneous") in things being executed in
>"arbitrary order".

Well, it depends how unpredictable you mean -- erroneous things are
totally unpredictable, and can cause the program to behave outside the
normal semantic model.  Bounded errors and arbitrary orders are only a
little bit unpredictable (i.e. there's a well-defined set of
possibilities).  Certainly *any* form of nondeterminism can cause
trouble -- portability problems, programs that work with optimization
turned off but not with optimization turned on, etc.  And it's worse in
theory than in practise, since most compilers don't (for example) roll
dice on every subprogram call to determine the order of parameter
evaluation.

Thankfully, Ada has far fewer cases of totally unpredictable behavior
than certain other palindromic languages.  ;-)  And Ada 95 eliminates one
of the worst cases of erroneousness in Ada 83 -- uninitialized
variables.

- Bob




  parent reply	other threads:[~1996-09-03  0:00 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-09-02  0:00 Finalization and Garbage Collection: a hole in the RM? Franco Mazzanti
1996-09-03  0:00 ` Robert Dewar
1996-09-03  0:00 ` Robert A Duff [this message]
  -- strict thread matches above, loose matches on Subject: below --
1996-09-09  0:00 Franco Mazzanti
1996-09-06  0:00 Franco Mazzanti
1996-09-06  0:00 ` Robert A Duff
1996-09-07  0:00   ` Robert Dewar
1996-09-04  0:00 Franco Mazzanti
1996-09-08  0:00 ` Robert Dewar
1996-08-30  0:00 Franco Mazzanti
1996-08-30  0:00 ` Robert A Duff
1996-08-26  0:00 Franco Mazzanti
1996-08-29  0:00 ` Robert A Duff
1996-08-29  0:00 ` Robert A Duff
replies disabled

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