下载此文档

龙书第六章参考答案.doc


文档分类:文学/艺术/军事/历史 | 页数:约20页 举报非法文档有奖
1/20
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/20 下载此文档
文档列表 文档介绍
6、1节得练****为下面得表达式构造DAG((x+y)((x+y)*(xy)))+((x+y)*(xy))解答为下列表达式构造DAG,且指出她们每个子表达式得值编码。假定+就是左结合得。a+b+(a+b)a+b+a+ba+a+(a+a+a+(a+a+a+a))解答a+b+(a+b)1ida2idb3+124+33a+b+a+b1ida2idb3+124+315+42a+a+(a+a+a+(a+a+a+a))1ida2+113+214+315+346+256、2节得练****6、2、1将算数表达式a+(b+c)翻译成抽象语法树四元式序列三元式序列间接三元式序列解答抽象语法树四元式序列oparg1arg2result0+bct11minust1t22+at2t3三元式序列oparg1arg20+bc1minus(0)2+a(1)间接三元式序列oparg1arg20+bc1minus(0)2+a(1)instruction0(0)1(1)2(2)参考间接三元式更详细得讲解6、2、2对下列赋值语句重复练****6、2、1a=b[i]+c[j]a[i]=b*cb*dx=f(y+1)+2x=*p+&y解答a=b[i]+c[j]四元式0)=[]bit11)=[]cjt22)+t1t2t33)=t3a三元式0)=[]bi1)=[]cj2)+(0)(1)3)=a(2)间接三元式0)=[]bi1)=[]cj2)+(0)(1)3)=a(2)0)1)2)3)a[i]=b*cb*d四元式0)*bct11)*bdt22)t1t2t33)[]=ait44)=t3t4三元式0)*bc1)*bd2)(0)(1)3)[]=ai4)=(3)(2)间接三元式0)*bc1)*bd2)(0)(1)3)[]=ai4)=(3)(2)0)1)2)3)4)x=f(y+1)+2四元式0)+y1t11)paramt12)callf1t23)+t22t34)=t3x三元式0)+y11)param(0)2)callf13)+(2)24)=x(3)间接三元式0)+y11)param(0)2)callf13)+(2)24)=x(3)0)1)2)3)4)参考数组元素得取值与赋值6、2、3!说明如何对一个三地址代码序列进行转换,使得每个被定值得变量都有唯一得变量名。6、3节得练****6、3、1确定下列声明序列中各个标识符得类型与相对地址。floatx;record{floatx;floaty;}p;record{inttag;floatx;floaty;}q;解答SDTS>{top=newEvn;offset=0;}DD>Tid;{top、put(id、lexeme,T、type,offset);offset+=T、width}D1D>εT>int{T、type=interget;T、width=4;}T>float{T、type=float;T、width=8;}T>record'{'{Evn、push(top),top=newEvn;Stack、push(offset),offset=0;}D'}'{T、type=record(top);T、width=offset;top=Evn、top;offset=Stack、pop;}标识符类型与相对地址lineidtypeoffsetEvn1)xfloat012)xfloat022)yfloat822)precord813)tagint033)xfloat433)yfloat1233)qrecord2416、3、2!将图618对字段名得处理方法扩展到类与单继承得层次结构。给出类Evn得一个实现。该实现支持符号表链,使得子类可以重定义一个字段名,也可以直接引用某个超类中得字段名。给出一个翻译方案,该方案能够为类中得字段分配连续得数据区域,这些字段中包含继承而来得域。继承而来得字段必须保持在对超类进行存储分配时获得得相对地址。6、4节得练****6、4、1向图619得翻译方案中加入对应于下列产生式得规则:E>E1*E2E>+E1解答产生式语义规则E>E1*E2{E、addr=newTemp;E、code=E1、code||E2、code||gen(E、addr'='E1、addr'*'E2、addr);}|+E1{E、addr=E1、addr;E、code=E1、code;}6、4、2使用图620得增量式翻译方案重复练****6、4、1解答产生式语义规则E>E1*E2{E、addr=newTemp;gen(E、addr'='E1、addr'*'E2、addr;}|+E1{E、addr=E1、addr;}6、4、3使用图622得翻译方案来翻译下列赋值语句:x=a[i]+b[j]x=a[i][j]+b[i][j]!x=a[b[i][j]][c[k]]解答x=a[i]+b[j]语法分析树

龙书第六章参考答案 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数20
  • 收藏数0 收藏
  • 顶次数0
  • 上传人君。好
  • 文件大小113 KB
  • 时间2020-07-11