- 1、本文档共99页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6_语法制导翻译和中间代码生成4.0
如 IF A∨B THEN WHILE C DO X:=Y+Z ELSE S1,S2 END 识别出IF,则认定有E,对E编一递归过程,要做到: 把A∨B消化掉,产生相应的四元式 算出语义值,送到E.TC和E.FC中 回填E.TC,即真转出口 识别出THEN,认定是一个语句S,此S是一递归过程。 把WHILE语句消化掉,产生相应的四元式。 把S的不能确定内容作为S.CHAIN 识别ELSE,认定还必须是一个S,完成S的翻译。 S(2)的翻译 E.FC返填 三流合一,作为返回 S(2) 自上而下表现值,确定了一个大前提,可以在产生式中间调用语义程序 在规约过程中,编出四元式 所有子程序,要递归 子程序的返回值是语义值 关于如何把语义程序套进递归下降器中,参看书上的两个例子。 早期的编译程序中,语法分析和语义翻译往往混杂在一起。把语法分析和语义翻译分开不仅可使语法分析形式化和自动化,而且可使整个编译程序的结构更合乎逻辑和更加系统化。语法制导翻译技术就是为这个目标而生的。该方法在六十年代初出现之后很快就得到了推广应用。 最早使用语法制导翻译法来设计编译程序的是埃仁。语法制导翻译法由于埃伊柯尔、奇塔姆和菲尔德曼等人的工作而迅速传播开来。在理论方面,早期有刘易斯等人。 1 程序设计语言—编译原理 国防科学技术大学 陈火旺 P132-P177 2 编译原理及实践 Keeneth C.Louden 冯博琴等译 第八章 代码生成 3 现代编译程序设计 冯博琴等译 第四章 处理中间代码 产生代码过程 case 产生标号TEST,NEXT和一个临时单元T E 产生 T:= E的四元式 OF 产生GOTO TEST四元式,设置一个空队列QUEUE Ci 产生一个标号Li,连同NXQ填入符号表,(Ci,Pi)进入队列QUEUE Si 产生{ Si 四元式} { GOTO NEXT} otherwise 产生标号Ln,连同NXQ填入符号表 END 产生n个条件转移语句的四元式 TEST: (case, C1, P1, _) (case, C2, P2, _) … (case, Cn-1, Pn-1, _ ) (case, T, Pn, _ ) (label, NEXT, _, _) NEXT: 注意 1 末尾的多向转移目标指令组,视不同情况生成,可优 化处理。 如果Si又是一个case语句。怎么办? 应该建立嵌套队列,要解决队列嵌套,栈嵌套的底标记问题。 3 在产生完指令之后,队列可以不要,但符号表仍然存在,这样可以灵活地优化。 本小节讨论数组元素的表达式和赋值句的翻译。由于数组元素较简单变量有一定的特殊性,分几个方面来介绍。 本节内容 地址计算公式 四元式中数组元素表达形式(数组元素引用和中间代码) 赋值语句中数组元素的翻译 简化假定 数组元素按行存放,每维下限都为1,每个元素只占一个机器字,目标机器存储器是以字编址的。 对数组元素A[i1,i2,…in]地址D的计算公式如下: D = CONSPART + VARPART CONSPART = a – C C = d2d3…dn + d3d4…dn + … + dn +1 VARPART = i1d2d3…dn+i2d3d4…dn+…+in-1dn+in a addr(A[1,1,…1]),数组首址 注意 CONSPART只依赖于数组各位的界限d和数组的首址a,与数组元素各维的下标i1,i2,…,in无关。因此,对确定数组而言,计算数组元素的地址时,无需独立计算CONSPART。 VARPART是一个可变部分,它的值随着各维下标i1,i2, …,in的不同而不同。 计算数组元素的地址主要计算VARPART。 这儿只讨论确定数组(编译时可静态确定体积的数组,也称静态数组)的翻译。 简单变量可以在符号表中查到它的地址,而数组元素却不行,在符号表中只有它们的总代表——数组名的入口。 名字 特性 地址 A 数组 i1 u1 d1 In un dn n C type a A[1,1,…,1] A[1,1,…,2 … 因此,每个下标变量在语句中出现,如 X:=A[…
您可能关注的文档
- 6sigma五大阶段学习内容.ppt
- 6_条件处理.ppt
- 6.起重作业.ppt
- 6_第3章_关系数据库标准语言_1.ppt
- 6_第3章_关系数据库标准语言_2.ppt
- 6_第3章_关系数据库标准语言_3.ppt
- 6、4统计图的选择(二).ppt
- 6、 国际商事代理法案例讲解大全.doc
- 6、Insight 软件配置(D).ppt
- 6、《纪念白求恩》.ppt
- 专题06 经济体制(我国的社会主义市场经济体制)-五年(2020-2024)高考政治真题分类汇编(解析版).docx
- 专题11 世界多极化与经济全球化-5年(2020-2024)高考1年模拟政治真题分类汇编(解析版).docx
- 专题03 经济发展与社会进步-5年(2020-2024)高考1年模拟政治真题分类汇编(浙江专用)(解析版).docx
- 专题09 文化传承与文化创新-5年(2020-2024)高考1年模拟政治真题分类汇编(北京专用)(原卷版).docx
- 5年(2020-2024)高考政治真题分类汇编专题08 社会进步(我国的个人收入分配与社会保障)(原卷版).docx
- 专题07 探索世界与把握规律-5年(2020-2024)高考1年模拟政治真题分类汇编(解析版).docx
- 5年(2020-2024)高考政治真题分类汇编专题06 经济体制(我国的社会主义市场经济体制)(原卷版).docx
- 专题11 全面依法治国(治国理政的基本方式、法治中国建设、全面推进依法治国的基本要求)-五年(2020-2024)高考政治真题分类汇编(解析版).docx
- 专题17 区域联系与区域协调发展-【好题汇编】十年(2015-2024)高考地理真题分类汇编(解析版).docx
- 专题01 中国特色社会主义-5年(2020-2024)高考1年模拟政治真题分类汇编(原卷版).docx
最近下载
- 2024年刑法知识考试题库及答案【基础+提升】.pdf VIP
- 支气管镜诊疗操作相关大出血的预防和救治专家共识.pdf
- 2022年太原理工大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案).docx VIP
- 2023年太原理工大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案).docx VIP
- PP板_MSDS.doc
- 土木工程识图9剖面图和断面图.ppt
- 2024届高三英语一轮复习:说题比赛 ---2021年新高考II卷语法填空课件.pptx VIP
- 长输管道施工组织方案.doc
- 大职赛生涯闯关参考答案.docx VIP
- AST_中央企业班组长岗位管理能力资格认证(三期模拟1030)-0019.pdf
文档评论(0)