- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5单元语法制导翻译及中间代码生成
第五章 语义分析和中间代码的表示 语义分析的概念 语法制导翻译方法 属性文法 几种常见的中间代码表示 第一节 语义分析的概念 语义分析:即审查每个语法成分的静态语义。 在早期的一些编译程序中,是在语法分析的基础上根据源程序中各语法成份的语义,直接产生机器语言或汇编语言形式的目标代码。 现在的编译系统一般都将经过语法分析的源程序先翻译为某种形式的中间语言代码,然后再将其翻译为目标代码。 优点: 使编译程序各组成部分功能更单一; 使得编译程序的逻辑结构更为清晰,从而使编译程序更易于编写与调整;同时为代码优化和程序的可移植性提供了条件 在语义分析时也要进行语义检查,编译时的语 义检查是静态语义检查,包括: 类型检查,如参与运算的操作数的类型应相容。 控制流检查,用以保证控制语句有合法的转向点。如C语言中不允许goto语句转入case语句流。 一致性检查,如case语句的标号不能相同。 第二节 语法制导翻译 对文法中的每个产生式都附加一个语义动作或语义子程序,在语法分析过程中,每当需要使用一个产生式进行推导或归约,语法分析程序除执行相应的语法分析动作外,还要执行相应的语义动作或调用相应的语义子程序。 这种模式实际上是对前后文无关文法的一种扩充。 第三节 属性文法 产生式的语义是由组成该产生式的文法符号的语义所决定的。 我们可将这些语义以“属性”的形式附加到各个文法符号上,再根据产生式所蕴含的语义,给出每个文法符号的属性的求值规则,从而形成一种附带有语义属性的前后文无关文法,即属性文法。 1、定义 属性文法=上下文无关文法+属性+求值规则 属性是用来描述文法符号的语义特征,如 常量的“值”、变量的类型和存储位置等。 求值规则(属性计算规则) 与产生式相关联的反映文法符号属性之间关系的 “规则”。 求值规则还可进一步扩展为语义规则(语义动作)。 例:简单表达式的属性文法。 2、属性的分类 若产生式A?X1X2…Xn,与之相关的属性计算规则 b := f ( c1, c2, … ), 其中f 是函数,b和c1, c2, …, ck 是该产生式文法符号的属性, -如果属性b是产生式左部符号A的属性, c1 , c2 , …, ck 是产生式右部文法符号的属性或A的其它属性,则称其为A的综合属性; -如果属性b是产生式右部符号Xi的属性, c1 , c2 , …, ck 是产生式右部文法符号的属性或A的属性则称其为Xi的继承属性; - 终结符仅有综合属性,如digit.lex_val。通常由词法程序提供。而开始符号没有继承属性。 几点说明: 继承属性用于“自上而下”传递信息。 继承属性由相应语法树中结点的父结点和/或兄弟结点属性计算得到,它反映了对上下文依赖的特性。 继承属性可以很方便地用来表示程序设计语言上下文的结构关系。 几点说明(续): 综合属性用于“自下而上”传递信息。 综合属性由相应语法树中结点的分枝结点属性计算得到,即沿语法树向上传递,从分枝(子)结点到根结点。 注释分析树 在语法树中,将每个结点均视为由若干个域组成的结构,则可将其中的一些域用来存放相应文法符号诸属性之值,并可用属性来为这些域命名。通常我们将每个结点都标注相应属性值的语法树称为注释分析树(Decorated Syntax Tree)。 属性求值的过程:在注释分析树中,一个文法符号X在相应结点的综合属性之值,由其子结点的属性和(或)X的其它属性,通过相关属性规则经计算而得,故综合属性的求值在语法树中是按自下而上的方式进行的;X的继承属性之值则由X的父结点和(或)其它兄弟结点来定义,故继承属性的求值将按自上而下的方式进行。 例:8+5*2 的注释分析树。(综合属性) 分析树各结点属性的计算可以自下而上地完成 分析树各结点属性的计算可以自下而上地完成 分析树各结点属性的计算可以自下而上地完成 分析树各结点属性的计算可以自下而上地完成 分析树各结点属性的计算可以自下而上地完成 分析树各结点属性的计算可以自下而上地完成 分析树各结点属性的计算可以自下而上地完成 分析树各结点属性的计算可以自下而上地完成 分析树各结点属性的计算可以自下而上地完成 分析树各结点属性的计算可以自下而上地完成 分析树各结点属性的计算可以自下而上地完成 注释分析树:结点的属性值都标注出来的分析树 例:语句int id,id,id的语义分析。(继承属性) 1、int id1, id2, id3的注释分析树 2、int id1, id2, id3的分析树的属性依赖图 3、属性计算次序 对结点进行拓扑排序,按拓扑排序的次序计算属性。 拓扑排序:结点的一种排序,使得边只会从该次序中先出现的结点到后出现的结点。 在上例中,按
您可能关注的文档
- 空间几何体的结构(第二课时).ppt
- 空间坐标.ppt
- 空间几何体结构及三视图、直观图.ppt
- 空间点阵.ppt
- 空间向量的坐标表示高级.ppt
- 空间问题.ppt
- 立体几何中的向量方法空间角的计算.ppt
- 立方根().ppt
- 立方根-.ppt
- 符号功能.ppt
- 2025中国冶金地质总局所属在京单位高校毕业生招聘23人笔试参考题库附带答案详解.doc
- 2025年01月中国人民大学文学院公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2024黑龙江省农业投资集团有限公司权属企业市场化选聘10人笔试参考题库附带答案详解.pdf
- 2025汇明光电秋招提前批开启笔试参考题库附带答案详解.pdf
- 2024中国能建葛洲坝集团审计部公开招聘1人笔试参考题库附带答案详解.pdf
- 2024吉林省水工局集团竞聘上岗7人笔试参考题库附带答案详解.pdf
- 2024首发(河北)物流有限公司公开招聘工作人员笔试参考题库附带答案详解.pdf
- 2023国家电投海南公司所属单位社会招聘笔试参考题库附带答案详解.pdf
- 2024湖南怀化会同县供水有限责任公司招聘9人笔试参考题库附带答案详解.pdf
- 2025上海烟草机械有限责任公司招聘22人笔试参考题库附带答案详解.pdf
最近下载
- 2024新沂市中小学教师招聘考试题库及答案.docx VIP
- 新人教版三年级数学上册教学课件《因数中间有0的乘法》.pptx VIP
- 田家四季歌教案.doc VIP
- 《GB 27955-2020过氧化氢气体等离子体低温灭菌器卫生要求》(2025版)深度解析.pptx
- 高级碳排放监测员理论考试复习题库资料(含答案).pdf VIP
- 外科学(总论) 清创术 清创术.pptx VIP
- 《文献检索》课程教学大纲.pdf VIP
- 前置胎盘临床诊断与处理指南课件.ppt VIP
- 事业单位考试公共基础知识考试试题精选3000题.pdf VIP
- 人教版四年级上册数学《平行四边形》(说课课件).pptx VIP
文档评论(0)