有文法 G 和 G 的语法制导翻译如下:
E → E1*T { E.place=newtemp;
emit(*,E1.place,T.place,E.place; }
| T { E.place=T.place; }
T → T1+F { T.place=newtemp;
emit(+,T1.place,F.place,T.place; }
| F { T.place=F.place; }
F → (E) { F.place=E.place; }
| id { F.place=id.name; }
(a) 求句型 (T+F)*id 的短语、直接短语以及句柄;
(b) 根据语法制导翻译写出句子 a*b+c*d 的中间代码;
(c) (若 a=3 , b=5 , c=7 , d=8 ,请给出中间代码计算结果;
(d) 将文法 G 简化为: E → E*T|T , T → T+F|F , F → id 。给出它的识别活前缀的 DFA 。