dcl A bit(1),
D bit(5);
A=1; /* A has value '0'B */
D=1; /* D has value '00010'B */
D='1'B; /* D has value '10000'B */
if A=1 then go to Y;
else go to X;
これは X への分岐になります。 なぜなら、下記の一連の処置が取られ、A への割り当てが行われるからです。
IF ステートメント内の比較演算では、'0'B と 1 が FIXED BINARY に変換され、 算術値として比較されます。 両者は等しくないので、A=1 の関係は偽 の結果になります。
D への最初の割り当てでは、A への割り当て時と同じような一連の処置が行われます。ただし、割り当てられる値の右側にゼロが埋め込まれる点が異なっています。これは、D の長さが、割り当てられる値の長さより 1 だけ大きい長さとして宣言されているからです。