Whom considers Ada (the language name is not an acronym) provably correct? How 
do you prove the program is deterministic? What if a Verification Condition is 
not proven? Is the code incorrect? Is the assertion not correct or incomplete? 
Does P = NP ? SPARK 2014 did attempt to address some of this stuff, BTW.

Do not think that we will find answers to these questions in ISO8652. What Ada 
does provide is a formalized programming method for concurrency + design by 
contract, which offer a little more hope for code safety and test coverage.

The weakness for all human code solutions is a provable processor core where 
the assumption is a provable algorithm. If a static evaluation indicates a 
deterministic algorithm, and if a contract violation occurs at runtime, what is 
'wrong'? The language? The Compiler? The design assumptions? The processor 
core? Once you get past Ada (or any other language) compile-time protection, 
you return to the electronic jungle where you are part of the food chain.

Brian


From: B Rowland [mailto:[email protected]] 
Sent: Thursday, August 04, 2016 11:33 AM
To: [email protected]
Subject: Re: [PSES] SAFETTY FEATURES controlled by ....SOFTWARE

Hi List-colleagues;

I think, if the safety-related functions are life-critical, they need to be 
written in a "provably-correct" language/environment, like ADA, or some 
equivalent. And, of course, that also means that such functionality needs to be 
isolated from software that is NOT provably-correct (is Windows 
"provably-correct" ?).

In any case, life-critical systems need to be, at least, redundant, with 
fail-safe shutdown if the processes do not agree at timed checkpoints, and also 
have hardware-based watchdog timers (sometimes built-in to the microcontroller, 
itself) to guarantee continued function. Furthermore, it is also typical that 
the software that runs on the redundant processors is written by different 
teams, so that an error in a program on one "side" is not duplicated in the 
other half/third of the redundant CPUs.

Since, as some have pointed out, it is readily-accomplished to have a 
provably-correct hardware implementation of the safety functions that are "at 
the edge" of the system, FPGA's, PALs, etc., with ROM, or 
check-summed-on-load-firmware, are much more reliable.. 

In another discussion that I had, a while back, we even discussed how to ensure 
that the semiconductor devices, at the safety interface, are made 
reliable-enough to allow proper operation, even in the typical fail-short 
conditions. I think that this is why we have relays costing > $1000 used in 
train/subway applications ;-)

Cheers,
Barry Rowland
Muenchen, Bayern

-
----------------------------------------------------------------
This message is from the IEEE Product Safety Engineering Society emc-pstc 
discussion list. To post a message to the list, send your e-mail to 
<[email protected]>

All emc-pstc postings are archived and searchable on the web at:
http://www.ieee-pses.org/emc-pstc.html

Attachments are not permitted but the IEEE PSES Online Communities site at 
http://product-compliance.oc.ieee.org/ can be used for graphics (in well-used 
formats), large files, etc.

Website:  http://www.ieee-pses.org/
Instructions:  http://www.ieee-pses.org/list.html (including how to unsubscribe)
List rules: http://www.ieee-pses.org/listrules.html

For help, send mail to the list administrators:
Scott Douglas <[email protected]>
Mike Cantwell <[email protected]>

For policy questions, send mail to:
Jim Bacher:  <[email protected]>
David Heald: <[email protected]>

Reply via email to