《编译原理》第5章 语法制导翻译.ppt

《编译原理》第5章 语法制导翻译.ppt

ID:49818756

大小:2.44 MB

页数:98页

时间:2020-02-28

《编译原理》第5章 语法制导翻译.ppt_第1页
《编译原理》第5章 语法制导翻译.ppt_第2页
《编译原理》第5章 语法制导翻译.ppt_第3页
《编译原理》第5章 语法制导翻译.ppt_第4页
《编译原理》第5章 语法制导翻译.ppt_第5页
资源描述:

《《编译原理》第5章 语法制导翻译.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、??为什么进行词法和语法分析??用A→α进行归约表达的是什么意思看:operand+termE→E1+TE1的值+T的值的结果作为E的值——即:取来E1的值和T的值做加法运算,结果作为E的值E.val=E1.val+T.val第五章语法制导翻译翻译的任务首先是语义分析和正确性检查,若正确,则翻译成中间代码或目标代码。基本思想根据翻译的需要设置文法符号的属性,以描述语法结构的语义。例如,一个变量的属性有类型,层次,存储地址等。表达式的属性有类型,值等。属性值的计算和产生式相联系。随着语法分析的进行,执行属性值的计算,完成语义分析和翻译的任务。5.1语法制导翻译概

2、述语法制导翻译的概念描述在进行语法分析的同时,完成相应的语义处理E→E1+E2E.val:=E1.val+E2.val语法结构具有规定的语义问题:如何根据被识别出的语法成分进行语义处理?1.语义分析的任务语义检查例:类型、运算、维数、越界语义处理例:变量的存储分配例:表达式的求值例:语句的翻译(中间代码的生成)总目标:生成等价的中间代码2.代码结构计算学科:对信息(数据表示)描述和变换算法的系统研究变换:源、目标以及源与目标的对应关系语句的代码结构语句分类:说明语句——符号表的查填可执行语句——指令代码3.典型处理方法对应每一个产生式编制一个语义子程序,当一个

3、产生式获得匹配时,调用相应的语义子程序实现语义检查与翻译E→E1+TE.val:=E1.val+T.valT→T1*FT.val:=T1.val*F.valF→idF.val:=id.val适宜在完成归约的时候进行3.典型处理方法在产生式的右部的适当位置,插入相应的语义动作,按照分析的进程,执行遇到的语义动作D→T{L.in:=T.type}LT→int{T.type:=integer}T→real{T.type:=real}L→{L1.in:=L.in}L1,id{…}语义——可以看成是相应文法符号的属性适宜在进行推导时完成语义翻译的流程输入符号串分析树依赖

4、图语义规则的计算实际上,编译中语义翻译的实现并不是按图中的流程处理的;而是随语法分析的进展,识别出一个语法结构,就对它的语义进行分析和翻译。◆语法制导定义是对上下文无关文法的推广每个文法符号都有一个相关的属性集。综合属性:通过分析树中其子节点的属性值计算出来;继承属性:由该节点的兄弟节点及父节点的属性值计算出来;◆依赖图语义规则建立了属性之间的依赖关系,这些关系可以用图来表示,这样的图称为依赖图。◆属性5.1语法制导定义(Syntax-directeddefinitions)在一个语法制导定义中,A→P都有与之相关联的一套语义规则,规则形式为b:=f(c

5、1,c2,…,ck),f是一个函数,而且或者1.b是A的一个综合属性并且c1,c2,…,ck是中的符号的属性,或者2.b是中的符号的一个继承属性并且c1,c2,…,ck是A或中的任何文法符号的属性。在两种情况下,都说属性b依赖于属性c1,c2,…,ck。5.1.1语法制导定义的形式例5.1台式计算器程序的语法制导定义(图5-2)产生式语义规则LEnprint(Eval)(可看作是L的虚属性)EE1+TEval:=E1val+TvalETEval:=TvalTT1*FTval:=T1val*FvalTFTval:=FvalF

6、(E)Fval:=EvalFdigitFval:=digitlexvalS-属性定义仅仅使用综合属性的语法制导定义。结点属性值的计算正好和自底向上分析建立分析树结点同步进行。例5.2输入:3*5+4n5.1.2综合属性digitlexval:=3Fval:=3Tval:=3digitlexval:=5Fval:=5Tval:=15*Eval:=15+digitlexval:=4Fval:=4Tval:=4Eval:=19Ln◆综合属性值的计算方法对于s-属性定义,通常使用自底向上的分析方法,在建立每一个结点处使用语义规则来计算

7、综合属性值,即在用哪个产生式进行归约后,就执行那个产生式的s-属性定义计算属性的值,从叶结点到根结点进行计算。5.1.3继承属性继承属性值是由此结点的父结点和/或兄弟结点的某些属性值来决定的。例5.3变量说明的属性定义inta,b,c表5.2带有继承属性L.in的语法制导定义产生式语义规则DTLLin:=TtypeTintTtype:=integerTrealTtype:=realLL1,idL1in:=Linaddtype(identry,Lin)Lidaddtype(identry,Lin)TLLid3Lid2Did1real

8、,,1entry2entry3entr

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

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

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