Article View: comp.ai
Article #8692Re: Reasons why you don't prove your programs are correct
From: John Nagle
Date: Wed, 10 Jan 1990 06:38
Date: Wed, 10 Jan 1990 06:38
40 lines
2535 bytes
2535 bytes
There are several verifiers available, none widely so. I've been
out of this field for a few years, so this isn't current information.
The Gypsy system, developed by Don Good and various others at the
University of Texas, is a code-level verifier and compiler for small
real-time programs. The verification system ran on a Symbolics when
I last saw it.
Robert Boyer and Jay Moore have a startup company in Austin called
Computational Logic, Inc., and they are working in this area.
The Pascal-F Verifier, the system I worked on, can be distributed
to academic sites. It's a code-level verifier for a real-time dialect
of Pascal. The compiler, which targeted the Intel 8061, is not available.
The verifier is written in Berkeley Pascal and Franz LISP and runs on
VAXen and Suns. It hasn't been used in years, but I could provide a copy
if someone is serious about bringing it up. See the paper, "Practical
Program Verification", in POPL '83, for more information. What it
basically undertakes to verify is that the program won't crash at
run time and that critical assertions and invariants are preserved.
Where real-time control is involved, these tend to be the crucial issues.
This system was never used for its intended purpose, verifying engine
control programs for automobiles, because the reliablity of those
programs turned out not to be a serious problem in practice.
A serious verifier is about as complicated as a serious optimizing
compiler. It's much more complicated than a simple compiler. Many
workers in the field grossly underestimated the size of the implementation
required.
Formal specifications turned out to be a dead end because they were
nearly as large as the program they specified and much harder to work on,
since you couldn't run them. But where you can specify some desired
properties, such as real-time constraints, termination, numeric values
staying within the proper limits, and such, machine proof is quite
feasible.
John Nagle
Technical Details
Message-ID:
<15446@well.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!pacific.mps.ohio-state.edu!zaphod.mps.ohio-state.edu!mips!apple!well!nagleReferences:
<7578@hubcap.clemson.edu> <25728@cup.portal.com> <4760@itivax.iti.org>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!pacific.mps.ohio-state.edu!zaphod.mps.ohio-state.edu!mips!apple!well!nagle From: nagle@well.UUCP (John Nagle) Newsgroups: comp.ai Subject: Re: Reasons why you don't prove your programs are correct Message-ID: <15446@well.UUCP> Date: 10 Jan 90 06:38:51 GMT References: <7578@hubcap.clemson.edu> <25728@cup.portal.com> <4760@itivax.iti.org> Reply-To: nagle@well.UUCP (John Nagle) Lines: 40