- 1、本文档共77页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章 语法制导翻译和中间代码生成 8.0 语义处理概述 8.0 语义处理概述 语义处理的任务: 动态语义处理 生成中间/目标代码,对表达式的求值等。 静态语义检查 类型检查:验证程序中执行的每个操作是否遵守语言的类型系统。 控制流检查:控制流语句必须使控制转移到合法的地方。例如C中break语句使控制跳离包括该语句的最小while、for或switch语句。如果不存在包括它的此类语句就报错。 8.0 语义处理概述 一致性检查。在很多场合要求对象只能被定义一次。例如Pascal语言规定同一标识符在一个分程序中只能被说明一次,同一case语句的标号不能相同等。 名字的作用域分析 8.0 语义处理概述 语义处理的实现: 属性文法:包含了一系列语义规则的上下文无关文法。 语法制导翻译:在语法分析的同时,执行语义规则描述的动作: 检查静态语义 执行动态语义定义的动作 8.1 属性文法 属性文法是实际应用中比较流行的语义描述方法。 1 属性文法概念 2 基于属性文法的处理方法 3 S-属性文法的自下而上计算 L-属性文法及其翻译实现 8.1 属性文法 G: 是一个上下文无关文法。 V: 有穷的属性集,与每个文法符号相联,代表该文法符号的类型、值、代码序列、符号表内容等相关信息。属性与变量一样,可以进行计算和传递。属性加工的过程就是语义处理的过程。 F: 关于属性的断言或一组属性的计算规则 (语义规则) 。 断言或语义规则与一个产生式相联,引用该产生式左端或右端的终结符或非终结符相联的属性。 8.1 属性文法 属性分为综合属性和继承属性。综合属性用于“自下而上”传递信息,而继承属性用于“自上而下”传递信息。 属性文法中,对应于每个产生式A??都有一套与之相关联的语义规则,每条规则的形式为b:=f(c1,c2…ck),其中f是一个函数,b和c1,c2…ck是该产生式文法符号的属性。则综合(继承)属性的概念可定义为: (1)如果b是A的一个属性,c1,c2…ck是产生式右部文法符号的属性或A的其它属性,则称b是A的综合属性 (2)如果b是产生式右部某个文法符号X的一个属性,并且c1,c2…ck是A或产生式右边任何文法符号的属性,则称b是X 的继承属性 以上两种情况都称属性b依赖于属性c1,c2…ck 小结: 1) 非终结符既可有综合属性也可有继承属性,但文法开始符号没有继承属性。 2) 终结符只有综合属性,它们由词法程序提供。 3) 语义规则所描述的工作包括:属性计算、静态语义检查、符号表操作、代码(中间)生成等。 例.1: 简单算术表达式求值的语义描述(综合属性的例子) 非终结符E,T及F都有一个综合属性val,终结符号digit有一个综合属性。与产生式L→E对应的语义规则仅是打印由E产生的算术表达式的值,可认为这条规则定义了L的一个虚属性。 设表达式为 3*5+4 ,则语义动作打印数值19 继承属性 一个结点的继承属性值是由此结点的父结点和/或兄弟结点的某些属性来决定的。 例2: 说明语句的属性文法 (继承属性L.in) 基于属性文法的处理过程(语法制导翻译)是:对单词符号串进行语法分析,构造语法分析树,然后根据需要构造属性依赖图,遍历语法树并在语法树的各结点处按语义规则进行计算 输入符号串 ? 分析树 ? 属性依赖图 ? 语义规则的计算顺序 依赖图 依赖图是一个有向图,用于描述分析树中的属性和属性间的相互依赖关系。 依赖图的构造算法: for 分析树中每一个结点n do for 结点的文法符号的每一个属性a do 为a在依赖图中建立一个结点; for 分析树中每一个结点n do for 结点n所用产生式对应的每一个语义规则 b:=f(c1,c2,…ck) do for i :=1 to k do 从ci结点到b结点构造一条有向边 依赖图 例2:根据以下说明语句属性文法,构造句子Real id1,id2,id3的依赖图。 例2 Real id1,id2,id3分析树的依赖图 属性的计算顺序 一个依赖图的任何拓扑排序都给出一个分析树中结点的语义规则计算的有效顺序。 树遍历的属性计算方法设语法树已经建立起了,即可以某种次序(如深度优先)遍历语法树,
您可能关注的文档
- 第八章营养2生活小常识58.ppt
- 第八章营运资本管理58.ppt
- 第八章蒸发浓缩设备58.ppt
- 第八章薪酬设计与福利58.ppt
- 第八章血流动力学监测58.ppt
- 第八章行政事业及资源性国有资产管理58.ppt
- 第八章行政监察权力58.ppt
- 第八章衍射线的指标化及点阵型式和晶胞参数的测定58.ppt
- 第八章补充:国际金融中心58.ppt
- 第八章西斯蒙第的经济理论58.ppt
- 阑尾炎健康科普课件.pptx
- 沪科版(2024)数学七年级下册课时拔尖《垂直》习题课件.pptx
- 阑尾周围脓肿护理课件.pptx
- 2025年工业互联网平台开发者生态建设中的挑战与机遇分析.docx
- 沪科版(2024)数学七年级下册第10章《同位角、内错角、同旁内角》课件.pptx
- 2025年工业互联网平台开发者生态建设中的数字化转型与升级路径.docx
- 2025年工业互联网平台开发者生态建设中的数据安全与隐私保护.docx
- 河南商丘市虞城县求实学校2024-2025学年八年级上学期期末考试物理试题.docx
- 沪科版(2024)数学七年级下册第10章《平行线》课件.pptx
- 沪科版(2024)数学七年级下册第10章《垂线段、点到直线的距离》课件.pptx
文档评论(0)