- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理 第六章 属性文法和语法制导翻译 本章主要内容 语法制导翻译与属性文法 综合属性与 S 属性文法 S 属性文法的自底向上计算 继承属性与 L 属性文法 L 属性文法的自顶向下计算 L 属性文法的自底向上计算 语法制导的翻译 词法分析,语法分析:单词和语言成分的识别及词法和语法结构的检查。 编译器的接下去的任务是将高级语言翻译成目标代码 语法制导的翻译 这个翻译的过程是在语法分析过程中同步完成的,所以我们称为语法制导翻译 在自顶向下或是自底向上过程中同步完成翻译,分析一条语句,翻译一条语句 本章介绍比较流行的: 基于属性文法的语法制导翻译方法 6.1 属性文法 是上下文无关文法的拓展。在上下文无关文法的基础上,为每个文法符号(终结符或非终结符)配备若干相关的“值”(称为属性)。 属性代表与文法符号相关信息,如类型、值、代码序列、符号表内容等 属性可以进行计算和传递 语义规则:对于文法的每个产生式都配备了一组属性的计算规则 属性文法:上下文无关文法的扩展 一个简单的计算器属性文法 属性 每个文法符号有一组属性,例如 E.val 属性可以表示 数值(比如 “27”, “3.14” 的值) 字符串(比如 “Hello”) 内存位置,例如一个局部变量或函数参数在内存中的地址 某个变量的作用域,例如:全局还是局部 程序的中间代码表示:如 (+, t2, t3, t5) 属性的类型 综合属性:“自下而上”传递信息 继承属性:“自上而下”传递信息 在一个属性文法中,对应于每个产生式A→?都有一套与之相关联的语义规则,每条规则的形式为: b:=f(c1,c2,…,ck) 这里,f是一个函数,而且或者 1. b是A的一个综合属性并且c1,c2,…,ck是产生式右边文法符号的属性,或者 2. b是产生式右边某个文法符号的一个继承属性并且c1,c2,…,ck 是A或产生式右边任何文法符号的属性。 这两种情况下称属性b依赖于属性c1,c2,…,ck。 说明 终结符只有综合属性,由词法分析器提供。 非终结符既可有综合属性也可有继承属性,文法开始符号的所有继承属性作为属性计算前的初始值。 对出现在产生式右边的继承属性和出现在产生式左边的综合属性都必须提供一个计算规则。 属性计算规则中只能使用相应产生式中的文法符号的属性 出现在产生式左边的继承属性和出现在产生式右边的综合属性不由所给的产生式的属性计算规则进行计算, 它们由其它产生式的属性规则计算或者由属性计算器的参数提供 语义规则 每个文法产生式 A ? ? 有一组形式为 b := f(c1, c2, …, ck ) 的语义规则 其中f 是函数,b和c1, c2, …, ck 是该产生式文法符号的属性 例如: E.val := E1 .val + T.val 语义规则 语义规则是根据产生式所蕴涵的语义操作建立起来的,并与语义分析的目标有关 不同的产生式对应不同的语义规则 不同的分析目标也对应不同的语义规则 语义规则所描述的工作可以包括属性计算、静态语义检查、符号表操作、代码生成等等。 例,考虑非终结符A,B和C,其中,A有一个继承属性a和一个综合属性b,B有综合属性c,C有继承属性d。产生式A→BC可能有规则 C.d:=B.c+1 A.b:=A.a+B.c 而属性A.a和B.c在其它地方计算 产 生 式 L→En E→E1+T E→T T→T1*F T→F F→ (E) F→digit 语法制导的翻译 将语义规则与语法规则相结合,在语法分析的过程中通过执行语义动作,计算语义属性值,从而完成预定的翻译工作。 属性文法也称为语法制导定义 综合属性 分析树中,如果一个结点的属性值是由其子结点的属性值计算出来,则把这种属性称为综合属性。 使用自底向上的方法在每一个结点处使用语义规则计算综合属性的值 仅仅使用综合属性的属性文法称S-属性文法。 3*5+4 的计算过程 属性的计算过程 在刚才的计算过程中,我们对分析树的所有节点做了一次遍历 而且是深度优先遍历 在遍历过程中同步完成属性值的计算 注释分析树:结点的属性值都标注出来的分析树 继承属性 分析树中,一个结点的属性值是由此结点的父结点和/或兄弟结点的某些属性来决定的,则把这种属性称为 继承属性 用继承属性来表示程序设计语言结构中的上下文依赖关系很方便 句子real id1,id2,id3的带注释的语法树 产 生 式 语 义 规 则 D→TL L.in := T.type T→int T.type := integer T→real T.type := real L→L1, id
您可能关注的文档
- Computer Simulation from Electron Beam Lithography to Optica
- Laser Beam Weld Bonding of AA5754 for Automobile Structures.
- PLANNED X-RAY IMAGING OF THE ELECTRON BEAM AT THE SPRING-8 D
- STUDY OF CONTROL GRID THERMIONIC CATHODE RF GUN.pdf
- Linux课件:GDB调试简明指南.pdf
- 《计算机网络》课后题答案.doc
- 2010系统结构课件 第1章 导论.ppt
- 2010系统结构课件 第2章 流水线.ppt
- 2010系统结构课件 第3章 存储系统.ppt
- 2010系统结构课件 第4章互连网络.ppt
最近下载
- 滑坡治理工程施工组织设计.doc VIP
- 2024北京海淀初二一模地理(教师版).docx VIP
- 马克思主义哲学原理陈先达考研题.docx VIP
- 2024北京海淀初二(上)期末历史(教师版).docx VIP
- 力控企业级实时历史数据库pSpace_产品白皮书.pdf VIP
- 陈先达马克思主义哲学原理知识考点.doc VIP
- 模板[DF005] 日历表2026年日历 中文版 纵向排版 周一开始 带周数 带农历.xlsx VIP
- 2025至2030中国夏威夷果行业市场分析及竞争形势与发展前景预测报告.docx
- 2024北京海淀初二(上)期末地理(教师版).docx VIP
- CB∕T 4459-2016 -船用七氟丙烷灭火装置.pdf VIP
文档评论(0)