- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理课件chap07(陈火旺)
第七章 语法制导翻译和中间代码生成 第七章语法制导翻译和中间代码生成 从本章开始,我们介绍有关语义分析及翻译的问题。其处理的方法主要是属性文法和语法制导翻译方法。 概述 语义处理 属性文法和语法制导翻译方法的基本思想 几种典型的中间代码形式 对一些语法成分的翻译 属性文法和语法制导翻译 虽然形式语义学(如指称语义学、公理语义学、操作语义学等)的研究已取得了许多重大的进展,但目前在实际应用中比较流行的语义描述和语义处理的方法主要还是属性文法和语法制导翻译方法 属性文法 属性文法(attribute grammar)是一个三元组: A=(G,V,F),其中 G:是一个上下文无关文法 V:有穷的属性集,每个属性与文法的一个终结符或非终结符相连,这些属性代表与文法符号相关信息,如它的类型、值、代码序列、符号表内容等等 .属性与变量一样,可以进行计算和传递。属性加工的过程即是语义处理的过程。 F:关于属性的属性断言或一组属性的计算规则(称为语义规则) . 断言或语义规则与一个产生式相联,只引用该产生式左端或右端的终结符或非终结符相联的属性. 语义规则描述的动作包括:属性计算、静态语义检查、符号表操作、代码生成等。 如果对于G中的某一个输入串而言, F中的所有断言对该输入串的语法树结点的属性都为真,则该输入串也是A语言中的句子。 编译程序的静态语义审查就是验证所编译的程序的断言是否全部为真。 属性文法 属性文法是在上下文无关文法的基础上为每个文法符号(终结符或非终结符)配备若干个相关的“值”(称为属性)。这些属性代表与文法符号相关的信息,例如它的类型、值、代码序列?、符号表内容等等。属性和变量一样,可以进行计算和传递。 属性一般分为两类:综合属性和继承属性。简单的说,综合属性用于“自下而上”传递信息,而继承属性用于“自上而下”传递信息。 属性加工的过程即是语义处理的过程,对于文法的每一个产生式都配备了一组属性的计算规则,则称为语义规则。 在一个属性文法中,对应于每个产生式A??都有一套与之相关联的语义规则,每条语义规则的形式为: 在一个属性文法中,对应于每个产生式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。 简单地说,综合属性用于“自下而上”传递信息,而继承属性用于“自上而下”传递信息。 综合属性: 在语法树中,一个结点的综合属性的值由其子结点的属性值确定。因此,通常使用自底向上的方法在每一个结点处使用语义规则计算综合属性的值。仅仅使用综合属性的属性文法称S—属性文法。 继承属性: 在语法树中,一个结点的继承属性由此结点的父结点和/或兄弟结点的某些属性确定。用继承属性来表示程序语言结构中的上下文依赖关系很方便。 一个属性文法的例子:简单算术表达式求值的语义描述。 非终结符E、T及F都有一个综合属性val,符号digit有一个综合属性,它的值由词法分析器提供。与产生式L→E对应的语义规则仅仅是打印由E产生的算术表达式的值的一个过程,我们可认为这条规则定义了L的一个虚属性。某些非终结符加下标是为了区分一个产生式中同一非终结符多次出现 设表达式为3*5+4,则语义动作是什么? 设表达式为3*5+4,则语义动作打印数值19 . 继承属性 一个结点的继承属性值是由此结点的父结点和/或兄弟结点的某些属性来决定的。 例 描述说明语句中各种变量的类型信息的语义规则(继承属性L.in) 7。2 基于属性文法的处理方法 从概念上讲,基于属性文法的处理过程通常是这样的:对单词符号串进行语法分析,构造语法分析树,然后根据需要遍历语法树,并在语法树的各结点处按语义规则进行计算。 输入串?语法树?依赖图?语义规则计算次序 这种由源程序的语法结构所驱动的处理办法就是语法制导翻译法。语义规则的计算可能产生代码、在符号表中存放信息、给出错误信息或执行任何其它动作。对输入串的翻译也就是根据语义规则进行计算得出结果。 7。2。1依赖图 如果在一棵语法树中一个结点的属性b依赖于属性c,那么这个结点处计算
您可能关注的文档
最近下载
- 深信服PT1超融合hcl题库.docx VIP
- 混凝土搅拌输送车岗位安全操作规程与混凝土搅拌运送汽车安全管理制度.docx VIP
- 物理知识点初二.doc VIP
- 物理知识点初二下册.docx VIP
- 燃烧学 第3版 第4章 着火理论.pptx VIP
- 18R409 管道穿墙、屋面防水套管48.pdf VIP
- 深圳市非承重墙体与饰面工程施工及验收标准SJG 14-2018.pdf
- PEMS相关模板(可用性确认计划或可用性总结性测试计划、可用性确认报告或可用性总结性测试报告).pdf VIP
- 全国中学生物理竞赛预赛(高二组)交变电流有效值计算考核试卷.doc VIP
- 国家开放大学《美学原理》形考作业5参考答案.doc VIP
有哪些信誉好的足球投注网站
文档评论(0)