编译原理第1阶段练习题
编译原理习题及答案(整理后)

编译原理习题及答案(整理后)第⼀章1、将编译程序分成若⼲个“遍”是为了。
b.使程序的结构更加清晰2、构造编译程序应掌握。
a.源程序b.⽬标语⾔c.编译⽅法3、变量应当。
c.既持有左值⼜持有右值4、编译程序绝⼤多数时间花在上。
d.管理表格5、不可能是⽬标代码。
d.中间代码6、使⽤可以定义⼀个程序的意义。
a.语义规则7、词法分析器的输⼊是。
b.源程序8、中间代码⽣成时所遵循的是- 。
c.语义规则9、编译程序是对。
d.⾼级语⾔的翻译10、语法分析应遵循。
c.构词规则⼆、多项选择题1、编译程序各阶段的⼯作都涉及到。
b.表格管理c.出错处理2、编译程序⼯作时,通常有阶段。
a.词法分析b.语法分析c.中间代码⽣成e.⽬标代码⽣成三、填空题1、解释程序和编译程序的区别在于是否⽣成⽬标程序。
2、编译过程通常可分为5个阶段,分别是词法分析、语法分析中间代码⽣成、代码优化和⽬标代码⽣成。
3、编译程序⼯作过程中,第⼀段输⼊是源程序,最后阶段的输出为标代码⽣成程序。
4、编译程序是指将源程序程序翻译成⽬标语⾔程序的程序。
⼀、单项选择题1、⽂法G:S→xSx|y所识别的语⾔是。
c. x n yx n(n≥0)d. x*yx*2、⽂法G描述的语⾔L(G)是指。
a. L(G)={α|S + ?α , α∈VT*} b. L(G)={α|S*?α, α∈VT*}c. L(G)={α|S *?α,α∈(VT∪V N*)} d. L(G)={α|S+ ?α, α∈(VT∪V N*)}3、有限状态⾃动机能识别。
a. 上下⽂⽆关⽂法b. 上下⽂有关⽂法c.正规⽂法d. 短语⽂法4、设G为算符优先⽂法,G的任意终结符对a、b有以下关系成⽴。
a. 若f(a)>g(b),则a>bb.若f(a)c. a~b都不⼀定成⽴d. a~b⼀定成⽴5、如果⽂法G是⽆⼆义的,则它的任何句⼦α。
a. 最左推导和最右推导对应的语法树必定相同b. 最左推导和最右推导对应的语法树可能不同c. 最左推导和最右推导必定相同d. 可能存在两个不同的最左推导,但它们对应的语法树相同6、由⽂法的开始符经0步或多步推导产⽣的⽂法符号序列是。
《编译原理1》题库V14

则经过词法分析后可以识别的单词个数是(B) A.19 B.20 C.21 D.23
4
编译原理 1 题库
38. 下列选项中,不属于预处理程序要完成的功能的是( A. B. C. D. 滤掉源程序中的注释 查找源程序中的无用字符 进行宏替换 实现文件包含的嵌入和条件编译的嵌入
B )
39. 编译过程中扫描器的任务包括(D) ① 组织源程序的输入 ② 按词法规则分割单词,识别出其属性,并转换成 token 串输出 ③ 删除注释 ④ 删除空格和无用字符 ⑤ 行计数,列计数 ⑥ 发现并定位词法错误 ⑦ 建立符号表 A.②③④⑦ B. ②③④⑥⑦
36. 词法分析器作为独立的阶段使整个编译程序结构更加简洁、明确,因此( B A. 词法分析器应作为独立的一遍 B. C. D. 词法分析器作为子程序较好 词法分析器分解为多个过程,由语法分析器选择使用 词法分析器并不作为一个独立的阶段
37. 设有 C 语句的程序段如下: while(i&&++j) { c=2.19; j+=k; i++; }
15. 由“非终结符→符号串”形式的规则构成的文法是( C ) 。 A. 0 型文法 B. C. D. 1 型文法 2 型文法 3 型文法
16. 文法识别符号经过任意步推导得到的结果是( A ) 。 A. 句型 B. C. D. 句柄 句子 短语
17. * 关于短语和句柄,正确的描述是( B ) 。 A. 短语就是句柄 B. 直接短语才可能是句柄 C. 最左短语一定是句柄 D. 最右短语一定是句柄 18. 一个语言的文法是( B ) 。 A. B. 唯一的 不唯一的
D. 可以增加对内容容量的要求 5. 下面对编译程序分“遍”应考虑的因素描述不正确的是(C) A.源语言的特征和约束 B. 代码优化的因素 C. 编译程序的功能 D. 目标代码的选择 6. 编译程序各阶段的工作都涉及到( D ) ①表格管理 ②语法分析 ③出错处理 ④代码优化 A.①② B. ②③ C. ③④ D. ①③ 7. 设有表达式 a*b-c ,将其中 a*b 识别为表达式的编译阶段是( B ) A. 词法分析 B. 语法分析 C. 语义分析 D. 代码生成 8. BNF 是一种广采用的( C )的工具。 A. B. 描述规则 描述语言
编译原理第1阶段练习题及答案,这是其中一个阶段共3个阶段。答案在后面

江南大学网络教育第一阶段练习题及答案,这是其中一个阶段共3个阶段。
答案在后面考试科目:《编译原理》第章至第章(总分100分)__________学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一单选题 (共4题,总分值20分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。
)1. 若一个文法是递归的,则它所产生的语言的句子是()。
(5 分)A. 无穷多个B. 有穷多个C. 可枚举的D. 个数是常量2. 文法G[A]:A→ε A→aB B→Ab B→a是()。
(5 分)A. 0型文法B. 1型文法C. 2型文法D. 3型文法3. 词法分析器的输入是()。
(5 分)A. 单词符号串B. 源程序C. 语法单位D. 目标程序4. 一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组()。
(5 分)A. 句子B. 句型C. 单词D. 产生式二填空题 (共2题,总分值10分 )5. 编译程序的功能可以分解为词法分析、语法分析、__________、中间代码生成、中间代码优化、目标代码生成。
(5 分)6. 微小语言Micro的单词有下面的几种:标识符、__________、实常数、保留字、__________、换行符。
(5 分)三简答题 (共2题,总分值20分 )7. 给出与正规式R=1(0|1)*101等价的NFA。
(10 分)8. 写出下面程序经词法分析后的TOKEN表示。
begin var X:real;var J:integer;read(J);J:=J+(J*20);X:=J-1;Write(2*J+X)End(10 分)四综合计算题 (共2题,总分值50分 )9. 已知文法G(S) S→a| (T) T→T,S|S写出句子((a,a),a)的规范归约过程及每一步的归约规则和句柄。
(25 分)10. 已知文法 G[E] 为:E→T|E+T|E-T T→F|T*F|T/F F→(E)|i①该文法的开始符号(识别符号)是什么?②请给出该文法的终结符号集合 Vt 和非终结符号集合 Vn 。
编译原理词法分析习题集带答案

《编译原理》习题(一)——词法分析一、是非题(请在括号内,正确的划√,错误的划×)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.编译程序是一种常用的软件。
A) 应用B) 系统C) 实时系统D) 分布式系统2.编译程序生成的目标代码程序是可执行程序。
A) 一定B) 不一定3.编译程序的大多数时间是花在上。
A) 词法分析B) 语法分析C) 出错处理D) 表格管理4.将编译程序分成若干“遍”将。
A)提高编译程序的执行效率;B)使编译程序的结构更加清晰,提高目标程序质量;C)充分利用内存空间,提高机器的执行效率。
5.编译程序各个阶段都涉及到的工作有。
A) 词法分析B) 语法分析C) 语义分析D) 表格管理6.词法分析的主要功能是。
A) 识别字符串B) 识别语句C) 识别单词D) 识别标识符7.若某程序设计语言允许标识符先使用后说明,则其编译程序就必须。
A) 多遍扫描B) 一遍扫描8.编译方式与解释方式的根本区别在于。
A) 执行速度的快慢B) 是否生成目标代码C) 是否语义分析9.多遍编译与一遍编译的主要区别在于。
A)多遍编译是编译的五大部分重复多遍执行,而一遍编译是五大部分只执行一遍;B)一遍编译是对源程序分析一遍就立即执行,而多遍编译是对源程序重复多遍分析再执行;C)多遍编译要生成目标代码才执行,而一遍编译不生成目标代码直接分析执行;D)多遍编译是五大部分依次独立完成,一遍编译是五大部分交叉调用执行完成。
10.编译程序分成“前端”和“后端”的好处是A)便于移植B)便于功能的扩充C)便于减少工作量D)以上均正确第二章练习题(文法与语言)一、选择题1.文法 G 产生的 (1) 的全体是该文法描述的语言。
A.句型B. 终结符集C. 非终结符集D. 句子2.若文法 G 定义的语言是无限集,则文法必然是 (2) A递归的 B 上下文无关的 C 二义性的 D 无二义性的3. Chomsky 定义的四种形式语言文法中, 0 型文法又称为(A)文法;1 型文法又称为(C)文法;2 型语言可由(G) 识别。
A 短语结构文法B 上下文无关文法C 上下文有关文法D 正规文法E 图灵机F 有限自动机G 下推自动机4.一个文法所描述的语言是(A);描述一个语言的文法是(B)。
编译原理练习一附答案

编译原理练习一附答案一、单选题(每题2分,共20分)1.编译器的()阶段可将源程序的字符流收集到若干记号中。
A. 语法分析B. 语义分析C. 代码生成D. 词法分析2. 文法A→aA | b属于正则文法,正则文法在乔姆斯基层次中对应于()文法。
A. 1型B. 2型C. 3型D. 0型3. 某C语言源代码文件包含#include <stdio.h>,()将对源代码进行处理,把文件stdio.h包含进去。
A.编译器B.解释器C.汇编器D.预处理器4. LL(1)文法的充要条件是()。
A.对于文法中的每条产生式U→α1|α2|…|αn,要求FIRST(αi)∩FIRST(αj)=Φ(i≠j)B.该文法对应的LL(1)分析表中每个项目最多只有一条产生式。
C.A和BD.都不是5. 以下说法中正确的是()。
A.任何语言都可以描述为一个正则表达式。
B.对于任何一个NFA M,都存在一个DFA M’,满足L(M)= L(M’)。
C.任何一个DFA只有一个终态。
D.NFA的弧上标记只含输入字母表中的元素。
6.合成属性的计算可以通过对语法树进行()遍历进行。
A. 前序B.中序C.后序D.任意7.乔姆斯基的2型文法是这样一种语言,其产生式限制为()。
A. α->βB. P->βC. P->a或P->aβD. αPγ->αβγ8. 正则式的“*”读作()。
A. 并且B.连接C.正则闭包D.闭包9. 编译程序中的语义分析器接受以()为单位的输入,并产生信息供以后各阶段使用。
A. 语法树B.子程序C.单词D.语句10.文法A->aAb|ab生成的语言是()。
A. {ab}B.{aAb}C. {a n b n|n≥1}D.{a n b n|n≥0}二、判断题(每题2分,共10分,对的打√,错的打×)1. 一个LR(0)文法一定是SLR(1)文法。
()b2. 在类型声明文法中,类型属性type 是继承属性。
编译原理习题及答案(整理后)

第一章1、将编译程序分成若干个“遍”是为了。
b.使程序的结构更加清晰2、构造编译程序应掌握。
a.源程序b.目标语言c.编译方法3、变量应当。
c.既持有左值又持有右值4、编译程序绝大多数时间花在上。
d.管理表格5、不可能是目标代码。
d.中间代码6、使用可以定义一个程序的意义。
a.语义规则7、词法分析器的输入是。
b.源程序8、中间代码生成时所遵循的是- 。
c.语义规则9、编译程序是对。
d.高级语言的翻译10、语法分析应遵循。
c.构词规则二、多项选择题1、编译程序各阶段的工作都涉及到。
b.表格管理c.出错处理2、编译程序工作时,通常有阶段。
a.词法分析b.语法分析c.中间代码生成e.目标代码生成三、填空题1、解释程序和编译程序的区别在于是否生成目标程序。
2、编译过程通常可分为5个阶段,分别是词法分析、语法分析中间代码生成、代码优化和目标代码生成。
3、编译程序工作过程中,第一段输入是源程序,最后阶段的输出为标代码生成程序。
4、编译程序是指将源程序程序翻译成目标语言程序的程序。
一、单项选择题1、文法G:S→xSx|y所识别的语言是。
a. xyxb. (xyx)*c.x n yx n(n≥0) d. x*yx*2、文法G描述的语言L(G)是指。
a. L(G)={α|S+⇒α , α∈V T*}b. L(G)={α|S*⇒α, α∈V T*}c. L(G)={α|S*⇒α,α∈(V T∪V N*)} d. L(G)={α|S+⇒α, α∈(V T∪V N*)}3、有限状态自动机能识别。
a. 上下文无关文法b. 上下文有关文法c.正规文法d. 短语文法4、设G为算符优先文法,G 的任意终结符对a、b有以下关系成立。
a. 若f(a)>g(b),则a>bb.若f(a)<g(b),则a<bc. a~b都不一定成立d. a~b一定成立5、如果文法G是无二义的,则它的任何句子α。
a. 最左推导和最右推导对应的语法树必定相同b. 最左推导和最右推导对应的语法树可能不同c. 最左推导和最右推导必定相同d. 可能存在两个不同的最左推导,但它们对应的语法树相同6、由文法的开始符经0步或多步推导产生的文法符号序列是。
编译原理 第一、二章测验(答案)

编译原理 第一、二章单元测验(答案)姓名 学号 班级一.填空(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、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
考试科目:《编译原理》第1章至第4章(总分100分)时间:90分钟
一、选择与填充(30)
1. 文法G[A]:A→ε A→aB B→Ab B→a是( )
A. 0型文法
B. 1型文法
C. 2型文法
D. 3型文法
2. 微小语言Micro的单词有下面的几种:标识符、_____________、实常数、保留字、___________、换行符。
3.编译程序的功能可以分解为词法分析、语法分析、___________________、中间代码生成、中间代码优化、目标代码生成。
4. 词法分析器的输入是( )。
A. 单词符号串
B. 源程序
C. 语法单位
D. 目标程序
5. 一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组( )。
A.句子 B.句型 C.单词 D.产生式
6. 若一个文法是递归的,则它所产生的语言的句子是( )。
A.无穷多个 B.有穷多个 C.可枚举的 D.个数是常量
二、给出与正规式R=1(0|1)*101等价的NFA。
(14)
三、写出下面程序经词法分析后的TOKEN表示。
(16)
begin var X:real;
var J:integer;
read(J);
J:=J+(J*20);
X:=J-1;
Write(2*J+X)
End
四、已知文法 G[E] 为:(20)
E→T|E+T|E-T T→F|T*F|T/F F→(E)|i
①该文法的开始符号(识别符号)是什么?
②请给出该文法的终结符号集合 Vt 和非终结符号集合 Vn 。
③找出句型 T+T*F+i 的所有短语、简单短语和句柄。
五、已知文法G(S) S→a| (T) T→T,S|S
写出句子((a,a),a)的规范归约过程及每一步的归约规则和句柄。
(20)
附:参考答案:
一、选择与填充(30)
1. 文法G[A]:A→ε A→aB B→Ab B→a是( D )
A. 0型文法
B. 1型文法
C. 2型文法
D. 3型文法
2. 微小语言Micro的单词有下面的几种:标识符、___整常数____、实常数、保留字、__符号词__、换行符。
3.编译程序的功能可以分解为词法分析、语法分析、______语义分析_____、中间代码生成、中间代码优化、目标代码生成。
4. 词法分析器的输入是( B )。
A. 单词符号串
B. 源程序
C. 语法单位
D. 目标程序
5. 一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组( D )。
A.句子 B.句型 C.单词 D.产生式
6. 若一个文法是递归的,则它所产生的语言的句子是( A ) 。
A.无穷多个 B.有穷多个 C.可枚举的 D.个数是常量
二、给出与正规式R=1(0|1)*101等价的NFA。
(14)
三、写出下面程序经词法分析后的TOKEN表示。
(16)
begin var X:real;
var J:integer;
read(J);
J:=J+(J*20);
X:=J-1;
Write(2*J+X)
End
解:
$begin $var ($id,X) $colon $real $semi $line
$var ($id,J) $colon $integer $semi $line $read $LParen ($id,J) $RParen $semi $line ($id,J) $assign ($id,J) $plus $Lparen ($id,J) $mult ($intC,20) $RParen $semi $line ($id,X) $assign ($id,J) $subs ($intC,1) $semi $line $write $LParen ($intC,2) $mult ($id,J) $plus ($id,X) $RParen $semi $End
四、已知文法 G[E] 为:(20)
E→T|E+T|E-T T→F|T*F|T/F F→(E)|i
①该文法的开始符号(识别符号)是什么?
②请给出该文法的终结符号集合 Vt 和非终结符号集合 Vn 。
③找出句型 T+T*F+i 的所有短语、简单短语和句柄。
解:①该文法的开始符号(识别符号)是E。
②该文法的终结符号集合Vt={+、-、*、/、(、)、i}。
非终结符号集合Vn={E、T、F}。
③句型T+T*F+I的短语为i、T*F、第一个T、T+T*F+i;
简单短语为i、T*F、第一个T;
句柄为第一个T。
五、已知文法G(S) S→a| (T) T→T,S|S
写出句子((a,a),a)的规范归约过程及每一步的归约规则和句柄。
(20)解:句型归约规则句柄
((a,a),a) S→a a
((S,a),a) T→S S
((T,a),a) S→a a
((T,S),a) T→T,S T,S
((S),a) T→S S
((T),a) S→(T) (T)
(S,a) T→S S
(T,a) S→a a
(T,S) T→T,S T,S
(T) S→(T) (T)
S。