A-A+

构造一个语法制导翻译程序将C语言的循环语句 for(e1;e2;e3)s 翻译成四元式表示的

2022-08-12 20:44:31 问答库 阅读 197 次

问题详情

构造一个语法制导翻译程序将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":")}

考点:语句,语法