欢迎来到天天文库
浏览记录
ID:51644370
大小:233.00 KB
页数:11页
时间:2020-03-14
《龙书第5,6章课后答案.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、5.1.11)、2)、L.val=4723)、5.2.31)、i)、不满足S属性的定义ii)、满足L属性的定义iii)、存在一致的求值过程2)、i)、不满足S属性的定义ii)、满足L属性的定义iii)、存在一致的求值过程3)、i)、满足S属性的定义ii)、满足L属性的定义iii)、存在一致的求值过程4)、i)、不满足S属性的定义ii)、不满足L属性的定义iii)、不存在一致的求值过程5.2.4Val为S或L对应的值;Len表示L对应的长度;产生式语义规则S->L1.L2S.val=L1.val+L2.va
2、l/2^L2.lenS->LS.val=L.valL->L1BL.val=L1.val*2+B.val;L.len=L1.len+1;L->BL.val=B.val;L.len=1;B->0B.val=0B->1B.val=15.3.11)、产生式语义规则E->E1+TIf((E1.type==int)and(T.type==int))E.type=int;ElseE.type=real;E->TE.type=T.typeT->num.numT.type=realT->numT.type=int2)、产生
3、式语义规则E->E1+TIf((E1.type==int)and(T.type==int))E.type=int;ElseE.type=real;If((E1.type==real)and(T.type==int))T.val=intToFloat(T.val);ElseIf((E1.type==int)and(T.type==real))E1.val=intToFloat(E1.val);E.val=E1.val
4、
5、T.val
6、
7、‘+’E->TE.type=T.type;E.val=T.val;T->n
8、um.numT.type=real;T.val=num.numreal.lexval;T->numT.type=int;T.val=intnum.lexval;5.4.41)、S->if(C)S1elseS2;CB.true=newlabel();CB.false=newlabel();S1.next=S2.next=S.next;S.code=BC.code
9、
10、label(BC.true)
11、
12、S1.code
13、
14、gen(‘goto’S.next)
15、
16、label(BC.false)
17、
18、S2.code2)、S
19、->doS1while(C)begin=newlabel();C.false=S.next;C.true=begin;S.code=label(begin)
20、
21、S1.code
22、
23、cC.true
24、
25、gen(‘goto’,begin);3)、??????S->’{’L’}’LàL1SLàεL.next=S.next;L1.next=newlabel();S.next=L.next;L.code=l1.code
26、
27、label(L1.next)
28、
29、S.code6.1.1+-*+-Xy6.1.21)、子表达式的值编
30、码如下:a两个字表达式的值编码:1b:1a+b:3a+b+(a+b):4都为3;2)、子表达式的值编码如下:a:1b:1a+b的值编码为3,a+b+a的值编码为4,a+b+a+b的值编码为5;3)、子表达式的值编码如下:a:1a+a:2a+a+a:3(a+a+a+a)的值编码为:46;(a+a+a+(a+a+a+a))的值编码为:57;a+a的值编码为3;a+a+(a+a+a+(a+a+a+a))的值编码为686.2.11)、抽象语法树+aminus+bc2)、四元式序列Oparg1arg2Result0
31、+bct11minust1t22+at2t33)、三元式序列Oparg1arg20+bC1minus(0)2+a(1)4)、间接三元式Oparg1arg20+bC1minus(0)2+a(1)Instruction0(0)1(1)2(2)6.3.1floatx;x类型为浮点型;相对地址为0;record{floatx;floaty;}p;p为记录类型,x和y为浮点型;x相对地址为0;y相对地址为8;record{inttag;floatx;floaty;}q;q为记录类型,tag为整型,x和y为浮点型;t
32、ag的相对地址为0;x的相对地址为4;y的相对地址为12;6.4.31)、t1=i*4;t2=a[t1];t3=j*4;t4=b[t3];t5=t2+t4;x=t5;2)、注:三地址码中不支持连乘Tt01=i*n*4;t1=t0*4;t2=j*4;t3=t1+t2;t4=a[t3];t5=i*qt51=t5t5=i*q*4;t6=j*4;t7=t51+t6;t8=b[t7];t9=t7+t8;x=t9;3)、t0=i*qt1=
此文档下载收益归作者所有