A-A+
构造一个语法制导翻译程序将C语言的循环语句 for(e1;e2;e3)s 翻译成四元式表示的
问题详情
构造一个语法制导翻译程序将C语言的循环语句 for(e1;e2;e3)s 翻译成四元式表示的如下语句序列。 begin e1; while(e2)do begin S; e3 end end
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:C语言的for语句的语法制导翻译程序如下:A→for(e1;e2;e3)S{L1=newlabel;L2=newlabel;L3=newlabel;L4=newlabel;A.code=e1.code|GEN(L1":")|e2.code|GEN(测e2.code)|GEN(jT____L2)|GEN(jF____L3)|GEN(L4":")|e3.codeGEN(j____L1)|GEN(L2":")|S.codeGEN(j____L4)|GEN(L3":")}
C语言的for语句的语法制导翻译程序如下:A→for(e1;e2;e3)S{L1=newlabel;L2=newlabel;L3=newlabel;L4=newlabel;A.code=e1.code|GEN(L1":")|e2.code|GEN(测e2.code)|GEN(jT,__,__,L2)|GEN(jF,__,__,L3)|GEN(L4":")|e3.codeGEN(j,__,__,L1)|GEN(L2":")|S.codeGEN(j,__,__,L4)|GEN(L3":")}