[prev in list] [next in list] [prev in thread] [next in thread] 

List:       sqlite-users
Subject:    Re: [sqlite] MC/DC coverage explained wrong in the home page?
From:       Simon Slavin <slavins () bigfraud ! org>
Date:       2011-09-23 22:56:36
Message-ID: 66BDA4CD-171B-4198-83D2-438F67A95390 () bigfraud ! org
[Download RAW message or body]


On 23 Sep 2011, at 11:30pm, Darren Duncan wrote:

> This is why I think it is valuable for a programming language to provide multiple \
> versions of some operations such as boolean "and","or" where one variant doesn't \
> short-circuit and the other does. 
> The primary purpose, then, of short-circuiting operators, is *not* about \
> performance but rather about validity; they would be used in situations where the \
> value of one operand determines whether it is even valid to calculate the other \
> operand, such as if the first operand is a type check and the second is an \
> operation that is only valid for some types. 
> In fact, for a computationally complete language that is functional, I would argue \
> that short-circuiting logic operators is essential.

Except that this is going to get rarer as languages arrive which encode \
multi-processing as part of the compilation process.  One-by-one evaluation is going \
to vanish.  If you have three processors free, why not evaluate three arguments at \
once, even if it turns out that the value of one of them means the other two don't \
matter ?  We're going to find applications going down many 'false paths' in the \
process of arriving at a response.

If you want your arguments evaluated, evaluated them yourself.  If the order matters, \
evaluate them in that order.  Don't rely on it as an undocumented side-effect of \
something else.

Simon.
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic