- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第06章讲 属性文法和语法制导翻译.ppt
中原工学院 计算机学院 School of Computer Science Zhongyuan University of Technology 第6章 属性文法和语法制导翻译 任课教师:孙飞显 sunfexian@ 中原工学院 计算机学院 语义分析的任务 在词法分析和语法分析的基础上,分析写源程序的含义(语义检查),在理解含义的基础上为生成相应的目标代码作好准备或直接生成目标代码(语义处理) 语义检查:运算数类型检查、名字声明与引用的一致性检查、名字的作用域检查等 语义处理:变量的存储分配、表达式的求值、语句的翻译(中间代码的生成) 中原工学院 计算机学院 属性文法和语法制导翻译概述 虽然形式语义学的研究已经取得了许多重大进展,但目前在实际应用中比较流行的语义描述和语义的方法主要还是属性文法和语法制导翻译。 中原工学院 计算机学院 内容提要 6.1 属性文法 6.2 基于属性文法的处理方法 中原工学院 计算机学院 6.1 属性文法 内容提要: 属性的概念 属性的表示 属性的分类 属性值及其计算 属性与语义分析的关系 属性文法的定义 属性文法的用法 属性文法的设计 中原工学院 计算机学院 属性的定义 属性:在上下文无关文法的基础上,为每个文法符号(终结符或非终结符)配备若干相关的“值”。 属性代表与文法符号相关的信息,如类型、值、代码序列、符号表内容。 属性可以代表任何对象:字符串,数组,类型,内存单元或其他对象 中原工学院 计算机学院 属性的表示 X.属性值 产生式的左、右部有相同的符号时用下标或上标区别 例 E?E1+T {E.val:=E1.val+T.val} 中原工学院 计算机学院 属性的分类 属性的分类: 综合属性(synthesized attribute):一个结点的综合属性值由子结点的属性值来计算; 继承属性(inherited attribute):一个结点的继承属性值是由该结点兄弟结点和/或父结点的属性值来计算。 注意: 终结符只有综合属性,由词法分析程序提供; 非终结符既有综合属性,也有继承属性。 中原工学院 计算机学院 属性与语义分析的关系 属性加工的过程即语义的处理过程。 中原工学院 计算机学院 属性文法的定义 属性文法:是接近形式化的语义分析与语法制导翻译的描述方法,用于编写相应的语义动作和计算顺序 三元组形式定义:A=(G,V,F) G是上下文无关文法 V属性的有穷集 F关于属性的断言和谓词 说明: 语义信息作为终结符和非终结符的属性 语义分析定义为产生式的断言和谓词 中原工学院 计算机学院 补充说明1 语义规则(属性等式):为文法的每一个产生式(规则)配备的计算属性的计算规则。 为文法的每个符号引入一组属性,且让该文法附加上语义规则时,构成了属性文法。 文法规则与语义规则的对应关系: 文法规则(产生式) 语义规则 规则1 相关的语义规则1 ? ? ? ? ? 规则n 相关的语义规则n 中原工学院 计算机学院 补充说明2 语义规则计算要完成的工作 生成代码 在符号表中保存信息 发出错误信息 对输入符号串翻译的过程就是对语义规则求值的过程 输入串 语法树 依赖图 语义规则 计算顺序 中原工学院 计算机学院 属性文法的用法 针对语义,为文法符号设置属性 终结符使用单词的属性 为每个产生式设置语义规则 描述各属性的关系 语义规则的两种描述: 语法制导定义:语义的抽象说明 翻译方案:规定实现方法(计算次序) 中原工学院 计算机学院 属性文法设计步骤 步骤1:编制相应问题的文法; 步骤2:将右侧以“|”连接的产生式都拆为独立的产生式,将所有产生式按序排列好; 步骤3:分析题目的要求,引入属性; 方法:举出若干实例,并画出相应的语法树,从中总结出属性,并得出每个产生式计算属性的计算规则。 步骤4:写出属性文法。 中原工学院 计算机学院 属性文法设计举例 简单算术表达式的求值 步骤1:编制算术表达式的文法 L?E E?E1+T|T T?T1*F|F F?(E)|digit 步骤2、3:拆分产生式并引入属性表示语义信息 将值val作为表达式E、项T和因子F的属性 中原工学院 计算机学院 属性文法设计举例(续) 步骤4、用语义规则描述表达式的求值 产生式 语义规则 L?E E?E1+T E?T T?T1*F T?F F?(E) F?digit print(E.val) E.val:=E1.val+T.val E.val:=T.val T.val:=T1.val*F.val T.
您可能关注的文档
最近下载
- 2024-2025学年中职历史世界历史高教版(2023)教学设计合集.docx
- (高清版)B 21011-2007 矿用人车 安全要求.pdf VIP
- House M.D.《豪斯医生(2004)》第一季第一集完整中英文对照剧本.docx VIP
- 《四世同堂》读书分享.pptx VIP
- House M.D.《豪斯医生(2004)》第一季第二集完整中英文对照剧本.docx VIP
- 妇产科住院部医疗质量考核表.doc VIP
- 妇产科医疗质量考核表.pdf
- 2025北京市中考道德与法治主观题解题策略 课件.pptx
- 2015路虎发现神行线束 - 仪表板线束拆卸和安装.pdf VIP
- 冯乃超同志谈后期创造社、左联和鲁迅.pdf VIP
文档评论(0)