[fpc-pascal] Competitive advantage in showing proof of correctness

Daniël Mantione daniel.mantione at freepascal.org
Tue Aug 14 11:36:39 CEST 2007



Op Tue, 14 Aug 2007, schreef Vinzent Hoefler:

> On Tuesday 14 August 2007 08:08, Florian Klaempfl wrote:
> > Vinzent Hoefler schrieb:
> > > On Tuesday 14 August 2007 06:14, Daniël Mantione wrote:
> > >> Lastly, pre and post conditions are just another runtime check.
> > >
> > > No. If you can prove that the conditions always hold, you don't
> > > even need to compile to the program to prove its correctness.
> > >
> > > There's a company already doing that:
> > >
> > > http://www.praxis-his.com/sparkada/intro.asp
> >
> > As long as they can't prove that Goedel is wrong I don't believe in
> > it :)
> 
> Well, I've seen it in action. And I don't see the reference to Goedel 
> here. Basically it's predicate logic, which is - according to Goedel - 
> both complete and correct.
> 
> Of course, they can't solve the halting problem. But most systems they 
> design are not designed to halt, anyway. ;)

Very true. You can't solve the problem of deciding wether two programs are 
equivalent either, that is simply uncomputable.

You can only that a compiler in such a language performs the *intended* 
Pascal->Assembler transformation correctly, not that the transformation 
produces an assembler program with identical functionality as the Pascal 
program.

Unfortunately the process of designing a transformation from Pascal to 
assembler that is both efficient and correct is difficult.

So, would it be the end of bugs? Not at all. You would prevent 
implementation bugs, not design bugs.

Check the bug repository how mbug reports are due to implementation 
bugs (internalerror, crash) and how many due to design bugs (incorrect 
code generation, incompatibility, standard conformance).

Daniël


More information about the fpc-pascal mailing list