A statement evaluation technique is based on bi-evaluation of programming
statements. A programming language statement is evaluated that includes a
first and a second sub-statement. The first sub-statement is evaluated
and an evaluation success result is determined if evaluation succeeds, or
a distinguished value if evaluation fails. The distinguished value is a
value that is not included in the range of possible evaluation success
results of the first sub-statement. Further, it is determined whether the
second sub-statement is to be evaluated. If this is the case, an
evaluation success result of the second sub-statement is determined if
evaluation succeeds, or the distinguished value if evaluation fails. The
range of possible evaluation success results of the second sub-statement
does not include the distinguished value. The evaluation result of the
statement is determined depending on at least whether evaluation of the
first sub-statement succeeds or fails.