给定文法G:E→E+T|T T→T*F|F F→i|(E) 则L(G)中的一个句子i+i+(i*i)*i的逆波兰表示为_______。
A.iii*i*++
B.ii+iii**+
C.ii+ii*i*+
D.A,B,C都不正确
第1题
赋值语句的文法及语义动作描述如下: (1)A→i:=E {GEN(:=,E.PLACE,_,ENTRY(i))} (2)E→E1+E2 {E.PLACE:=NEWTEMP;GEN(+,E1.PLACE,E2.PLACE,E.PLACE)} (3)E→E1*E2 {E.PLACE:=NEWTEMP;GEN(*,E1.PLACE,E2.PLACE,E.PLACE)} (4)E→-E1 (E.PLACE:=NEWTEMP;GEN(@,E1.PLACE,_E.PLACE)} (5)E→(E1) {E.PLACE:=E1.PLACE} (6)E→i {E.PLACE:=ENTRY(i)} 其中,GEN(:=,E.PLACE,_,ENTRY(i))表示把四元式(:=,E.PLACE,_,ENTRY(i)填入四元式表。ENTRY(i)表示i所代表的量在符号表的入口地址。E.PLACE表示存放E值的变量名在符号表的入口地址。 请写出赋值语句X:=-B*((C+D)+A的自下而上的语法制导翻译过程。
请帮忙给出正确答案和分析,谢谢!
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!