論理積式
構文
conjunct = disjunct ("AND" conjunct / .empty);
disjunct = negation ("OR" negation / .empty);
negation = "NOT" relation / relation;
relation =
'( conjunct ') /
sum (
"<=" sum /
">=" sum /
'< sum /
'> sum /
'= sum /
'" sum /
.empty);
論理積構文は、和でない論理積が値を持つ必要がなく、コード内のジャンプを使って評価されうるように仕組まれています。論理積への参照は、論理的な決定が求められる場所 (例えばif文やwhile文) でのみ行われます。
我々は、ほとんどのコンパイラが実行時に不必要な評価をスキップできるほど賢いことを望んでいます。すなわち、左部分が偽である論理積や、左部分が真である論理和では、対応する右部分を評価する必要はありません。