语法制导翻译和中间代码主要内容回顾.ppt

语法制导翻译和中间代码主要内容回顾.ppt

ID:51659243

大小:467.00 KB

页数:47页

时间:2020-03-27

语法制导翻译和中间代码主要内容回顾.ppt_第1页
语法制导翻译和中间代码主要内容回顾.ppt_第2页
语法制导翻译和中间代码主要内容回顾.ppt_第3页
语法制导翻译和中间代码主要内容回顾.ppt_第4页
语法制导翻译和中间代码主要内容回顾.ppt_第5页
资源描述:

《语法制导翻译和中间代码主要内容回顾.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章主要内容回顾自顶向下语法分析思想自顶向下语法分析方法:LL(1)分析方法递归下降分析方法自底向上语法分析思想自底向上语法分析方法:算符优先分析方法LR分析方法8/5/20211第五章:语法制导翻译和中间代码第五章语法制导翻译和 中间代码生成语法分析概述属性文法中间代码赋值语句的翻译布尔表达式的翻译控制流语句的翻译本章主要内容:8/5/20212第五章:语法制导翻译和中间代码5.1语义分析概述语义分析的任务:语义分析的输入是语法分析的输出(分析树),输出是中间代码,但同时它还完成了很多语义处理工作。语义检查:如,类型、运算、维数、越界等。语义处理:如,变量的存储分配、表达式的求值、

2、语句的翻译(中间代码的生成)等。总目标:生成等价的中间代码。语义分析的主流技术:语法制导翻译技术。语法分析的处理方法:对应每一个产生式编制一个语义子程序,当一个产生式获得匹配时,调用相应的语义子程序实现语义检查与翻译。(语法制导翻译)在产生式的右部的适当位置,插入相应的语义动作,按照分析的进程,执行遇到的语义动作。(翻译方案)8/5/20213第五章:语法制导翻译和中间代码5.2属性文法属性:对文法的每一个符号,引进一些属性,这些属性代表与文法符号相关的信息,例如它的类型、值、代码序列、符号表内容等。与这些属性相关的信息,即属性值,可以在语法分析过程中计算和传递。属性加工的过程即语义的

3、处理过程。属性分为综合属性和继承属性。N.t综合属性:从语法分析树的角度来看,如果一个结点的某一属性,其值由子结点的属性值来计算,则称该属性为综合属性。其形式定义为:设A→X1X2……Xn为一个产生式,则A的综合属性A.s可描述为:A.s=f(c1,c2,……,ck),这里c1,c2,……,ck是X1,X2,……,Xn的属性。适合自底向上分析(即归约分析)。8/5/20214第五章:语法制导翻译和中间代码5.2属性文法继承属性:在语法树分析中,若一个结点的某个属性值由该结点的兄弟和或父结点的属性的值来计算,则此结点的属性称为继承属性。其形式定义可描述为:设A→X1X2……Xn为一个产生

4、式,则Xi继承属性B.in可定义为:B.in=f(c1,c2,……,ck),这里,c1,c2,……,ck是A,X1,X2,……,Xi-1的属性。适合自顶向下的分析。注意:①终结符号只有综合属性,他们由词法分析器提供。②非终结符号既有综合属性也可有继承属性,文法的开始符号没有继承属性,除非另外加以说明。8/5/20215第五章:语法制导翻译和中间代码5.2属性文法属性文法:属性文法的特点:①是一种接近形式化的语义描述方法;②长于描述静态语义、短于描述动态语义;③每个语法符号有相应的属性符号;④每个产生式有相应的计算属性的规则(即语义规则)属性文法举例:例5-1产生式属性(计算)规则/语义

5、规则E→E1+E2E.val:=E1.val+E2.valE→E1*E2E.val:=E1.val*E2.valE→(E1)E.val:=E1.valE→idE.val:=id.val8/5/20216第五章:语法制导翻译和中间代码5.2属性文法属性文法的定义:一个属性文法包含着一个上下文无关文法和一系列语义规则,这些语义规则附在文法的每一个产生式上,在语法分析过程中,完成附加在所使用的产生式上的语义规则描述的动作,从而实现语义处理。属性文法的形式定义为:三元组A=(G,V,F),其中,G是上下文无关文法,V是属性的有穷集,F是关于属性的计算规则。属性文法的用法:◆根据文法符号的语义,

6、为文法符号设置属性(终结符使用单词的属性)◆为每个产生式设置语义规则描述各属性的关系——计算规则◆两种形式:语法制导定义和翻译模式。8/5/20217第五章:语法制导翻译和中间代码5.2属性文法语法制导定义:语法制导定义的概念:构造属性文法时,不指明翻译时语义规则的计算顺序,这样的属性文法称为语法制导定义。其形式如P210。S-属性定义:唯独只使用综合属性的语法制导定义称为S-属性定义。S-属性定义中属性的计算:在S-属性定义的分析树中,通常可以使用自底向上的方法在每一个归约处使用语义规则来计算结点的综合属性值,即从叶结点到根结点进行计算。举例:例5-2,简单算术表达式求值的属性文法以

7、及简单算术表达式3*5+4的语义分析过程如下。8/5/20218第五章:语法制导翻译和中间代码5.2属性文法digit.lexval=3F.val=3T.val=3*dgit.lexval=5F.val=5T.val=15E.val=15+digit.lexval=4F.val=4T.val=4E.val=19LPrint(19)例5-2简单算术表达式求值的语法制导定义(属性文法):L→Eprint(E.val)(虚属性)E→E1+TE.val

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。