A-A+

把下面C语句翻译成四元式 并给出语义子程序。 while(A<C)A(B<D)do if A

2022-08-12 20:29:15 问答库 阅读 197 次

问题详情

把下面C语句翻译成四元式,并给出语义子程序。 while(A<C)A(B<D)do if A=1 then C++ else while A<=D do A=A+2


请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:假定第一条语句对应的标号是100程序的语义子程序如下:100(j<AC102)101(jj__115)102(j<BD104)103(j<__115)104(j=A1106)105(j<__i09)106(+C1T1)107(=T1__C)108(j____100)109(j<=AD111)110(j<____100)111(+A2T2)112(=T2__A)113(j____109)114(j____i00)其中“j”表示无条件转移操作符。例如(j100)表示无条件转移到“100”标识的四元式。“j<”表示条件转移操作符。例如(j<nm100)表示当n<m时转移到“100”标识的四元式。“j=”表示条件转移操作符。例如(j=nm100)表示当n=m时转移到“100”标识的四元式。“j<=”表示条件转移操作符。例如(j<nm100)表示当n<=m时转移到“100”标识的四元式。
假定第一条语句对应的标号是100,程序的语义子程序如下:100(j<,A,C,102)101(jj_,_,115)102(j<,B,D,104)103(j<,_,_,115)104(j=,A,1,106)105(j<,_,_,i09)106(+,C,1,T1)107(=,T1,__,C)108(j,__,__,100)109(j<=,A,D,111)110(j<,__,__,100)111(+,A,2,T2)112(=,T2,__,A)113(j,__,__,109)114(j,__,__,i00)其中,“j”表示无条件转移操作符。例如,(j,,,100)表示无条件转移到“100”标识的四元式。“j<”表示条件转移操作符。例如,(j<,n,m,100)表示当n<m时转移到“100”标识的四元式。“j=”表示条件转移操作符。例如,(j=,n,m,100)表示当n=m时转移到“100”标识的四元式。“j<=”表示条件转移操作符。例如,(j<,n,m,100)表示当n<=m时转移到“100”标识的四元式。

考点:语义,语句