语法制导翻译 (2)2幻灯片.ppt
《语法制导翻译 (2)2幻灯片.ppt》由会员分享,可在线阅读,更多相关《语法制导翻译 (2)2幻灯片.ppt(96页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、语法制导翻译语法制导翻译第1页,共96页,编辑于2022年,星期二第五章第五章 语法制导翻译语法制导翻译本章内容本章内容本章内容本章内容5.1 5.1 5.1 5.1 语法制导翻译概述语法制导翻译概述语法制导翻译概述语法制导翻译概述 一、语法制导翻译定义一、语法制导翻译定义一、语法制导翻译定义一、语法制导翻译定义 二、语法制导翻译原理二、语法制导翻译原理二、语法制导翻译原理二、语法制导翻译原理 三、语法制导翻译实现三、语法制导翻译实现三、语法制导翻译实现三、语法制导翻译实现 5.2 5.2 5.2 5.2 中间语言中间语言中间语言中间语言 一、简介一、简介一、简介一、简介 二、逆波兰表示二、逆
2、波兰表示二、逆波兰表示二、逆波兰表示 三、三元式三、三元式三、三元式三、三元式 四、树形表示四、树形表示四、树形表示四、树形表示 五、四元式五、四元式五、四元式五、四元式5.3 5.3 5.3 5.3 自底向上语法制导翻译自底向上语法制导翻译自底向上语法制导翻译自底向上语法制导翻译 一、简单算术表达式和赋值语句的翻译一、简单算术表达式和赋值语句的翻译一、简单算术表达式和赋值语句的翻译一、简单算术表达式和赋值语句的翻译 二、布尔表达式的翻译二、布尔表达式的翻译二、布尔表达式的翻译二、布尔表达式的翻译 三、控制语句翻译三、控制语句翻译三、控制语句翻译三、控制语句翻译第2页,共96页,编辑于2022
3、年,星期二5.1 5.1 语法制导翻译概述语法制导翻译概述 一、一、一、一、语语法制法制法制法制导导翻翻翻翻译译定定定定义义1 1、问题问题的引入的引入的引入的引入一个程序成功地通一个程序成功地通一个程序成功地通一个程序成功地通过词过词法分析和法分析和法分析和法分析和语语法分析,只能法分析,只能法分析,只能法分析,只能说说明它是一个合适程明它是一个合适程明它是一个合适程明它是一个合适程序,但是序,但是序,但是序,但是对对程序内部的程序内部的程序内部的程序内部的逻辑逻辑含含含含义义并未加以考并未加以考并未加以考并未加以考虑虑,从整个,从整个,从整个,从整个编译编译程序程序程序程序来看来看来看来看
4、,词词法分析和法分析和法分析和法分析和语语法分析法分析法分析法分析仅仅仅仅是是是是编译编译程序一部分程序一部分程序一部分程序一部分,编译编译程序最程序最程序最程序最终终的目的目的目的目的是将源程序翻的是将源程序翻的是将源程序翻的是将源程序翻译译成可供成可供成可供成可供计计算机直接算机直接算机直接算机直接执执行的目行的目行的目行的目标标程序。程序。程序。程序。某些某些某些某些编译编译程序是直接生成机器程序是直接生成机器程序是直接生成机器程序是直接生成机器语语言或言或言或言或汇编语汇编语言形式的目言形式的目言形式的目言形式的目标标代代代代码码,而有些,而有些,而有些,而有些则则并非如此。并非如此。
5、并非如此。并非如此。语语法制法制法制法制导导翻翻翻翻译译方法先将源程序方法先将源程序方法先将源程序方法先将源程序单词单词序列翻序列翻序列翻序列翻译译成中成中成中成中间语间语言,然后言,然后言,然后言,然后再将中再将中再将中再将中间语间语言翻言翻言翻言翻译译成目成目成目成目标标程序。程序。程序。程序。第3页,共96页,编辑于2022年,星期二5.1 5.1 语法制导翻译概述语法制导翻译概述 一、一、一、一、语语法制法制法制法制导导翻翻翻翻译译定定定定义义2、定、定、定、定义义语语法制法制法制法制导导翻翻翻翻译译就是以就是以就是以就是以语语法法法法分析分析分析分析为为主主主主导导的的的的语义处语义
6、处理。理。理。理。在在在在语语法分析法分析法分析法分析过过程中嵌入程中嵌入程中嵌入程中嵌入语语义动义动作,即作,即作,即作,即调调用用用用对应对应的的的的语语义义子程序。子程序。子程序。子程序。E E+E EE E*E EE Ea ab bc c例如在前面例如在前面例如在前面例如在前面语语法分析法分析法分析法分析时时分析分析分析分析a+b*ca+b*c表达式。表达式。表达式。表达式。语语法分析是将法分析是将法分析是将法分析是将a a归约归约E E,再将,再将,再将,再将b b归约归约E E,将,将,将,将c c归约为归约为E E,然后再将,然后再将,然后再将,然后再将 E*EE*E归约归约成成
7、成成E E,再将,再将,再将,再将 E+EE+E归约归约成成成成E E,所以,所以,所以,所以a+b*ca+b*c是一个合法的句子。如果考是一个合法的句子。如果考是一个合法的句子。如果考是一个合法的句子。如果考虑语义虑语义,在,在,在,在归约过归约过程中加上程中加上程中加上程中加上语义动语义动作,先作,先作,先作,先将将将将a a归约为归约为E E,将,将,将,将a a值赋给值赋给E E后,后,后,后,b b归约归约成成成成E E,同,同,同,同时时将将将将b b值赋给值赋给E E,在将,在将,在将,在将c c值赋给值赋给E E,然后再将,然后再将,然后再将,然后再将b*cb*c(E*EE*E
8、)给给右右右右E E,再将,再将,再将,再将aa给给E E,最后再将两个,最后再将两个,最后再将两个,最后再将两个E E值值相加就是最相加就是最相加就是最相加就是最终结终结果。果。果。果。这这就是就是就是就是语语法制法制法制法制导导翻翻翻翻译译的的的的基本思想,基本思想,基本思想,基本思想,在在在在语语法分析同法分析同法分析同法分析同时进时进行行行行语义语义分析。分析。分析。分析。第4页,共96页,编辑于2022年,星期二5.1 5.1 语法制导翻译概述语法制导翻译概述二、二、语法制法制导翻翻译原理原理1 1、语语法制法制法制法制导导翻翻翻翻译译的原理的原理的原理的原理语语法法法法制制制制导导
9、翻翻翻翻译译的的的的原原原原理理理理就就就就是是是是先先先先为为每每每每个个个个文文文文法法法法规规确确确确定定定定相相相相应应的的的的语语义义,即即即即编编写出相写出相写出相写出相应语义处应语义处理子程序,整个分析是以理子程序,整个分析是以理子程序,整个分析是以理子程序,整个分析是以语语法分析法分析法分析法分析为为主主主主导导。在在在在自自自自顶顶向向向向下下下下语语法法法法分分分分析析析析时时,若若若若某某某某一一一一个个个个规规则则右右右右部部部部与与与与输输入入入入串串串串相相相相匹匹匹匹配配配配时时,或或或或者者者者,在在在在自自自自底底底底向向向向上上上上语语法法法法分分分分析析析
10、析时时,当当当当一一一一个个个个规规则则被被被被用用用用于于于于进进行行行行归归约约时时,此此此此时时该该规规则则对对应应的的的的语语义义子子子子程程程程序序序序就就就就进进入入入入工工工工作作作作,完完完完成成成成既既既既定定定定翻翻翻翻译译任任任任务务,产产生生生生与与与与语语义义相相相相应应的的的的中中中中间间代代代代码码或目或目或目或目标标代代代代码码。第5页,共96页,编辑于2022年,星期二5.1 5.1 语法制导翻译概述语法制导翻译概述二、二、二、二、语语法制法制法制法制导导翻翻翻翻译译原理原理原理原理2 2、语义动语义动语义动语义动作作作作语义动语义动作:作:作:作:给给每个文
11、法符号每个文法符号每个文法符号每个文法符号X X赋赋以各种不同的以各种不同的以各种不同的以各种不同的语义值语义值 这这里里里里的的的的语语义义值值不不不不一一一一定定定定指指指指具具具具体体体体数数数数值值,可可可可以以以以是是是是“类类型型型型”、“种种种种属属属属”、“地地地地址址址址”或或或或“代代代代码码”等等等等,我我我我们们用用用用记记号号号号XTYPEXTYPE、XCATXCAT或或或或XVALXVAL来来来来表表表表示示示示这这些些些些值值。如如如如果果果果某某某某规规则则的的的的右右右右部部部部有有有有同同同同一一一一符符符符号号号号若若若若干干干干个个个个出出出出现现,那么
12、我,那么我,那么我,那么我们们就用上角就用上角就用上角就用上角标标来区来区来区来区别这别这些符号些符号些符号些符号第6页,共96页,编辑于2022年,星期二5.1 5.1 语法制导翻译概述语法制导翻译概述二、二、二、二、语语法制法制法制法制导导翻翻翻翻译译原理原理原理原理2 2、语义动语义动语义动语义动作作作作举举例:例:例:例:假定有如下假定有如下假定有如下假定有如下规则规则和和和和语义动语义动作作作作 :E=EE=EE=EE=E(1)(1)(1)(1)+E+E+E+E(2)(2)(2)(2)E E E E VAL:=EVAL:=EVAL:=EVAL:=E(1)(1)(1)(1)VAL+EV
13、AL+EVAL+EVAL+E(2)(2)(2)(2)VALVALVALVAL语语义义动动作作作作写写写写在在在在规规则则之之之之后后后后的的的的花花花花括括括括号号号号里里里里,这这里里里里语语义义动动作作作作是是是是表表表表明明明明与与与与规规则则左左左左部部部部文文文文法法法法符符符符号号号号E E E E相相相相关关关关的的的的语语义义值值E E E E VALVALVALVAL,它它它它是是是是通通通通过过把把把把规规则则右右右右部部部部文文文文法法法法符符符符号号号号的的的的语语义义值值E E E E(1)(1)(1)(1)VALVALVALVAL和和和和E E E E(2)(2)(
14、2)(2)VALVALVALVAL加加加加在在在在一一一一起起起起来来来来决决决决定定定定的的的的,规规则则中中中中终终结结符符符符号号号号“+”按按按按语语义义规规则则被被被被解解解解释释成成成成通通通通常常常常“加加加加”的的的的意意意意思思思思。各各各各规规则则的的的的语语义义动动作作作作可可可可以以以以对对表表表表达达达达式式式式计计算算算算,也可以生成中也可以生成中也可以生成中也可以生成中间间代代代代码码,甚至,甚至,甚至,甚至还还可以来可以来可以来可以来产产生目生目生目生目标标指令。指令。指令。指令。第7页,共96页,编辑于2022年,星期二5.1 5.1 语法制导翻译概述语法制导
15、翻译概述二、二、二、二、语语法制法制法制法制导导翻翻翻翻译译原理原理原理原理2 2、语义动语义动作作举举例:例:例:例:设设有文法有文法有文法有文法 E=E+EE=E+EE=E+EE=E+E E=digit E=digit E=digit E=digitdigitdigitdigitdigit代表代表代表代表0 0 0 0和和和和9 9 9 9之之之之间间任一数字,如果任一数字,如果任一数字,如果任一数字,如果仅仅是是是是为为了求了求了求了求值值,则语义动则语义动作:作:作:作:(1)E=E(1)E=E(1)E=E(1)E=E(1)(1)(1)(1)+E+E+E+E(2)(2)(2)(2)E
16、E E E VAL:=EVAL:=EVAL:=EVAL:=E(1)(1)(1)(1)VAL+EVAL+EVAL+EVAL+E(2)(2)(2)(2)VALVALVALVAL(2)E=digit E(2)E=digit E(2)E=digit E(2)E=digit E VAL:=digitVAL:=digitVAL:=digitVAL:=digit假定假定假定假定语义动语义动作中的作中的作中的作中的“+”代表是整型加算代表是整型加算代表是整型加算代表是整型加算术术运算。运算。运算。运算。规则规则(1)(1)(1)(1)的的的的语义动语义动作作作作为为:E E E E的的的的语义值语义值E E
17、E E VALVALVALVAL等于等于等于等于E E E E(1)(1)(1)(1)和和和和E E E E(2)(2)(2)(2)的的的的语义值语义值E E E E(1)(1)(1)(1)VALVALVALVAL和和和和E E E E(2)(2)(2)(2)VALVALVALVAL之之之之“和和和和.规则规则(2)(2)(2)(2)的的的的语义动语义动作作作作为为:E:E:E:E的的的的语义值为语义值为0 0 0 09 9 9 9之之之之间间任一个数任一个数任一个数任一个数.这样这样,按照它,按照它,按照它,按照它们们的的的的语义动语义动作,我作,我作,我作,我们们在分析每个句子的同在分析每
18、个句子的同在分析每个句子的同在分析每个句子的同时时一步一步地算出每个句子的一步一步地算出每个句子的一步一步地算出每个句子的一步一步地算出每个句子的值值 .第8页,共96页,编辑于2022年,星期二5.1 5.1 语法制导翻译概述语法制导翻译概述二、二、二、二、语语法制法制法制法制导导翻翻翻翻译译原理原理原理原理2、语义动语义动语义动语义动作作作作举举例:例:例:例:设设有文法有文法有文法有文法 E=E+EE=E+EE=E+EE=E+E E=digit E=digit E=digit E=digit如如如如果果果果采采采采用用用用自自自自底底底底向向向向上上上上归归约约过过程程程程。首首首首先先
19、先先考考考考虑虑底底底底层层最最最最左左左左E E E E的的的的结结点点点点,这这个个个个结结点点点点对对应应于于于于规规则则E=1E=1E=1E=1和和和和语语义义动动作作作作E E E E VAL:=1VAL:=1VAL:=1VAL:=1。这这样样,在在在在底底底底层层最最最最左左左左的的的的E E E E处处值值1 1 1 1与与与与语义值语义值E E E E VALVALVALVAL相关。相关。相关。相关。E E+E EE E+E EE E1 12 23 3输输入串入串入串入串1+2+31+2+31+2+31+2+3,通,通,通,通过语过语法法法法树树来看如何来看如何来看如何来看如何
20、进进行行行行语语法制法制法制法制导导翻翻翻翻译译,来求出,来求出,来求出,来求出该该句子最后句子最后句子最后句子最后值值:第9页,共96页,编辑于2022年,星期二5.1 5.1 语法制导翻译概述语法制导翻译概述二、二、二、二、语语法制法制法制法制导导翻翻翻翻译译原理原理原理原理2 2、语义动语义动作作举举例:例:例:例:设设有文法有文法有文法有文法 E=E+EE=E+EE=E+EE=E+E E=digit E=digit E=digit E=digit输输入串入串入串入串1+2+31+2+31+2+31+2+3,通,通,通,通过语过语法法法法树树来看如何来看如何来看如何来看如何进进行行行行语
21、语法制法制法制法制导导翻翻翻翻译译,来求出,来求出,来求出,来求出该该句子最后句子最后句子最后句子最后值值:在在在在图图图图所所所所示示示示子子子子树树树树中中中中,子子子子树树树树根根根根处处处处E E E E VALVALVALVAL的的的的语语语语义义义义值值值值是是是是3 3 3 3,这这这这可可可可用用用用语语语语义义义义动动动动作作作作 E E E E VAL:=EVAL:=EVAL:=EVAL:=E(1)(1)(1)(1)VAL+EVAL+EVAL+EVAL+E(2)(2)(2)(2)VALVALVALVAL算算算算出出出出。使使使使用用用用这这这这个个个个语语语语义义义义动动动
22、动作作作作时时时时,以以以以底底底底部部部部最最最最左左左左的的的的 E E E E 的的的的E E E E VALVALVALVAL的的的的值值值值来来来来代代代代替替替替E E E E(1)(1)(1)(1)VAL VAL VAL VAL,而而而而以以以以右右右右边边边边 E E E E 的的的的E E E E VALVALVALVAL的值代替的值代替的值代替的值代替E E E E(2)(2)(2)(2)VAL VAL VAL VAL。E E+E EEVAL=1EVAL=1E E1 12 2EVAL=2EVAL=2类类似地,似地,似地,似地,值值2 2 2 2与与与与该结该结点的右兄弟的点
23、的右兄弟的点的右兄弟的点的右兄弟的语义值语义值E E E E VALVALVALVAL相关。如下相关。如下相关。如下相关。如下图图所示所示所示所示第10页,共96页,编辑于2022年,星期二5.1 5.1 语法制导翻译概述语法制导翻译概述二、二、二、二、语语法制法制法制法制导导翻翻翻翻译译原理原理原理原理2、语义动语义动作作举举例:例:例:例:设设有文法有文法有文法有文法 E=E+EE=E+EE=E+EE=E+E E=digit E=digit E=digit E=digit输输入串入串入串入串1+2+31+2+31+2+31+2+3,通,通,通,通过语过语法法法法树树来看如何来看如何来看如何
24、来看如何进进行行行行语语法制法制法制法制导导翻翻翻翻译译,来求出,来求出,来求出,来求出该该句子最后句子最后句子最后句子最后值值:E E+EVAL=6EVAL=6E EEVAL=3EVAL=3E EEVAL=3EVAL=3+E EEVAL=1EVAL=1E EEVAL=2EVAL=21 12 23 3以以以以这这种方法种方法种方法种方法继续继续下下下下去,我去,我去,我去,我们们就推出如就推出如就推出如就推出如图图所示整个所示整个所示整个所示整个语语法法法法树树每个每个每个每个结结点的点的点的点的语义语义值值。第11页,共96页,编辑于2022年,星期二5.1 5.1 语法制导翻译概述语法制导
25、翻译概述三、三、三、三、语语法制法制法制法制导导翻翻翻翻译实现译实现2 2、语义动语义动语义动语义动作作作作上面原则上讨论了语法制导翻译的原理,下面通过一个自底向上上面原则上讨论了语法制导翻译的原理,下面通过一个自底向上上面原则上讨论了语法制导翻译的原理,下面通过一个自底向上上面原则上讨论了语法制导翻译的原理,下面通过一个自底向上LRLRLRLR分析看如分析看如分析看如分析看如何实现语法制导翻译。例如有规则:何实现语法制导翻译。例如有规则:何实现语法制导翻译。例如有规则:何实现语法制导翻译。例如有规则:(1)X=(1)X=(1)X=(1)X=动作动作动作动作1111 (2)Y=(2)Y=(2)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语法制导翻译 22幻灯片 语法 制导 翻译 幻灯片
限制150内