comp.lang.ada
 help / color / mirror / Atom feed
From: dewar@gnat.com (Robert Dewar)
Subject: Re: C.A.R. Hoare on liability
Date: 22 Jun 2002 06:14:55 -0700
Date: 2002-06-22T13:14:56+00:00	[thread overview]
Message-ID: <5ee5b646.0206220514.55f8cf9a@posting.google.com> (raw)
In-Reply-To: 3D1390D0.7040709@attbi.com

"Robert I. Eachus" <rieachus@attbi.com> wrote in message news:<3D1390D0.7040709@attbi.com>...

> I agree with the point, but not the example.  For Ariane 4, the analysis 
> was carried out, and whether or not you agree with the final decision 
> for Ariane 4, the decision was well thought out.  The disaster was that 
> the Araine 4 analysis was carried out absent the Ariane 5 requirements 
> for political reasons, and the Ariane 5 requirements analysis was never 
> done.

I disagree. Here you have a case in the Ariane4 code where a check was being
made at runtime which had the quality that if the check failed, disaster
would occur. There are two possibilities

1. In the Ariane4 code, it was demonstrated that this check could never fail.
In that case, the check should not have been there.

2. In the Ariane4 code, it was NOT demonstrated that this check could
never fail. In that case, they were just lucky that no Ariane4 blew up.

I will repeat. You should NEVER have a runtime check in your code where it
is the case that failing the check is a more serious situation than not doing
it at all. Casually putting in checks is very likely to generate such cases.

My understanding of the Ariane case is that this check was casually put in,
in other words it was put in WITHOUT any analysis that said this check was
needed. Deployed code should not have such checks.

If you leave checks on throughout an Ada program, then a complex analysis is
required to ensure that if any check fails, it is properly handled in a manner
that does not do more damage than failing the check.

If you do not leave checks on, then a complex analysis is required to ensure
that nothing serious fails that would have been caught by a check.

In the absence of any careful analysis, it is not clear whether it is better
to leave on all checks or not. The important thing is to realize that in the
absence of a careful analysis, turning all checks on is not necessarily
safer than leaving them off.



  reply	other threads:[~2002-06-22 13:14 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-06-17 16:09 C.A.R. Hoare on liability Wes Groleau
2002-06-19 16:14 ` Mike Silva
2002-06-19 16:57   ` Darren New
2002-06-19 18:03   ` Larry Kilgallen
2002-06-19 17:54     ` Wes Groleau
2002-06-20 13:05       ` Marin David Condic
2002-06-21 14:31         ` Wes Groleau
2002-06-21 16:47           ` Marin David Condic
2002-06-21 11:55 ` Robert Dewar
2002-06-21 20:45   ` Robert I. Eachus
2002-06-22 13:14     ` Robert Dewar [this message]
2002-06-22 13:36       ` Jack Flynn
2002-06-22 16:47       ` Mark Biggar
2002-06-23 15:47         ` Robert I. Eachus
2002-06-22  2:55   ` SteveD
replies disabled

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