- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 语法制导翻译和中间代码生成 教学要求:本章介绍编译程序的第三个阶段语义分析及中间代码生成的设计原理和实现方法,要求理解语法制导翻译、语义动作的基本概念;掌握语义规则和中间代码的表示形式。 教学重点:语义规则,中间代码的表示形式,自下而上分析制导翻译概述。 1、属性文法(说明语言语义的工具)定义 属性文法是一个三元组:A=(G,V,F),其中: G:是一个上下文无关文法。 V:有穷的属性集,每个属性与文法的一个终结符或非终结符相连。如它的类型、值、代码序列、符号表内容等等。 F:关于属性的属性断言或一组属性的计算规则(称为语义规则) . 断言或语义规则与一个产生式相联,只引用该产生式左端或右端的终结符或非终结符相联的属性. 例1:定义表达式的文法如下: E?E+E E?(E) E?n 给出定义表达式值的属性文法。 为文法符号E引进属性符号val,用E.val表示E的值,属性计算规则以赋值语句的形式给出,附在每个产生式后,并用大括号括起来。为了明确E的不同出现位置,用上角标区别。终结符n的值是词法分析程序提供的,这里用n.lex表示。下面给出属性文法: E?E1+E2 {E.val := E1.val +E2.val} E?(E1) {E.val := E1.val } E?n {E.val := n.lex} 属性文法的主要思想有两点: 首先对于每个文法符号引进相关的属性符号; 其次对于每个产生式写出属性值计算的规则。 2、属性分类 综合属性:一个结点的属性值是从其子结点的属性值计算出来的。 继承属性:一个结点的属性值是由该结点兄弟结点和父结点的属性值计算出来的。 例2:说明语句语法制导定义(属性文法) L.in:=T.type T.type:=integer T.type:=real L1.in:=L.in addtype(id.entry,L.in) addtype(id.entry,L.in) {L.in:=T.type} {T.type:=integer} {T.type:=real} {L1.in:=L.in} {addtype(id.entry,L.in)} {addtype(id.entry,L.in)} 例1:设有文法如下,为此文法写出语义规则,输出配对的括号个数,如(a,(a,a))输出是2。 G:S′→S S →(L) S →a L →L,S L →S 例2:令S.Val为下列文法由S生成的二进制数的值,例如对输入101.101则S.Val=5.625 G:S →L.L|L L →LB|B B →0|1 按照语法制导翻译的方法,对每个产生式给出相应的语义规则。(P203 5) 后缀式并不局限于二元运算的表达式,可以推广到任何语句,只要遵守操作数在前,操作符紧跟其后的原则即可。典型的例子如if-then-else语句: if e then x else y 将if-then-else看作一个完整的操作符,则e、x和 y分别是三个操作数,这显然是一个三元运算。根据后缀式的特点,它的后缀式可以写为: exy if-then-else(记为: exy¥) 但是,这样的表示有个弱点。按照算法的计算次序,e、x和y均需计算,而实际上,根据条件e的取值,计算x则不计算y,计算y则不计算x。 * 语义处理功能: 1、静态语义审查:验证语法结构合理的程序是否真正有意义。 2、解释执行动态语义、生成代码:执行真正的翻译(生成中间代码或目标代码)。 8.1 属性文法 3、属性的计算 综合属性计算 自底向上按照语义规则来计算各结点的综合属性值 继承属性计算 根据依赖关系决定计算顺序 例1 台式计算器程序的语法制导定义 产生式 语义规则 {print(E?val)} {E?val:=E1?val+T?val} {E?val:=T?val} {T?val:=T1?val*F?val} {T?val:=F?val} {F?val:=E?val} {F?val:=digit?lexval} 1、与L→E相连的语义规则是一个过程,打印E的值,理解为L的属性是虚的或空的。 2、E,T,F的属性val都为综合属性。 3、lexval 是单词 digit 的属性(由词法程序提供)。 L?E E?E1+T E?T T?T1*F
您可能关注的文档
- 贝聿铭·德国柏林历史博物馆素材.ppt
- 备煤车间消防系统及防火安全管理制度素材.ppt
- 奔泰全屋水处理方案(延吉)素材.ppt
- 奔图硒鼓的维护方法素材.ppt
- 本体性教学内容与教学设计2014-5素材.ppt
- 第1章接入网概览.ppt
- 苯环红外谱图的特点及其原因素材.ppt
- 苯及同系物化学性质素材.ppt
- 第1章可编控制器基础cxj概览.ppt
- 苯乙烯运输和仓储过程_聚合风险1.1素材.ppt
- 半导体材料性能提升技术突破与应用案例分析报告.docx
- 半导体设备国产化政策支持下的关键技术突破与应用前景报告.docx
- 剧本杀市场2025年区域扩张策略研究报告.docx
- 剧本杀行业2025人才培训体系构建中的市场需求与供给分析.docx
- 剧本杀行业2025年人才培训行业人才培养模式创新与探索.docx
- 剧本杀行业2025年内容创作人才需求报告.docx
- 剧本杀行业2025年区域市场区域剧本市场消费者满意度与市场竞争力研究报告.docx
- 剧本杀市场2025年区域竞争态势下的区域合作策略分析报告.docx
- 剧本杀行业2025人才培训与行业人才培养模式创新.docx
- 剧本杀行业剧本创作人才心理素质培养报告.docx
最近下载
- 珠心算家长会(金)课件.ppt VIP
- 税法(第5版)课件 曹越 第1--5章 税法基本原理、增值税--- 企业所得税.pptx
- 手外科疾病诊断与治疗.pptx VIP
- 2021乒乓球比赛活动设计方案.docx VIP
- 医疗器械分类目录2002版.doc VIP
- JBT10216-2013电缆桥架标准将代替JBT10216-2000旧标准.docx VIP
- 非遗知识文化云肩知识介绍PPT课件.pptx VIP
- 人行地通专项施工方案.doc VIP
- 阳江核电厂疏浚(清淤)项目环境影响报告书.docx VIP
- 2025广西公需科目考试答案(3套,涵盖95_试题)一区两地一园一通道建设;人工智能时代的机遇与挑战.pdf VIP
文档评论(0)