第七章语法制导翻译和中间代码生成 第一节 概述 第一节 概述 二、翻译方法 1、语法制导翻译 ----在语法分析的基础上进行边分析边翻译。 ●注:1)语法制导翻译时会根据文法产生式右部符号串的含义进行翻译,翻译的结果是生成相应中间代码。 ●2)语法制导翻译的依据是语义子程序。 ●3)具体做法:为每个产生式配置一个语义子程序,当语法分析进行归约或推导时,调用语义子程序,完成一部分翻译任务。 ●4)语法分析完成,翻译工作也告结束。 第一节 概述 二、翻译方法 ●1、语法制导翻译 ---语法制导翻译适用于多种语法分析 ---语法制导翻译种类 ●1、自上而下语法制导翻译:对每个文法符号配以语义动作。 ●2、自下而上语法制导翻译:我们主要讨论LR语法制导翻译 第一节 概述 三、语义子程序 1、作用 ●用来描述一个产生式所对应的翻译工作。 ---如:改进某些变量的值;查填各种符号表;发现并报告源程序错误;产生中间代码等。 ●注;这些翻译工作很大程度上决定了要产生什么形式的中间代码 第一节 概述 三、语义子程序 2、写法 ●语义子程序写在该产生式后面的花括号内。 X a{语义子程序} ●注:在一个产生式中同一个文法符号可能出现多次,但它们代表的是不同的语义值,要区分可以加上角标。 如: E E(1)+E(2) 3、语义值 ●为了描述语义动作,需要为每个文法符
原创力文档

文档评论(0)