次の一連の3アドレス命令で得られる結果xを表す式はどれか。ここで,3アドレス命令では,三つのオペランドを用いた命令“c=a op b”を“op(a,b,c)”として表記する。op は一つの演算子を表し,結果xを表す式においては優先順位の高い順に*,/,+,-とする。
/(c,d,w1) |
+(b,w1,w2) |
/(e,f,w3) |
-(w3,g,w4) |
*(w2,w4,x) |
ア | b+c/d*e/f-g |
イ | b+c/d*(e/f-g) |
ウ | (b+c/d)*e/f-g |
エ | (b+c/d)*(e/f-g) |
各命令を計算式に直す。
/(c, d, w1) | → | w1=c/d |
+(b, w1, w2) | → | w2=b+c/d |
/(e, f, w3) | → | w3=e/f |
-(w3, g, w4) | → | w4=e/f-g |
*(w2, w4, x) | → | x=(b+c/d)*(e/f-g) |