PEP 3107 and stronger typing (note: probably a newbie question)
John Nagle
nagle at animats.com
Mon Jul 9 02:10:30 EDT 2007
Paul Rubin wrote:
> "Diez B. Roggisch" <deets at nospam.web.de> writes:
>
>>>Which implies that even in ADA, runtime type errors are in fact
>>>expected - else there would be no handler for such a case.
>>
>>Well, yes, runtime errors occur - in statically typed languages as
>>well. That's essentially the halting-problem.
>
>
> Well, no, it's quite possible for a language to reject every program
> that has any possibility of throwing a runtime type error. The
> halting problem implies that no algorithm can tell EXACTLY which
> programs throw errors and which do not. So the language cannot accept
> all programs that are free of runtime type errors and reject all
> programs that definitely have runtime type errors, with no uncertain
> cases. But it's fine for a language to reject uncertain cases and
> accept only those which it can rigorously demonstrate have no type
> errors.
Also, if you're really into this, read this DEC SRL report on
Extended Static Checking for Java, a system from the 1990s.
ftp://gatekeeper.research.compaq.com/pub/DEC/SRC/research-reports/SRC-159.pdf
They were doing great work until Compaq bought DEC and killed off research.
The follow up to that is Microsoft's Spec# effort, which is program
verification for C#. See
http://research.microsoft.com/specsharp/
They have some of the same people, and some of the same code, as the
DEC effort.
Back when I was working on this, we only had a 1 MIPS VAX, and theorem
proving was slow. That's much less of a problem now.
John Nagle
More information about the Python-list
mailing list