What is a type error?
Joachim Durchholz
jo at durchholz.org
Tue Jul 11 18:29:38 EDT 2006
Marshall schrieb:
> Now, I'm not fully up to speed on DBC. The contract specifications,
> these are specified statically, but checked dynamically, is that
> right?
That's how it's done in Eiffel, yes.
> In other words, we can consider contracts in light of
> inheritance, but the actual verification and checking happens
> at runtime, yes?
Sure. Though, while DbC gives rules for inheritance (actually subtypes),
these are irrelevant to the current discussion; DbC-minus-subtyping can
still be usefully applied.
> Wouldn't it be possible to do them at compile time? (Although
> this raises decidability issues.)
Exactly, and that's why you'd either uses a restricted assertion
language (and essentially get something that's somewhere between a type
system and traditional assertion); or you'd use some inference system
and try to help it along (not a simple thing either - the components of
such a system exist, but I'm not aware of any system that was designed
for the average programmer).
> Mightn't it also be possible to
> leave it up to the programmer whether a given contract
> was compile-time or runtime?
I'd agree with that, but I'm not sure how well that would hold up in
practice.
Regards,
Jo
More information about the Python-list
mailing list