7章语法制导的翻译
- 格式:ppt
- 大小:201.50 KB
- 文档页数:12


语法翻译法的实施步骤1. 简介语法翻译法是一种用于将一种程序设计语言转换为另一种程序设计语言的技术。
它通过将源语言的语法规则映射到目标语言的语法规则,实现源语言程序到目标语言程序的转换。
本文将介绍实施语法翻译法的具体步骤。
2. 步骤以下是实施语法翻译法的一般步骤:步骤1: 确定源语言和目标语言在开始进行语法翻译的过程中,首先需要确定源语言和目标语言。
源语言是我们要转换的程序设计语言,目标语言是将源语言转换成的语言。
确切地了解源语言和目标语言的语法规则和语义规则非常重要。
步骤2: 词法分析词法分析是将源程序分解为一个个的单词(Token)的过程。
在这一步骤中,我们需要编写一个词法分析器,它将源代码作为输入,并识别出其中的单词。
每个单词都包含一个词法类型和一个对应的字符串值。
示例:源代码: x = 5 * 2;词法分析输出:- 词法类型: 标识符,字符串值: x- 词法类型: 赋值运算符,字符串值: =- 词法类型: 数字,字符串值: 5- 词法类型: 运算符,字符串值: *- 词法类型: 数字,字符串值: 2- 词法类型: 分号,字符串值: ;步骤3: 语法分析语法分析是将词法分析器输出的单词流转换为语法树的过程。
在这一步骤中,我们需要编写一个语法分析器,它将识别源代码中的语法规则并生成一个语法树。
语法树用于表示程序的结构和层次关系。
示例:源代码: x = 5 * 2;语法树:=/ \\x */ \\5 2步骤4: 语法制导翻译语法制导翻译是基于语法树进行语法规则的翻译过程。
在这一步骤中,我们需要根据源语言和目标语言的语法规则,编写语法制导翻译器,它将遍历语法树并根据语法规则翻译每个节点。
示例:源代码: x = 5 * 2;目标语言: Python翻译结果: x = 5 * 2步骤5: 语义分析和翻译语义分析是对源代码进行静态语义检查的过程。
在这一步骤中,我们需要编写语义分析器,它将检查源代码是否符合源语言和目标语言的语义规则。
第7节习题一、单项选择题1、中间代码生成所依据的是。
a.语法规则b.词法规则c.语义规则d.等价变换规则2、四元式之间的联系是通过实现的。
a.指示器b.临时变量c.符号表d.程序变量3、后缀式ab+cd+/可用表达式来表示。
a.a+b/c+db.(a+b)/(c+d)c.a+b/(c+d)d.a+b+c/d4、表达式(┓A∨B)∧(C∨D)的逆波兰表示为。
a. ┓AB∨∧CD∨b. A┓B∨CD∨∧c. AB∨┓CD∨∧d. A┓B∨∧CD∨5所对应的表达式为。
a.A+B+C+Db.A+(B+C)+Dc.(A+B)+C+Dd.(A+B)+(C+D)6、四元式表示法的优点为。
a.不便于优化处理,但便于表的更动b.不便于优化处理,但节省存储空间c.便于优化处理,也便于表的更动d.便于表的更动,也节省存储空间7、终结符具有属性。
a.传递b.继承c.抽象d.综合解答1、选c。
2、四元式之间的联系是通过临时变量实现的,故选b。
3、选b。
4、选b。
5、选d。
6、四元式表示法的优点与间接三元式相同,故选c。
7、选d。
二、多顶选择题1、中间代码主要有。
a.四元式b.二元式c.三元式d.后缀式e.间接三元式2、下面中间代码形式中,能正确表示算术表达式a+b+c 的有 。
a .ab+c+ b .abc++ e .a+b+c3、在下面的 语法制导翻译中,采用拉链-回填技术。
a .赋值语句 b .goto 语句 c .条件语句 d .循环语句4、下列 中间代码形式有益于优化处理。
a .三元式 b .四元式 c .间接三元式 d .逆波兰表示法 e .树形表示法5、在编译程序中安排中间代码生成的目的是 。
a .便于进行存储空间的组织 b .利于目标代码的优化c .利于编译程序的移植d .利于目标代码的移植e .利于提高目标代码的质量 6、下面的中间代码形式中, 能正确表示算术表达式a .ab+c*b .abc*+c .a+b*c7、三地址代码语句具体实现通常有 表示方法。