编译原理答案 第五章

编译原理答案 第五章

ID:18523273

大小:204.00 KB

页数:15页

时间:2018-09-18

编译原理答案   第五章_第1页
编译原理答案   第五章_第2页
编译原理答案   第五章_第3页
编译原理答案   第五章_第4页
编译原理答案   第五章_第5页
资源描述:

《编译原理答案 第五章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、练习5.1解答:输入(4*7+1)*2n,带注释的分析树如下:练习5.2解答:(1)根据表5.3中的语法制导定义建立表达式((a)+(b))的分析树和语法树(2)根据图5.17的翻译模式构造((a)+(b))的分析树和语法树练习5.3解答:设置下面的函数和属性:expr1

2、

3、expr2:把表达式expr2拼写在表达式expr1后面。deletep(expr):去掉表达式expr左端的‘(’和右端的‘)’。E.expr,T.expr,F.expr:属性变量,分别表示E,T,F的表达式。E.add,T.add,F.add,属性变量,

4、若为true,则表示其表达式中外层有‘+’号,否则无‘+’号。E.pmark,T.pmark,F.pmark,属性变量,若为true,表示E,T,F的表达式中左端为‘(’,右端是‘)’。语法制导定义如下:产生式语义规则E->E1+Tif(T.pmark==true)THENE.expr=E1.expr

5、

6、'+'

7、

8、deletep(T.expr)ELSEE.expr:=E1.expr

9、

10、'+'

11、

12、T.expr;E.add:=true;E.pmark:=false;E->Tif(T.pmark==true)THENE.expr:=d

13、eletep(T.expr)ELSEE.expr:=T.expr;E.add:=T.add;E.pmark:=false;T->T1*FT.expr:=T1.expr

14、

15、'*'

16、

17、F.expr;T.add:=false;T.pmark:=false;T->FT.expr:=F.expr;T.add:=F.add;T.pmark:=F.pmark;F->(E)if(E.add==false)THENBEGINF.expr:=E.expr;F.add:=false;F.pmark:=false;ENDELSEBEGINF.expr:

18、='('

19、

20、E.expr

21、

22、')';F.add:=true;F.pmark:=true;END;F->idF.expr:=id.lexval;F.add:=false;F.pmark:=false;练习5.4解答:(1)语法制导定义如下:产生式语义规则E->E1+Tif(E1.type==int)AND(T.type==int)THENE.type:=intELSEE.type:=real;E->TE.type:=T.type;T->numT.type:=int;T->num.numT.type:=real;(2)设E.pf和T

23、.pf分别是E和T的前缀形式,

24、

25、是两个字符串的连接,语法制导定义如下:产生式语义规则E->E1+Tif(E1.type==int)AND(T.type==int)THENE.type:=intELSEBEGINE.type:=real;if(E1.type==int)AND(T.type==real)THENE1.pf:='inttoreal'

26、

27、E1.pfELSEif(E1.type==real)AND(T.type==int)THENT.pf:='inttoreal'

28、

29、T.pfEND;E.pf:='+'

30、

31、E1.pf

32、

33、

34、T.pf;E->TE.type:=T.type;E.pf:=T.pf;T->numT.type:=int;T.pf:=int.lexval;T->num.numT.type:=real;T.pf:=real.lexval;练习5.5解答:(1)用综合属性决定s.val的语法制导定义:产生式语义规则S->LS.val:=L.val;S->L1.L2S.val:=L1.val+L2.val*L2.p;L->BL.val:=B.val;L.p:=2-1;L->L1BL.val:=L1.val*2+B.val;L.p:=L.p*2-1;

35、B->0B.val:=0;B->1B.val:=1;注:L.p表示恢复L.val的因子。(2)分析:设B.c是B的综合属性,是B产生的位对最终值的贡献。要求出B.c,必须求出B产生位的权,设B.i。B.i的求法请参看下面的图示:另外,设L.fi为继承因子,L.fs为综合因子,语法制导定义如下:产生式语义规则S->LL.i:=1;L.fi:=2;L.fs:=1;S.val:=L.val;S->L1.L2L1.i=1;L1.fi=2;L1.fs:=1;L2.i=2-1;L2.fi=1;L2.fs:=2-1;S.val:=L1.val

36、+L2.val;L->BL.s:=L.i;B.i:=L.s;L.val:=B.c;L->L1BL1.i:=L.i*L1.fi;L.s:=L1.s*L1.fs;B.i:=L.s;L.val:=L1.val+B.c;B->0B.c:=0;B->1B.c:=B.i;若

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。