西电编译原理_复习与试题讲解
- 格式:ppt
- 大小:499.00 KB
- 文档页数:20
(完整版)编译原理复习题《编译原理》常见题型一、填空题1、编译程序的工作过程一般可以划分为词法分析,语法分析,语义分析,中间代码生成,目标代码生成等几个基本阶段。
2、若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序。
3、编译方式与解释方式的根本区别在于是否生成目标代码。
5、对编译程序而言,输入数据是源程序,输出结果是目标程序。
7、若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序。
8、一个典型的编译程序中,不仅包括词法分析、语法分析、中间代码生成、代码优化、目标代码生成等五个部分,还应包括表格处理和出错处理。
其中,词法分析器用于识别单词。
10、一个上下文无关文法所含四个组成部分是一组终结符号、一组非终结符号、一个开始符号、一组产生式。
12、产生式是用于定义语法成分的一种书写规则。
13、设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为L(G)={x│S*x,x∈V T*} 。
14、设G是一个给定的文法,S是文法的开始符号,如果S*x(其中x∈V*),则称x是文法的一个句型。
15、设G是一个给定的文法,S是文法的开始符号,如果S*x (其中x∈V T*),则称x是文法的一个句子。
16、扫描器的任务是从源程序中识别出一个个单词符号。
17、语法分析最常用的两类方法是自上而下和自下而上分析法。
18、语法分析的任务是识别给定的终结符串是否为给定文法的句子。
19、递归下降法不允许任一非终结符是直接左递归的。
20、自顶向下的语法分析方法的关键是如何选择候选式的问题。
21、递归下降分析法是自顶向下分析方法。
22、自顶向下的语法分析方法的基本思想是:从文法的开始符号开始,根据给定的输入串并按照文法的产生式一步一步的向下进行直接推导,试图推导出文法的句子,使之与给定的输入串匹配。
23、自底向上的语法分析方法的基本思想是:从给定的终结符串开始,根据文法的规则一步一步的向上进行直接归约,试图归约到文法的开始符号。
编译原理复习题及答案一、选择题1.一个正规语言只能对应(B)A 一个正规文法B 一个最小有限状态自动机2.文法G[A]:A→εA→aB B→Ab B→a是(A)A 正规文法B 二型文法3.下面说法正确的是(A)A 一个SLR(1)文法一定也是LALR(1)文法B 一个LR(1)文法一定也是LALR(1)文法4.一个上下文无关文法消除了左递归,提取了左公共因子后是满足LL(1)文法的(A)A 必要条件B 充分必要条件5.下面说法正确的是(B)A 一个正规式只能对应一个确定的有限状态自动机B 一个正规语言可能对应多个正规文法6.算符优先分析与规范归约相比的优点是(A)A 归约速度快B 对文法限制少7.一个LR(1)文法合并同心集后若不是LALR(1)文法(B)A 则可能存在移进/归约冲突B 则可能存在归约/归约冲突C 则可能存在移进/归约冲突和归约/归约冲突8.下面说法正确的是(A)A Lex是一个词法分析器的生成器B Yacc是一个语法分析器9.下面说法正确的是(A)A 一个正规文法也一定是二型文法B 一个二型文法也一定能有一个等价的正规文法10.编译原理是对(C)。
A、机器语言的执行B、汇编语言的翻译C、高级语言的翻译D、高级语言程序的解释执行11.(A)是一种典型的解释型语言。
A.BASIC B.C C.FORTRAN D.PASCAL12.把汇编语言程序翻译成机器可执行的目标程序的工作是由(B)完成的。
A. 编译器B. 汇编器C. 解释器D. 预处理器13.用高级语言编写的程序经编译后产生的程序叫(B)A.源程序 B.目标程序C.连接程序D.解释程序14.(C)不是编译程序的组成部分。
A.词法分析程序B.代码生成程序C.设备管理程序D.语法分析程序15.通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成等六个部分,还应包括(C)。
A.模拟执行器B.解释器 C.表格处理和出错处理D.符号执行器16.编译程序绝大多数时间花在(D)上。
编译原理复习一、简述题1、简述编译程序的工作过程编译程序的工作,即从输入源程序开始到输出目标程序为止的整个过程是非常复杂的。
通常,编译程序的工作过程可以划分为5个阶段:第1阶段,词法分析。
词法分析的任务是输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词(亦称单词符号或简称符号),如保留字(基本字)、标识符、算符、界符等。
依循的原则:构词规则描述工具:有限自动机第2阶段,语法分析。
语法分析的任务是在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位(语法范畴),如语句、程序块、函数等,判断整个输入串是否是一个语法上正确的“程序”。
依循的原则:语法规则描述工具:上下文无关文法第3阶段,语义分析与中间代码产生。
这一阶段的任务是对语法分析所识别出的各类语法范畴,分析其含义,并进行初步翻译(产生中间代码)。
通常的中间代码有三元式、四元式、间接三元式、逆波兰式等。
依循的原则:语义规则第4阶段,优化。
优化的任务在于对前段产生的中间代码进行加工变换,以期在最后阶段能产生更为高效(省时间和空间)的目标代码。
优化的主要方法有公共子表达式的提取、循环优化等。
依循的原则:程序的等价变换规则第5阶段,目标代码生成。
这一阶段的任务是把中间代码(或经优化处理之后的中间代码)变换成特定机器上的低级语言代码。
目标代码三种形式:绝对指令代码: 可直接运行可重新定位指令代码: 需要连接装配汇编指令代码: 需要进行汇编2、编译程序在分析语言程序的过程中将源语言程序的各种信息都保留在各种表格中,同时,在源语言程序出错时,编译程序要帮助进行错误判断、错误定位等,因此表格管理及出错处理和编译程序的各个阶段都有关联。
编译程序的结构图如图所示。
其中词法分析器,又称扫描器,输入源程序,进行词法分析,输出单词符号。
语法分析器,简称分析器,对单词符号串进行语法分析,识别出各类语法单位,最终判断输入串是否构成语法上正确的“程序”。
编译原理复习重点含答案编译原理复习重点编译原理是计算机科学中的一门重要课程,它研究的是如何将高级语言程序转化为机器语言的过程。
在编译原理的学习中,我们需要掌握一些重要的概念和技术,以便能够理解和应用编译器的工作原理。
本文将重点介绍编译原理的几个重要主题,并提供相应的答案供参考。
一、词法分析词法分析是编译器的第一个阶段,它的任务是将输入的字符序列划分为一个个有意义的词素(token)。
词法分析器通常使用有限自动机(DFA)来实现,其工作原理是将输入字符序列逐个读入,并根据事先定义好的词法规则进行匹配和识别。
常见的词法单元包括关键字、标识符、常量、运算符等。
常见的词法规则包括:1. 关键字:例如if、while、for等。
2. 标识符:由字母、数字和下划线组成,且以字母或下划线开头。
3. 常量:包括整数常量、浮点数常量、字符常量和字符串常量等。
4. 运算符:例如加法运算符+、减法运算符-等。
5. 分隔符:例如逗号、分号等。
词法分析的结果是一个个词法单元,每个词法单元包含一个词素和对应的词法单元类型。
例如,对于输入程序"int a = 10;",词法分析的结果可能是[("int", "关键字"), ("a", "标识符"), ("=", "运算符"), ("10", "整数常量"), (";", "分隔符")]。
二、语法分析语法分析是编译器的第二个阶段,它的任务是将词法分析器输出的词法单元序列转化为抽象语法树(AST)。
语法分析器通常使用上下文无关文法(CFG)来描述语言的语法结构,并使用递归下降、LL(1)分析、LR分析等算法进行分析。
常见的语法规则包括:1. 表达式:例如算术表达式、布尔表达式等。
1》编译程序的框架图与功能块:(1)画出编译程序的总体结构,并简述各部分的主要功能:七个部分(2)编译程序的结构分为几个阶段,各阶段的任务是什么?答编译程序总框架(1)词法分析器,又称扫描器,输入源程序,进行词法分析,输出单词符号。
(2)语法分析器,简称分析器,对单词符号串进行语法分析(根据语法规则进行推导或规约),识别出各类语法单位,最终判断输入串是否构成语法上正确的“程序”。
(3)语义分析与中间代码产生器,按照语义规则对语法分析器归约出(或推导出)的语法单位进行语义分析并把它们翻译成一定形式的中间代码。
(4)优化器,对中间代码进行优化处理。
(5)目标代码生成器,把中间代码翻译成目标程序。
(6)表格管理,登记源程序的各类信息,编译各阶段的进展状况。
(7)出错管理,把错误信息报告给用户。
编译程序的结构分为五个阶段:(1)词法分析.任务是:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词(亦称单词符号或简称符号),如基本字,标识符,常熟,算符和界符。
(2)。
语法分析,任务是:在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位(语法范畴)。
(3)语义分析与中间代码产生。
任务:对语法分析所识别出的各类语法范畴,分析其含义,并进行初步翻译(产生中间代码)。
(4)优化。
任务在于对前段产生的中间代码进行加工变换,以期在最后阶段能产生出更为高效(省时间和空间)的目标代码。
(5)目标代码生成。
任务是:把中间代码(或优化出理之后)变换成特定机械上的低级语言代码。
2》.重要概念:a. 编译程序:是指能够把源语言程序转换成逻辑上等价的目标语言程序的一个程序。
b. 单词符号:是语言的基本组成成分,是人们理解和编写程序的基本要素,是语言中具有独立意义的最基本结构,它一般包括:基本字、标识符、常数、运算符和界符等c. 中间代码:是一种含义明确,便于处理的记号系统,它通常独立于具体的硬件。
编译原理期末考试复习整理(详细列出考试重点+重点例题)本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.March目录第一章 (3)词法分析: (3)语义法分析 (3)中间代码 (3)第二章 (3)1.根据语言写出文法 (4)2.根据文法写语,描述其特点(必考大题2-3类型) (4)3.文法的规范推导、语法树、短语、句柄(必考大题,2-7,2-11) (6)第三章 (11)1.给出一个正规文法 (左线性、右线性方法),写出其状态转换图(必考) (11)1.1右线性文法写出状态转换图 (必考) (11)1.2状态转换图写出右线性文法G (12)1.3左线性文法写出状态转换图 (必考) (13)2.非确定自动机的确定化 (14)第四章 (15)第五章 (15)属性文法与属性翻译文法 (15)逆波兰式(大题) (16)四元式(大题) (16)第一章词法分析:分析源程序的结构,判断它是否是相应程序设计语言的合法程序语义法分析的任务是根据语言的语义规则对语法分析得到的语法结构进行静态的语义检查(确定类型、类型与运算合法性检查、识别含义等),并且转换成另一种内部形式(语义树)表示出来或者直接用目标语言表示出来。
中间代码是一种结构简单、含义明确的记号系统,这种记号系统可以设计为多种多样的形式,重要的设计原则为两点:一是容易生成;二是便于优化、移值;三是容易将它翻译成目标代码第二章文法G定义为四元组(V N,V→,P,S )其中V N为非终结符号(或语法实体,或变量)集;V→为终结符号集;P为产生式(也称规则)的集合; V N,V→和P是非空有穷集。
S称作识别符号或开始符号,它是一个非终结符,至少要在一条产生式中作为左部出现。
V N和V→不含公共的元素,即V N ∩V→ = φ,通常用V 表示V N∪ V→,V称为文法G的字母表或字汇表。