第八章 语法制导翻译
- 格式:ppt
- 大小:203.50 KB
- 文档页数:25
北京语言大学网络教育学院《编译原理》模拟试卷一注意:1.试卷保密,考生不得将试卷带出考场或撕页,否则成绩作废。
请监考老师负责监督。
2.请各位考生注意考试纪律,考试作弊全部成绩以零分计算。
3.本试卷满分100分,答题时间为90分钟。
4.本试卷分为试题卷和答题卷,所有答案必须答在答题卷上,答在试题卷上不给分。
一、【单项选择题】(本大题共10小题,每小题2分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在答题卷相应题号处。
1、一个编译程序中,包含词法分析、()、中间代码生成、代码优化、目标代码生成等五个部分。
[A] 语法分析[B] 文法分析[C] 语言分析[D] 解释分析2、词法分析器用于识别()。
[A] 字符串[B] 语句[C] 单词[D] 标识符3、语法分析器则可以发现源程序中的()。
[A] 语义错误[B] 语法和语义错误[C] 错误并校正[D] 语法错误4、下面关于解释程序的描述正确的是()。
(1) 解释程序的特点是处理程序时不产生目标代码。
(2) 解释程序适用于COBOL 和FORTRAN 语言。
(3) 解释程序是为打开编译程序技术的僵局而开发的。
[A] (1)(2)[B] (1)[C] (1)(2)(3)[D] (2)(3)5、解释程序处理语言时, 大多数采用的是()方法。
[A] 源程序命令被逐个直接解释执行[B] 先将源程序转化为中间代码, 再解释执行[C] 先将源程序解释转化为目标程序, 再执行[D] 以上方法都可以6、编译过程中, 语法分析器的任务就是()。
(1) 分析单词是怎样构成的(2) 分析单词串是如何构成语句和说明的(3) 分析语句和说明是如何构成程序的(4) 分析程序的结构[A] (2)(3)[B] (2)(3)(4)[C] (1)(2)(3)[D] (1)(2)(3)(4)7、编译程序是一种()。
[A] 汇编程序[B] 翻译程序[C] 解释程序[D] 目标程序8、文法G 所描述的语言是()的集合。
语法制导翻译方案1. 简介语法制导翻译是一种通过编译器根据源语言的语法结构来生成目标语言代码的方法。
它使用语法规则和语义动作来将源代码翻译为目标语言,并在翻译过程中进行语义分析和语法分析。
在这篇文档中,我们将介绍语法制导翻译的基本原理和实现方法,并给出一个具体的实例来说明如何使用语法制导翻译方案进行代码翻译。
2. 基本原理语法制导翻译的基本原理是通过使用语法规则和语义动作来将源语言的语句转换为目标语言的等价语句。
它结合了语义分析和语法分析的过程,并通过语法规则和语义动作建立源语言和目标语言之间的映射关系。
在语法分析的过程中,编译器会根据语法规则来判断源语言的语句是否合法,并进行相应的语法转换。
在语义分析的过程中,编译器会根据语义动作来处理源语言的语句,并生成目标语言的等价语句。
3. 实现方法3.1 语法规则语法规则是语法制导翻译的核心部分,它定义了源语言和目标语言之间的转换规则。
语法规则通常由产生式表示,它描述了源语言的各种语句的组合方式和语义含义。
在编译器的实现过程中,需要根据语法规则来判断源语言的语句是否符合规范,并进行相应的转换。
3.2 语义动作语义动作是语法制导翻译中的一种处理方式,它在语法分析的过程中根据语法规则进行相应的处理。
语义动作通常由一段代码表示,它用于实现特定的语义操作,例如变量声明、函数调用等。
在编译器的实现过程中,需要根据语义动作来处理源语言的语句,并生成目标语言的等价语句。
3.3 语法制导翻译的流程语法制导翻译的流程通常包括以下几个步骤:1.词法分析:将源代码分割为一个个的词法单元,并进行词法分析,生成词法分析结果。
2.语法分析:根据语法规则对词法分析结果进行语法分析,生成语法分析树。
3.语义分析:根据语义动作对语法分析树进行语义分析,生成目标语言的等价语句。
4.代码生成:根据目标语言的语法规则将目标语言的等价语句转化为目标语言的代码。
3.4 代码示例以下是一个简单的示例,演示了如何使用语法制导翻译方案将一个简单的算术表达式翻译为目标语言的等价表达式。
.名词解释:1)前缀答:前缀——是指符号串任意首部。
2)可归前缀答:可归前缀——是指规范句型的一个前缀,这种前缀包含句柄且不含句柄之后的任何符号。
3)活前缀答:活前缀——规范句型的一个前缀,这种前缀不含句柄之后的任何符号。
或给定文法规范句型的可归前缀的任意首部。
4)简单短语答:简单短语——设G[Z]是给定文法,w=xuy∈V+,为该文法的句型,如果满足下面两个条件:① Z xUy;② Uu;则称句型xuy 中的子串u是句型xuy的简单短语。
5)扫描遍答:扫描遍——指编译程序对源程序或中间代码程序从头到尾扫描一次。
6)句柄答:句柄——给定句型中的最左简单短语就是句柄。
7)句型答:句型——设G是一个给定的文法,S是文法的开始符号,如果Sx(其中x∈V*),则称x是文法的一个句型。
8)句子答:句子——设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈VT*),则称x是文法的一个句子。
9)非终结符答:非终结符—出现在文法产生式的左部且能派生出符号或符号串的那些符号称为非终结符号。
10)终结符答:终结符——出现在文法产生式的右部且不能派生出符号或符号串的那些符号称为终结符号。
11)属性文法答:一个属性文法形式的定义为一个三元组AG,AG=(G,V,E)。
其中G为一个上下文无关文法;V为属性的有穷集;E为一组语义规则。
12)语法制导翻译答:语法制导翻译——语法制导翻译就是在语法分析的过程中,当进行推导或归约时同步完成附加在所使用的产生式上的语义规则描述的动作,从而实现语义处理。
13)后缀式答:后缀式——一种把运算量(操作数)写在前面,把算符写在后面(后缀)的表示法。
14)短语答:短语——设G[Z]是给定文法,w=xuy∈V+,为该文法的句型,如果满足下面两个条件:① Z xUy;② U u;则称句型xuy 中的子串u是句型xuy的短语。
或:句型语法树的全部子树的叶从左到右排列起来构成的符号串均是句型的短语。