PEP 3107 and stronger typing (note: probably a newbie question)

John Nagle nagle at animats.com
Thu Jul 12 23:58:32 EDT 2007


Chris Mellon wrote:
> You can't prove a program to be correct, in the sense that it's proven
> to do what it's supposed to do and only what it's supposed to do.

     Actually, you can prove quite a bit about programs with the right tools.
For example, proving that a program cannot subscript out of range is
quite feasible.  (Although not for C, where it's most needed; that language
is just too ill-defined.)  You can prove that certain assertions about
an object always hold when control is outside the object.  You can
prove that certain entry conditions for a function are satisfied by
all its callers.

     Take a look at what the "Spec#" group at Microsoft is doing.
There's also some interesting USAF work on avionics at

http://www.stsc.hill.af.mil/crossTalk/2006/09/0609SwardGerkenCasey.html

But it's not a very active field right now.  The basic problem is that
C and C++ aren't well suited to proof of correctness, yet none of the
other hard-compiled languages have any significant market share left.

      This is irrelevant to Python issues, though.

					John Nagle



More information about the Python-list mailing list