How about "pure virtual methods"?

Mike Meyer mwm at
Sun Dec 26 04:34:36 CET 2004

Noam Raphael <noamr at> writes:

> Mike Meyer wrote:
>> That's what DbC languages are for. You write the contracts first,
>> then
>> the code to fullfill them. And get exceptions when the implementation
>> doesn't do what the contract claims it does.
>>         <mike
> Can you give me a name of one of them? This is a very interesting
> thing - I should learn one of those sometime. However, I'm pretty sure
> that programming in them is hell, or at least, takes a very long time.

Eiffel. Google for SmartEiffel for a free portable implementation. If
you want an IDE/etc., look for EiffelStudio - though it's only
available in binary form. And the two implement different languages
(EiffelStudio implements things accepted as standard for OOSCv3,
whereas SmartEiffel implements things that are still under
consideration in their own variants, and fails to implement some
critical features), though the DbC parts are identical.

I find Eiffel fun to program in. SmartEiffel's libraries are as
flexible as Python's built in types. And debugging with all the
contract checking turned on causes exceptions for truly obscure bugs.

Mike Meyer <mwm at>
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.

More information about the Python-list mailing list