ppt编译原理7章7.ppt
《ppt编译原理7章7.ppt》由会员分享,可在线阅读,更多相关《ppt编译原理7章7.ppt(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章第七章 语法制导的翻译语法制导的翻译7.1基本概念基本概念 1.编译系统的两类翻译:编译系统的两类翻译:非语法制导的翻译非语法制导的翻译语法制导的翻译:以语法分析为主导的语义处理在源程序语法制导的翻译:以语法分析为主导的语义处理在源程序的语法分析中嵌入语义处理。即,利用源程序的文法框架生成的语法分析中嵌入语义处理。即,利用源程序的文法框架生成中间代码或目标代码。中间代码或目标代码。Tips:语义学:语义学:semantics lexeme lexicon semantic 例例(1)递归子程序法的代码生成)递归子程序法的代码生成(2)利用优先矩阵的语法分析直接生成目标代码)利用优先矩阵的
2、语法分析直接生成目标代码(3)利用逆波兰算法进行语法、语义分析)利用逆波兰算法进行语法、语义分析(1)语法分析语义分析语法分析语义分析:直接生成目标代码直接生成目标代码 优点:编译相对简单,时间效率高优点:编译相对简单,时间效率高 缺点:空间代价较高缺点:空间代价较高(2)语法分析中间代码优化目标代码)语法分析中间代码优化目标代码7.7.2 2 两种编译流程两种编译流程例如有如下表达式:例如有如下表达式:a+ba+b*c(a+b)*c逆波兰表示逆波兰表示ab+abc*+ab+c*可以看出后缀表示具备以下优点:可以看出后缀表示具备以下优点:(1)无括号,形式简单清楚;无括号,形式简单清楚;(2)
3、运算符的顺序与表达式的运算次序相同;运算符的顺序与表达式的运算次序相同;在具体处理过程中,可以从左到右检查表达式的各符在具体处理过程中,可以从左到右检查表达式的各符号,遇到运算分量则保存,若遇到运算符,则取其前面的号,遇到运算分量则保存,若遇到运算符,则取其前面的两个分量两个分量(双目运算双目运算)或一个分量或一个分量(单目运算单目运算)进行处理。进行处理。后缀表示法与前缀表示法及中缀表示法相比较,其共同后缀表示法与前缀表示法及中缀表示法相比较,其共同的特点是:的特点是:(1)运算符的个数不变运算符的个数不变;(2)运算量的次序和个数不变。运算量的次序和个数不变。在在计计算算机机处处理理过过程
4、程中中可可以以用用一一个个栈栈(硬硬件件或或软软件件栈栈)来来计计算算它它的的值值。一一般般的的计计算算过过程程是是:自自左左向向右右扫扫描描后后缀缀式式,每每逢逢遇遇到到运运算算量量就就令令其其入入栈栈;遇遇到到K目目运运算算符符,则则将它作用于栈顶的将它作用于栈顶的K个项,并用运算结果代替这个项,并用运算结果代替这K个项。个项。实际计算时,每遇到一个实际计算时,每遇到一个K目运算符,与它有关的目运算符,与它有关的K个运算量已在栈顶,运行结果在原来的个运算量已在栈顶,运行结果在原来的K个项从栈中移个项从栈中移出后置于栈顶。出后置于栈顶。例如例如:ab+c*的计值过程如下:的计值过程如下:1.
5、a入栈;入栈;a2.b入栈;入栈;b3.将栈顶两项相加将栈顶两项相加,移走栈顶的两个项移走栈顶的两个项,把和数把和数E1置于栈顶置于栈顶 E1E1=a+b4.c入栈入栈.c5.将栈顶两项相乘将栈顶两项相乘,移走栈顶的两个项移走栈顶的两个项,把积把积E2置于栈顶置于栈顶;E2E2=E1*c二、二、其它语法成分的逆波兰表示其它语法成分的逆波兰表示:1.赋值语句赋值语句:=把把:=看成一个运算符号看成一个运算符号赋值运算,它为一特殊的赋值运算,它为一特殊的双目运算,则对应的逆波兰表示为:双目运算,则对应的逆波兰表示为::=例:例:x:=100逆波兰表示为:逆波兰表示为:x100:=x:=a*b+c/
6、d逆波兰表示为:逆波兰表示为:xab*cd/+:=在进行具体处理时,可以采用与表达式相似的方法,不在进行具体处理时,可以采用与表达式相似的方法,不同之处是进行运算时,栈中保存的是同之处是进行运算时,栈中保存的是变量的地址,而变量的地址,而不是它的直,最后的处理不是得到一个结果,而是进行赋值不是它的直,最后的处理不是得到一个结果,而是进行赋值(将表达式的值送到指定的内存单元将表达式的值送到指定的内存单元),所以,赋值工作完成,所以,赋值工作完成后,应将栈顶两项后,应将栈顶两项(变量地址和表达式的值变量地址和表达式的值)退栈。退栈。2.转向语句转向语句:goto 它对应的逆波兰表示为:它对应的逆波
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ppt 编译 原理
限制150内