new《编译原理》第五章

new《编译原理》第五章

ID:39973704

大小:4.53 MB

页数:193页

时间:2019-07-16

new《编译原理》第五章_第1页
new《编译原理》第五章_第2页
new《编译原理》第五章_第3页
new《编译原理》第五章_第4页
new《编译原理》第五章_第5页
资源描述:

《new《编译原理》第五章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、编译原理CompilerPrinciples蒋凌云jianglingyun@njupt.edu.cn南京邮电大学.计算机学院第五章语法制导翻译及中间代码生成compilingrunningprogramming教材:《编译技术原理及其实现方法》王汝传编著第五章语法制导翻译及中间代码生成本章内容§5.1语法制导翻译概述一、语法制导翻译定义二、语法制导翻译原理三、语法制导翻译实现§5.2中间语言一、引言二、逆波兰表示三、三元式四、树形表示五、四元式第五章语法制导翻译及中间代码生成本章内容§5.3自底向上语法

2、制导翻译一、简单算术表达式和赋值语句的翻译二、布尔表达式的翻译三、控制语句翻译*************************************四、数组元素的翻译五、过程语句的翻译六、说明语句的翻译§5.4自顶向下语法制导翻译一、递归下降的语法制导翻译二、LL(1)语法制导翻译§5.5属性文法与属性翻译一、属性文法与L属性文法二、属性翻译第五章语法制导翻译及中间代码生成本节内容§5.1语法制导翻译概述一、语法制导翻译定义二、语法制导翻译原理三、语法制导翻译实现§5.2中间语言一、引言二、逆波兰表

3、示三、三元式四、树形表示五、四元式§5.1语法制导翻译概述本节内容一、语法制导翻译定义二、语法制导翻译原理三、语法制导翻译实现第五章语法制导翻译及中间代码生成§5.1语法制导翻译概述在前面我们已经讨论了词法分析和语法分析,一个程序成功地通过词法分析和语法分析,只能说明它是一个合法程序,但是对程序内部的逻辑含义并未加以考虑,从整个编译程序来看,词法分析和语法分析仅仅是编译程序的一部分,编译程序最终的目的是将源程序翻译成可供计算机直接执行的目标程序。在某些编译程序中,是直接生成机器语言或汇编语言形式的目标代

4、码;有些编译程序是把源程序翻译为某种形式中间语言代码,然后再把中间语言代码翻译为目标代码。下面就来介绍一种语法制导翻译方法,这种方法先将源程序单词序列翻译成中间语言,然后再将中间语言翻译成目标程序。那么,什么叫语法制导翻译呢?第五章语法制导翻译及中间代码§5.1语法制导翻译概述一、语法制导翻译定义二、语法制导翻译原理三、语法制导翻译实现第五章语法制导翻译及中间代码§5.1语法制导翻译概述一、语法制导翻译定义二、语法制导翻译原理三、语法制导翻译实现§5.1语法制导翻译概述一、语法制导翻译定义语法制导翻译就

5、是以语法分析为主导的语义处理。在自顶向下语法分析过程中嵌入语义动作,即调用对应的语义子程序。例如在前面语法分析时分析a+b*c表达式,其分析语法树如下:E+EE*EEabc语法分析是将a归约E,再将b归约E,将c归约为E,然后再将E*E归约成E,再将E+E归约成E,所以a+b*c是一个合法的句子。如果考虑语义,在归约过程中加上语义动作,先将a归约为E,将a值赋给E后,b归约成E,同时将b值赋给E,在将c值赋给E,然后再将b*c(E*E)给E,最后再将左右两个E值相加就是最终结果,这就是语法制导翻译的基本

6、思想,在语法分析同时进行语义分析。第五章语法制导翻译及中间代码§5.1语法制导翻译概述一、语法制导翻译定义二、语法制导翻译原理三、语法制导翻译实现第五章语法制导翻译及中间代码§5.1语法制导翻译概述一、语法制导翻译定义二、语法制导翻译原理三、语法制导翻译实现§5.1语法制导翻译概述二、语法制导翻译原理语法制导翻译的原理就是先为每个文法规定相应的语义,即编写出相应语义处理子程序,整个分析是以语法分析为主导。在自顶向下语法分析时,若某一个规则右部与输入串相匹配时,或者,在自底向上语法分析时,当一个规则被用于

7、归约时,此时该规则对应的语义子程序就进入工作,完成既定翻译任务,产生与语义相应的中间代码或目标代码。语义动作:给每个文法符号X赋以各种不同的语义值这里的语义值不一定指具体数值,可以是“类型”、“种属”、“地址”或“代码”等,我们用记号X·TYPE、X·CAT或X·VAL来表示这些值。如果某规则的右部有若干个同一符号出现,那么我们就用上角标来区别这些符号。例如,假定有如下规则和语义动作:例如,假定有如下规则和语义动作:E∷=E(1)+E(2){E·VAL:=E(1)·VAL+E(2)·VAL}语义动作写

8、在规则之后的花括号里,这里语义动作是表明与规则左部文法符号E相关的语义值E·VAL,它是通过把规则右部文法符号的语义值E(1)·VAL和E(2)·VAL加在一起来决定的,规则中终结符号“+”按语义规则被解释成通常“加”的意思。各规则的语义动作可以对表达式计算,也可以生成中间代码,甚至还可以来产生目标指令。例5.1设有文法E∷=E+EE∷=digit这里digit代表0和9之间任一数字,如果我们的目的仅是为了求值,则语义动作如下(1)E

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

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

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