[Python-ideas] Simplicity of C (was why is design-by-contracts not widely)

Steven D'Aprano steve at pearwood.info
Mon Oct 1 10:18:21 EDT 2018


On Sun, Sep 30, 2018 at 06:19:11PM -0400, Eric V. Smith wrote:
> On 9/30/2018 8:11 AM, Stephen J. Turnbull wrote:
> >Steven D'Aprano writes:
> >  > (7) You can't unit test loop invariants
> >
> >I don't see how a loop invariant can be elegantly specified without
> >mixing it in to the implementation.  Can you show an example of code
> >written in a language with support for loop invariants *not* mixed
> >into the implementation?
> 
> I'd be very interested in this, too. Any pointers?

I'm not sure how Stephen went from my comment that you can't unit test 
loop invariants to the idea that loop invariants aren't in the 
implementation. Obviously the loop invariant has to be attached to the 
loop. You can't attach a loop invariant to a method or class, because 
they might contain more than one loop.

https://en.wikipedia.org/wiki/Loop_invariant#Eiffel

    from
        x := 0
    invariant
        x <= 10
    until
        x > 10
    loop
        x := x + 1
    end



-- 
Steve


More information about the Python-ideas mailing list