编译原理第8章作业及习题参考答案.doc_第1页
编译原理第8章作业及习题参考答案.doc_第2页
编译原理第8章作业及习题参考答案.doc_第3页
编译原理第8章作业及习题参考答案.doc_第4页
编译原理第8章作业及习题参考答案.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编译原理作业参考答案 - 5 -第八章 语法制导翻译和中间代码生成1给出下面表达式的逆波兰表示(后缀式):(1) a*(-b+c) (4) (AB) (C D)(7) if(x+y)*z=0 then s=(a+b)*c else s=a*b*c解(1) ab-c+* (4) ABCD(7) xy+z*0=sab+c*:=sab*c*:=¥(注:¥表示if-then-else运算)¥=:=*0:=+xyzs+cxabs*c*ab2. 请将表达式-(a+b)*(c+d)-(a+b+c)分别表示成三元式、间接三元式和四元式序列。答案:三元式 (1) (+ a, b) (2) (+ c, d) (3) (* (1), (2) (4) (- (3), /)(5) (+ a, b)(6) (+,(5),c)(7) (- (4), (6)间接三元式间接三元式序列 间接码表(1) (+ a, b)(1)(2) (+ c, d)(2) (3) (* (1), (2)(3) (4) (- (3), /) (4)(5) (- (4), (1)(1) (6) (- (4), (5)(5)(6)四元式(1) (+, a, b, t1)(2) (+, c, d, t2)(3) (*, t1, t2, t3) (4) (-, t3, /, t4) (5) (+, a, b, t5)(6) (+, t5, c, t6)(6) (-, t4, t6, t7)3. 采用语法制导翻译思想,表达式E的值的描述如下:产生式语义动作(0) SEprint E.VAL (1) EE1+E2 E.VAL=E1.VAL+E2.VAL (2) EE1*E2 E.VAL=E1.VAL*E2.VAL(3) E(E1) E.VAL=E1.VAL (4) En E.VAL=n.LEXVAL如果采用LR分析法,给出表达式(5 * 4 + 8) * 2的语法树并在各结点注明语义值VAL。S*E1E2E0E32E5.VAL=585*E5E6+E44E6.VAL=4E4.VAL=8E3.VAL=20E1.VAL=28E2.VAL=2E0.VAL=56Print(56)4. 假如习题3中表达式E的“值”有两种类型:整型和实型。语义处理增加类型匹配检查,请给出相应的语义描述。解:(0) SE if error1 then print E.VAL (1) EE1+E2 if E1.TYPE=int AND E2.TYPE=int thenbeginE.VAL:=E1.VAL + E2.VAL;E.YTPE:=int;end else if E1.TYPE=real AND E2.TYPE=real then begin E.VAL:=E1.VAL + E2.VAL;E.YTPE:=real; end else error=1 (2) EE1*E2 if E1.TYPE=int AND E2.TYPE=int then beginE.VAL:=E1.VAL * E2.VAL; E.YTPE:=int; end else if E1.TYPE=real AND E2.TYPE=real thenbeginE.VAL:=E1.VAL * E2.VAL; E.YTPE:=real;end else error=1 (3) E(E1) E.VAL:=E1.VAL; E.TYPE:=E1.TYPE (4) En E.VAL:=n.LEXVAL;E.TYPE:=n.LEXTYPE 5. 令综合属性 val 给出在下面的文法中的 S 产生的二进制数的值 ( 如,对于输入 101.101 ,则S.val=5.625)。S - L.L | L L - LB | B B - 0 | 1 解1:提示画出对应于输入101.101的语法树,然后设置相应的属性进行语义规则的创立。产生式 语义规则 S -L 1.L2 S-L S.val:=L.val L - L1B L.val:=L1.val*2+B.val L.length:=L1.length+1 L - B L.val:=B.val L.length:=1 B - 0 B.val:=0 B - 1 B.val:=1 S.LLBLBBLBLLBB解2:产生式语义规则 S - L S.val:=L.val; S - L1.L2 S.val:=L1.val+L2.val*L2.p; L - B L.v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论