- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 语义分析 8.3 中间代码生成 8.3.3 简单说明语句的翻译 简单说明语句的属性文法 过程中的说明语句的属性文法 8.3.4 布尔表达式的翻译 布尔表达式的翻译举例 8.3.5.2 控制语句结构的属性文法 “拉链”与“回填”技术 “拉链”的例子 “回填”的例子 布尔表达式翻译需要的语义元素: 符号表 name type def add … L label not r (p) goto 0 … (q) goto p … (r) goto q 定义标号语句的产生式 S→label S label→i: 那么,当用label→i:进行归约时,应做如下的语义动作: 1.若i所指的标识符(假定为L)不在符号表中,则把它填入,置“类型”为“标号”,“定义否”为“已”,“地址”为nextstat。 2.若L已在符号表中但“类型”不为“标号”或“定义否”为“已”,则报告出错。 3.若L已在符号表中,则把标志“未”改为“已”,然后,把地址栏中的链首(设为q)取出,同时把nextstat填在其中,最后,执行backpatch(q,nextstat)。 翻译goto语句时,还有两点必须注意 第一:相同名字的标号可以在不同名字作用域中定义。如: (1) begin (2) L:begin (3) goto L;//延迟使用 (4) …… (5) L:… (6) end (7) end 第二,转移标号是非法的 (1)for i∶=1 to 10 do (2) begin gotoL; (3) for j∶=1 to 20 do (4) begin goto L; … … (n) L: end {forj} end {for i} 处理到第(n)行后,第(4)行的goto目标得以解决。而第(2)行的goto L是非法的,但只有当循环关闭时才能确定。 8.3.6 过程调用的翻译(四元式产生) 过程调用的实质是把程序控制转移到子程序(过程段)。在转子之前必须用某种办法把实在参数的信息传给被调用的子程序,并且应该告诉子程序在它工作完毕后返回到什么地方。 传递实在参数 , 过程调用 CALL S(A+B, Z) 将被翻译成: 计算A+B置于T中的代码/ T∶=A+B/ par T/第一个实参地址/ par Z/第二个实参地址/ call S/转子指令/ 如何产生反映这种模式的四元式 过程调用语句的文法: (1)S→calli(〈arglist〉) (2)arglist→arglist1,E (3)arglist→E 在处理实在参数串的过程中记住每个实参的地址 (1)S→calli (〈arglist〉) {For 队列 argulist.QUEUE 的每一项p Do Gen(par _,_,p); Gen(call,_,_,entry(i))} (2)arglist→arglist1,E {把E.PLACE 排在arglist1 .QUEUE 的末端; arglist.QUEUE:= arglist1 .QUEUE } (3)arglist→E {建立一个arglist.QUEUE ,它只包含一项E.PLACE} ?记录实在参数个数 8.3.7 数组的翻译 数组说明和数组元素的引用 将产生两组计算数组元素地址的四元式 一组计算VARPART,将它放在某个临时单元T中; 一组计算CONSPART,放在另一个临时单元T1中。 同时用表示数组元素的地址。 对应“数组元素引用”(引用其值)和“对数组元素赋值”有两个相应的四元式:“变址取数”和“变址存数”。 “变址取数”的四元式是: (=[ ], T1[ T ] ,-,X)/相当于X∶= T1[ T ] / “变址存数”的四元式是: ([ ]=, X1,-, T1[ T ] )/相当于T1[ T ] :=x/ 习题 …… ( 10 ) goto L ( 10 ) goto 0 …… …… 链尾 ( 10 ) ( 20 ) goto L
您可能关注的文档
- 粤教版必修一2.1《探究自由落体运动》课件04.ppt
- 英语中的连读现象(非常好)-1.ppt
- 英语中考考前复习与解题指导-1.ppt
- 英语中考考前指导PPT课件.ppt
- 英语中跟“钱”有关的表达方式-1.ppt
- 英语主题PPT模板-1.ppt
- 英语主题教研活动分享-1.ppt
- 英语九大状语从句-1.ppt
- 英语五大句型(绝对经典)-1.ppt
- 粤教版必修一2.4《匀变速直线运动与汽车行驶》课件03.ppt
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
文档评论(0)