第二章编译原理词法分析小测验
- 格式:ppt
- 大小:134.50 KB
- 文档页数:4
编译原理自测一一、填空题1、从功能上说,程序语言的语句大体可分为执行性语句和说明性语句两大类。
2、扫描器的任务是从源程序中识别出一个个单词符号。
3、所谓最右推导是指:任何一步αβ都是对α中最右非终结符进行替换的4、语法分析最常用的两类方法是自上而下和自下而上分析法。
5、一个上下文无关文法所含四个组成部分是:一组终结符号,一组非终结符号、一个开始符号、一组产生式6、所谓语法制导翻译方法是:为每个产生式配上一个翻译子程序,并在语法分析的同时执行这些子程序7、产生式是用于定义语法范畴的一种书写规则。
一、是非题1、一个LL(1)文法一定是无二义的。
A.正确 B.不正确4、正规文法产生的语言都可以用上下文无关文法来描述。
A.正确 B.不正确5、一张转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态。
A.正确B.不正确二、填空题1、语法分析是依据语言的语法规则进行的,中间代码产生是依据语言的语义规则进行的。
2、程序语言的单词符号一般可以分为基本字、标识符、常量、算符、界符等等。
3、语法分析器的输入是单词符号串,其输出是语法单位4、所谓自上而下分析法是指:从开始符号出发,向下推导,推出句子6、对于文法G,仅含终结符号的句型称为句子。
8、一个名字的属性包括类型和作用域。
10、所谓优化是指:对程序进行各种等价变换,使得从变换后的程序出发,能生成更有效的目标代码三、名词解释1.词法分析器——指执行词法分析的程序。
2.语法——一组规则,用它可以形成和产生一个合式的程序3.最右推导——指对于一个推导序列中的每一步直接推导,被替换的总是当前符号串中的最右非终结符号。
一选择题(每空2分,共20分)1、文法G 产生的⑴的全体是该文法描述的语言。
A.句型B.终结符集C. 非终结符集D. 句子2、若文法G 定义的语言是无限集,则文法必然是⑵:A.递归的B.前后文无关的C.二义性的D.无二义性的3、Chomsky 定义的四种形式语言文法中,0 型文法又称为⑶文法;1 型文法又称为⑷文法;2 型语言可由⑸识别。
第二章 词法分析2.1 完成下列选择题:(1) 词法分析器的输出结果是。
a. 单词的种别编码b. 单词在符号表中的位置c. 单词的种别编码和自身值d. 单词自身值(2) 正规式M1和M2等价是指。
a. M1和M2的状态数相等b. M1和M2的有向边条数相等c. M1和M2所识别的语言集相等d. M1和M2状态数和有向边条数相等(3) DFA M(见图2-1)接受的字集为。
a. 以0开头的二进制数组成的集合b. 以0结尾的二进制数组成的集合c. 含奇数个0的二进制数组成的集合d. 含偶数个0的二进制数组成的集合【解答】(1) c (2) c (3) d图2-1 习题2.1的DFA M2.2 什么是扫描器?扫描器的功能是什么?【解答】 扫描器就是词法分析器,它接受输入的源程序,对源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。
通常是把词法分析器作为一个子程序,每当词法分析器需要一个单词符号时就调用这个子程序。
每次调用时,词法分析器就从输入串中识别出一个单词符号交给语法分析器。
2.3 设M=({x,y}, {a,b}, f, x, {y})为一非确定的有限自动机,其中f 定义如下:f(x,a)={x,y} f {x,b}={y}f(y,a)=Φ f{y,b}={x,y}试构造相应的确定有限自动机M ′。
【解答】 对照自动机的定义M=(S,Σ,f,So,Z),由f 的定义可知f(x,a)、f(y,b)均为多值函数,因此M 是一非确定有限自动机。
先画出NFA M 相应的状态图,如图2-2所示。
图2-2 习题2.3的NFA M 用子集法构造状态转换矩阵,如表表2-1 状态转换矩阵1b将转换矩阵中的所有子集重新命名,形成表2-2所示的状态转换矩阵,即得到 M ′=({0,1,2},{a,b},f,0,{1,2}),其状态转换图如图2-3所示。
表2-2 状态转换矩阵将图2-3所示的DFA M ′最小化。
《编译原理》习题(一)——词法分析一、就是非题(请在括号内,正确的划√,错误的划×)1.编译程序就是对高级语言程序的解释执行。
(× )2.一个有限状态自动机中,有且仅有一个唯一的终态。
(×)9.两个正规集相等的必要条件就是她们对应的正规式等价。
(× )二、选择题1.词法分析器的输出结果就是_____。
A.( ) 记号B.( ) 相应条目在符号表中的位置C.( ) 记号与属性二元组D.( ) 属性值2. 正规式M 1 与M 2 等价就是指_____。
A.( ) M1与M2的状态数相等B.( ) M1与M2的有向边条数相等C.( ) M1与M2所识别的语言集相等D.( ) M1与M2状态数与有向边条数相等3.语言就是A.句子的集合B.产生式的集合C.符号串的集合D.句型的集合4.编译程序前三个阶段完成的工作就是A.词法分析、语法分析与代码优化B.代码生成、代码优化与词法分析C.词法分析、语法分析、语义分析与中间代码生成D.词法分析、语法分析与代码优化5.扫描器所完成的任务就是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即A. 字符B.单词C.句子D.句型6.构造编译程序应掌握______。
A.( )源程序B.( ) 目标语言C.( ) 编译方法D.( ) 以上三项都就是7.词法分析的任务就是A.识别单词B.分析句子的含义C.识别句子D.生成目标代码三、填空题1.计算机执行用高级语言编写的程序主要有两种途径:___解释__与__编译___。
3、编译过程可分为( 词法分析) ,(语法分析),(语义分析与中间代码生成),(优化)与(目标代码生成)五个阶段。
6、扫描器的任务就是从( 源程序中)中识别出一个个( 单词符号)。
17、一张转换图只包含有限个状态,其中有一个被认为就是(初)态;而且实际上至少要有一个(终)态。
1.编译程序首先要识别出源程序中每个(单词),然后再分析每个(句子)并翻译其意义。
编译原理考试题
1. 编译器的作用是什么?简述编译器的基本工作流程。
2. 解释什么是词法分析。
描述词法分析器的基本工作原理。
3. 什么是语法分析?描述语法分析器的基本工作原理。
4. 解释语义分析的概念。
语义分析器的基本工作原理是什么?
5. 请简要解释编译器的前端和后端分别是做什么的。
6. 什么是中间代码?为什么编译器要生成中间代码?
7. 解释什么是符号表。
符号表在编译过程中起到什么作用?
8. 简述优化在编译过程中的作用。
列举并解释两种常见的优化技术。
9. 解释静态链接和动态链接的区别。
10. 请解释解释器和编译器之间的区别。
描述它们各自的工作
原理。
11. 解释冲突解析算法中的"移进-归约"冲突和"归约-归约"冲突。
12. 简述LL(1)文法和LR(1)文法的特点及区别。
13. 解释编程语言中的数据类型检查和类型推导的概念。
14. 简要描述语法制导翻译的概念和基本原理。
15. 请解释正则表达式和有限自动机之间的关系。
注意:以上为编译原理考试相关的问题,文中不含有标题相同的文字。
《编译原理》常见题型一、填空题1.编译程序的工作过程一般可以划分为词法分析,语法分析,中间代码生成,代码优化(可省) ,目标代码生成等几个基本阶段。
2.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序.3.编译方式与解释方式的根本区别在于是否生成目标代码 .5.对编译程序而言,输入数据是源程序,输出结果是目标程序 .7.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序。
8.一个典型的编译程序中,不仅包括词法分析、语法分析、中间代码生成、代码优化、目标代码生成等五个部分,还应包括表格处理和出错处理。
其中,词法分析器用于识别单词。
10.一个上下文无关文法所含四个组成部分是一组终结符号、一组非终结符号、一个开始符号、一组产生式。
12.产生式是用于定义语法成分的一种书写规则。
13.设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为:L(G)={x│S=>*x,x∈VT*} 。
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. 简答题
(1)什么是编译原理?
(2)解释词法分析和语法分析的区别。
(3)描述语法制导翻译的过程。
(4)什么是上下文无关文法?
(5)解释LL和LR分析器之间的差异。
2. 分析题
对于以下文法G:
S → aB | bA
A → a | ε
B → b
进行如下操作:
(1)用LL(1)分析器分析串“ab”。
(2)用LR(1)分析器分析串“ba”。
3. 论述题
请分析编译器的工作原理并解释编译器的主要功能。
同时比较解释型语言和编译型语言之间的区别。
4. 计算题
对于文法G:
E → E + T | T
T → T * F | F
F → (E) | id
请根据该文法构建一个SLR(1)分析表并分析串“id + id * id”。
5. 应用题
假设您需要编写一个简单的编译器来编译一种自定义的编程语言。
请设计该编程语言的词法规则和语法规则,并解释如何构建一个简单的编译器来将该语言转换为目标代码。
以上为编译原理考试试题,希望能够帮助您对编译原理的相关知识有更全面的了解。
祝您考试顺利!。
编译原理 第一、二章单元测验(答案)姓名 学号 班级一.填空(40分)1. 编译系统一般可以分为① 词法分析 ② 语法分析 ③语义分析及中间代码生成 ④ 优化处理 ⑤ 目标代码生成 等5大部分组成,其中① 词法分析 ② 语法分析 ⑤ 目标代码生成 是每个编译程序必不可少的,而③语义分析及中间代码生成 ④ 优化处理 则是可有可无的。
这5个部分在工作过程中都会涉及到⑥ 表格处理 ⑦ 出错处理2. 中间代码生成所依据的是语言的 语义 规则3. 在使用高级语言编程时,首先可以通过编译程序发现源程序的全部 语法 错误和 语义 错误。
4. 由于受到具体机器主存容量限制,编译程序几个阶段的工作往往被组合成 遍 。
5. 编译程序绝大多数时间花在 管理表格/扫描 上。
6. 语法分析的依据是 语法/语义 规则。
7. 高级语言源程序执行有两种方式:即 编译 和 解释 。
8. 编译程序各阶段的工作往往是 穿插 进行的。
9. 文法G 产生的 句子 的全体构成该文法所描述的语言。
10. 乔姆斯基定义的4种形式的文法中,0型又称 短语结构文法 可由 图灵机 识别, 1型又称 前后文(或上下文)有关文法 可由 线性限界自动机 识别,2型又称 前后文(或上下文)无关文法 可由 非确定下推自动机 识别,3型包括 左线性文法 和 右线性文法 ,可由 有限自动机 识别。
11. 最左推导是指 对于一个推导序列中的每个直接推导,被替换的总是当前符号串中的最左非终结符号。
12. 产生式是用于定义 语法范畴 的一种书写规则。
13. 高级语言经过编译生成的语言一般是 机器语言 和 汇编语言 。
14. 句柄是指当前句型的 最左直接短语 。
15. 简单地说,文法中无用符号和无用产生式的删除必须满足:1.是否被用到过 2. 可否推出终结符号 。
16. 规范推导是指 最右推导 ,规范归约是指 最左归约 ,二者互为逆过程。
二.写一个语言,使其语言是奇数集,且每个奇数不以0开头。
编译原理词法分析习题集带答案《编译原理》习题(⼀)——词法分析⼀、就是⾮题(请在括号内,正确得划√,错误得划×)1.编译程序就是对⾼级语⾔程序得解释执⾏。
(× )2.⼀个有限状态⾃动机中,有且仅有⼀个唯⼀得终态。
(×)9.两个正规集相等得必要条件就是她们对应得正规式等价。
(× )⼆、选择题1.词法分析器得输出结果就是_____。
A.( ) 记号B.( ) 相应条⽬在符号表中得位置C.( ) 记号与属性⼆元组D.( ) 属性值2. 正规式M 1 与M 2 等价就是指_____。
A.( ) M1与M2得状态数相等B.( ) M1与M2得有向边条数相等C.( ) M1与M2所识别得语⾔集相等D.( ) M1与M2状态数与有向边条数相等3.语⾔就是A.句⼦得集合B.产⽣式得集合C.符号串得集合D.句型得集合4.编译程序前三个阶段完成得⼯作就是A.词法分析、语法分析与代码优化B.代码⽣成、代码优化与词法分析C.词法分析、语法分析、语义分析与中间代码⽣成D.词法分析、语法分析与代码优化5.扫描器所完成得任务就是从字符串形式得源程序中识别出⼀个个具有独⽴含义得最⼩语法单位即A. 字符B.单词C.句⼦D.句型6.构造编译程序应掌握______。
A.( )源程序B.( ) ⽬标语⾔C.( ) 编译⽅法D.( ) 以上三项都就是7.词法分析得任务就是A.识别单词B.分析句⼦得含义C.识别句⼦D.⽣成⽬标代码三、填空题1.计算机执⾏⽤⾼级语⾔编写得程序主要有两种途径:___解释__与__编译___。
3、编译过程可分为( 词法分析) ,(语法分析),(语义分析与中间代码⽣成),(优化)与(⽬标代码⽣成)五个阶段。
6、扫描器得任务就是从( 源程序中)中识别出⼀个个( 单词符号)。
17、⼀张转换图只包含有限个状态,其中有⼀个被认为就是(初)态;⽽且实际上⾄少要有⼀个(终)态。
1.编译程序⾸先要识别出源程序中每个(单词),然后再分析每个(句⼦)并翻译其意义。