编译原理期末试题(五)含答案
- 格式:doc
- 大小:126.17 KB
- 文档页数:3
编译原理考试题及答案汇总一、选择1.将编译程序分成若干个“遍”是为了_B__。
A . 提高程序的执行效率B.使程序的结构更加清晰C. 利用有限的机器内存并提高机器的执行效率D.利用有限的机器内存但降低了机器的执行效率2.正规式 MI 和 M2 等价是指__C__。
A . MI 和 M2 的状态数相等 B.Ml 和 M2 的有向弧条数相等。
C .M1 和 M2 所识别的语言集相等 D. Ml 和 M2 状态数和有向弧条数相等3.中间代码生成时所依据的是 _C_。
A.语法规则 B.词法规则 C.语义规则 D.等价变换规则4.后缀式 ab+cd+/可用表达式__B_来表示。
A. a+b/c+d B.(a+b)/(c+d) C. a+b/(c+d) D. a+b+c/d6.一个编译程序中,不仅包含词法分析,_A____,中间代码生成,代码优化,目标代码生成等五个部分。
A.( ) 语法分析 B.( )文法分析 C.( )语言分析 D.( )解释分析7.词法分析器用于识别__C___。
A.( ) 字符串 B.( )语句 C.( )单词 D.( )标识符8.语法分析器则可以发现源程序中的___D__。
A.( ) 语义错误 B.( ) 语法和语义错误C.( ) 错误并校正 D.( ) 语法错误9.下面关于解释程序的描述正确的是__B___。
(1) 解释程序的特点是处理程序时不产生目标代码(2) 解释程序适用于 COBOL 和 FORTRAN 语言(3) 解释程序是为打开编译程序技术的僵局而开发的A.( ) (1)(2) B.( ) (1) C.( ) (1)(2)(3) D.( ) (2)(3)10.解释程序处理语言时 , 大多数采用的是__B___方法。
A.( ) 源程序命令被逐个直接解释执行B.( ) 先将源程序转化为中间代码 , 再解释执行C.( ) 先将源程序解释转化为目标程序 , 再执行D.( ) 以上方法都可以11.编译过程中 , 语法分析器的任务就是__B___。
模拟习题1 一、单项选择题 1、 ________________________________________ 将编译程序分成若干个“遍”是为了 _________________ a. 提高程序的执行效率 b. 使程序的结构更加清晰 C.利用有限的机器内存并提高机器的执行效率d.利用有限的机器内存但降低了机器的执行效率 2、 构造编译程序应掌握 a.源程序 C.编译方法 3、 变量应当_ a.持有左值C.既持有左值又持有右值 4、 编译程序绝大多数时间花在a.出错处理C. 目标代码生成 不可能是目标代码。
a.汇编指令代码C.绝对指令代码 6、 使用 ______a.语义规则 C.产生规则5、 o b. 目标语言 d.以上三项都是 b.持有右值 d.既不持有左值也不持有右值上。
b.词法分析 d.管理表格b.可重定位指令代码 d.中间代码 可以定义一个程序的意义。
b.词法规则 d.词法规则 7、词法分析器的输入是 —a.单词符号串 C.语法单位8、 中间代码生成时所遵循的是a.语法规则 C.语义规则 9、编译程序是对—a.汇编程序的翻译 C.机器语言的执行 10、 语法分析应遵循.a.语义规则 C.构词规则 解答1、 将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选2、 构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选3、 对编译而言,变量既持有左值又持有右值,故选4、 编译程序打交道最多的就是各种表格,因此选 b.源程序 d.目标程序 ______ O b.词法规则 d.等价变换规则b.高级语言程序的解释执行 d.高级语言的翻译 b.语法规则 d.等价变换规则boC o do5、 目标代码包括汇编指令代码、 可重定位指令代码和绝对指令代码 3种,因此不是目标代码的 只能选d o6、 词法分析遵循的是构词规则, 语法分析遵循的是语法规则, 中间代码生成遵循的是语义规则, 并且语义规则可以定义一个程序的意义。
北方工业大学《编译原理》课程期末复习题(答案)A 卷开课学院考试方式:闭卷考试时间:120 分钟班级 姓名 学号 一判断题(每个小题1分,共10分)1. 程序语言主要由语法和语义两方面定义。
( )2. 自上而下分析方法会遇到的主要问题有左递归和回溯。
( )3. 已知文法G :E →i | EAE ,A →+|* ,其中的终结符号集包括{i ,+}。
( )4. 编译程序是将高级语言程序翻译成机器语言程序。
( )5. 只含有综合属性的属性文法称为S-属性文法。
( )6. LL(1)文法中第一个L 的含义是从左到右扫描输入串。
( )7. 在编译中进行语法检查的目的是为了发现程序中所有错误。
( )8. 一个语义子程序描述了一个文法所对应的翻译工作。
( )9. 一个句型的直接短语是唯一的。
( ) 10. 确定的自动机以及不确定的自动机都能正确地识别正规集。
( ) 解:1.√ 2.√ 3.× 4.× 5.√ 6.√ 7.× 8.× 9.× 10.√二、选择题(每个小题1分,共20分)1. 文法分为四种类型,即0型、1型、2型、3型。
其中3型文法是____。
A. 短语文法 B. 正规文法 C. 上下文有关文法 D. 上下文无关文法2. 不可能是目标代码。
A. 汇编指令代码B. 可重定位指令代码C. 绝对指令代码D. 中间代码 3. 将编译程序分成若干个“遍”是为了 。
A. 提高程序的执行效率B. 利用有限的机器内存并提高机器的执行效率C. 使程序的结构更加清晰D. 利用有限机器内存但降低了机器的执行效率 4. 后缀式ab+cd+/可用表达式 来表示。
订线装A. a+b/c+dB. (a+b)/(c+d)C. a+b/(c+d)D. a+b+c/d5. 文法G:S→xSx|y所识别的语言是。
A. xyxB. (xyx)*C. x n yx n(n≥0)D. x*yx*6. 文法G[E]:E→E+T|TT→T*P|PP→(E)|i则句型P+T+i的句柄和最左素短语为。
《编译原理》模拟试题一一、是非题(请在括号内,正确的划错误的划X)(每个2分,共20分)1•计算机高级语言翻译成低级语言只有解释一种方式。
(X)2.在编译中进行语法检查的目的是为了发现程序中所有错误。
(X)3.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。
(丁 )4.正则文法其产生式为A->a , A->Bb, A.BGVN , a、beVT o (X)5.每个文法都能改写为LL(1)文法。
(V)6.递归下降法允许任一非终极符是直接左递归的。
(V)7.算符优先关系表不一定存在对应的优先函数。
(X)8.自底而上语法分析方法的主要问题是候选式的选择。
(X)9.LR法是自顶向下语法分析方法。
(X)10.简单优先文法允许任意两个产生式具有相同右部。
(X)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分)1.一个编译程序中,不仅包含词法分析,_____ ,中间代码生成,代码优化,目标代码生成等五个部分。
A.()语法分析B.()文法分析C.()语言分析D.()解释分析2.词法分析器用于识别_____ oA.()字符串B.()语句C.()单词D.()标识符3 •语法分析器则可以发现源程序中的______ oA.()语义错误B.()语法和语义错误C.()错误并校正D.()语法错误4.下面关于解释程序的描述正确的是。
(1) 解释程序的特点是处理程序时不产生目标代码(2) 解释程序适用于COBOL 和FORTRAN 语言(3) 解释程序是为打开编译程序技术的僵局而开发的A. ( ) (1) (2)B. () (1)C. () (1)⑵(3)D.()⑵⑶5. _________________________________________ 解释程序处理语言时,大多数采用的是 ___________________________________ 方法。
.得分 20分)填空题(每空2分,共一.但大部分编译中采用的方案有两1. 不同的编译程序关于数据空间的存储分配策略可能不同,。
(2)种:静态存储分配方案和动态存储分配方案,而后者又分为(1)和 3)规约。
2. 规范规约是最(、语义分析与中间代码生成,代码优化及)个阶段:词法分析、(453. 编译程序的工作过程一般划分为 6)和出错处理。
)。
另外还有((5。
(7)4.表达式x+y*z/(a+b)的后缀式为。
(8) 5.文法符号的属性有综合属性和j],a[1..15,1..20]某个元素a[i6.假设二位数组按行存放,而且每个元素占用一个存储单元,则数组。
的地址计算公式为(9))范围内的一种优化。
7.局部优化是局限于一个(10得分分)分,共201-6为单选题,7-8为多选题,每问2(二.选择题,以)包括四个组成部分:一组终结符,一组非终结符,一个( 1. 一个上下文无关文法G 。
)及一组(文法.开始符号 D.A.字符串 B.产生式 C )。
2.程序的基本块是指(一个仅有一个入口和一个出口的语句一个子程序 B.A.一组顺序执行的程序段,仅有一个入口和一个出口一个没有嵌套的程序段 D.C.)分析方法。
高级语言编译程序常用的语法分析方法中,递归下降分析法属于(3.自右向左. D自顶向下 C.自底向上 BA.自左向右.)特别适用于表达式的分析。
( 4.在通常的语法分析方法中, LR分析法..算符优先分析法 BA 1)分析法. LL( DC.递归下降分析法。
.经过编译所得到的目标程序是(5 )间接三元式序列.四元式序列A. B 机器语言程序或汇编语言程序.二元式序列 D.C 。
)).6 一个文法所描述的语言是(;描述一个语言的文法是( C B A.唯一的.不唯一的.可能唯一,也可能不唯一..7.如果在文法G中存在一个句子,当其满足下列条件()之一时,则称该文法是二义文法。
A.其最左推导和最右推导相同 B.该句子有两个不同的最左推导C.该句子有两个不同的最右推导 D.该句子有两棵不同的语法树E.该句子对应的语法树唯一8.下面()语法制导翻译中,采用拉链—回填技术。
编译原理考试题及答案一、选择题(每题2分,共10分)1. 在编译原理中,词法分析的主要任务是什么?A. 将源程序代码转换为中间代码B. 识别源程序中的词法单位并生成词法单元C. 检查源程序的语法正确性D. 优化生成的代码答案:B2. 下列哪个不是编译器的组成部分?A. 词法分析器B. 语法分析器C. 代码生成器D. 运行时库答案:D3. 在编译过程中,语义分析的主要作用是什么?A. 识别词法错误B. 检查语法错误C. 检查类型错误D. 生成目标代码答案:C4. 编译器中的中间代码表示通常采用哪种形式?A. 三地址代码B. 后缀表达式C. 抽象语法树D. 逆波兰表示答案:A5. 编译器优化的主要目标是什么?A. 增加程序的可读性B. 提高程序的执行效率C. 减少程序的存储空间D. 以上都是答案:D二、填空题(每题2分,共10分)1. 编译器的前端主要包括词法分析、______和语义分析。
答案:语法分析2. 编译器的后端主要包括代码优化、______和目标代码生成。
答案:代码生成3. 词法分析器通常使用______来识别词法单位。
答案:有限自动机4. 语法分析器可以使用______文法来描述语言的语法结构。
答案:上下5. 编译器优化中,______优化可以减少程序的运行时间。
答案:时间三、简答题(每题5分,共20分)1. 简述编译器的主要功能。
答案:编译器的主要功能包括将高级语言编写的源程序转换成等价的目标程序,同时进行语法、语义和运行时错误检查,以及代码优化以提高程序的执行效率。
2. 描述编译过程中的词法分析阶段的主要任务。
答案:词法分析阶段的主要任务是将源程序的字符序列分割成一系列的标记(token),这些标记是源程序中最小的有意义的单位,如关键字、标识符、常量等,并为后续的语法分析阶段提供输入。
3. 什么是语法分析?它在编译过程中的作用是什么?答案:语法分析是编译过程中的一个阶段,其任务是根据语言的语法规则检查源程序是否符合语法结构,并构建出抽象语法树(AST)。
一、单选题1、编译程序是一种( )。
A.汇编程序B.目标程序C.翻译程序D.解释程序正确答案:C2、若文法G定义的语言是无限集,则文法必然是( )。
A.二义性的B.上下文无关的C.递归的D.无二义性的正确答案:C3、一个上下文无关文法G包括四个组成部分,它们是一组非终结符号,一组终结符号,一个开始符号,以及一组( )。
A.句子B.单词C.产生式D.句型正确答案:C4、文法G:S →x xS | y 所识别的语言是( )。
A.xxy∗B. xx∗yxC.(xxy)∗D.(xx)∗y正确答案:D5、文法G:S →xS | y 所识别的语言是( )。
A.(xy)∗B.xy∗C.x∗yD. xx∗yx正确答案:C6、在自上而下的语法分析中,应从( )开始分析。
A.句型B.句子C.文法开始符号D.句柄正确答案:C7、语法分析器的输入是()。
A.符号表B.目标程序C.源程序D.Token序列正确答案:D8、LL(1)分析法中“1”的含义是在输入串中查看一个输入符号,其目的是()。
A.确定最左推导B.确定是否推导C.确定句柄D.确定使用哪一个产生式进行展开正确答案:D9、同正规式(a|b)∗等价的正规式为( )。
A.a∗|b∗B.(a|b)+C.(ab)∗D.(a∗|b∗)+正确答案:D10、已知文法G[S]:S→A1,A→A1|S0|0,与G等价的正规式是( )。
A.1∗|0∗1B.0(1|10)∗1C.0(0|1)∗D.1(10|01)∗0正确答案:B11、与(a|b)∗(a|b)等价的正规式是( )。
A.a∗|b∗B.(ab)∗(a|b)C.(a|b)(a|b)∗D.(a|b)∗正确答案:C12、如果一个正规式所代表的集合是无穷的,则它必含有的运算是( )。
A.接运算“·”B.或运算“|”C.括号“(”和“)”D.闭包运算“* ”正确答案:D13、在语法分析处理中,FIRST集合、FOLLOW集合均是( )。
编译原理考试题及答案一、选择题(每题2分,共20分)1. 编译器的主要功能是将高级语言源程序转换成机器语言目标程序。
(对/错)答案:对2. 编译过程中,词法分析器的主要任务是识别源程序中的各种词法单位。
(对/错)答案:对3. 在语法分析阶段,编译器使用的数据结构是栈。
(对/错)答案:错4. 语义分析的主要目的是检查程序的语法结构是否正确。
(对/错)答案:错5. 编译器的优化阶段可以提高目标程序的执行效率。
(对/错)答案:对6. 编译器的代码生成阶段负责将中间代码转换为目标代码。
(对/错)答案:对7. 编译器的运行时系统包括内存管理、输入输出处理等功能。
(对/错)答案:对8. 编译器的前端主要负责源程序的分析,后端负责目标代码的生成。
(对/错)答案:对9. 编译器的词法分析阶段不涉及对标识符的识别。
(对/错)答案:错10. 编译器的语法分析阶段可以识别出所有的语法错误。
(对/错)答案:对二、填空题(每题2分,共20分)1. 编译器在进行语法分析时,通常采用________算法。
答案:LL(1)或LR(1)2. 编译器在语义分析阶段,需要对变量的________进行检查。
答案:作用域和生命周期3. 编译器在代码优化阶段,常用的优化技术包括________和循环优化。
答案:常量传播4. 编译器在目标代码生成阶段,需要考虑________的约束。
答案:目标机器5. 编译器的运行时系统包括________、内存管理、输入输出处理等。
答案:程序启动和异常处理6. 编译器在词法分析阶段,需要识别的词法单位包括________、标识符、常量等。
答案:关键字7. 编译器在语法分析阶段,使用的分析表可以是________表或ACTION 表。
答案:GOTO8. 编译器在语义分析阶段,需要对表达式的________进行计算。
答案:类型9. 编译器的代码生成阶段,需要将中间代码转换为________代码。
答案:目标机器10. 编译器的运行时系统在内存管理中,需要处理________和垃圾收集。
北京语言大学“计算机科学与技术”《编译原理》23秋期末试题库含答案第1卷一.综合考核(共20题)1.逆波兰表示法表示表达式时无需使用括号。
()A.错误B.正确2.3.在编译过程中,语法分析器的任务是()。
A.分析单词是怎样构成的B.分析单词串是如何构成语句和说明的C.分析语句和说明是如何构成程序的D.分析程序的结构4.在解释方式下,解释程序将按照源程序中语句的动态顺序,逐句地进行分析解释,并立即予以执行。
()A.错误B.正确5.6.7.解释程序适用于COBOL和FORTRAN语言。
()A.错误B.正确8.过程调用的实质是把程序控制转移到子程序(过程段)。
()A.错误B.正确9.全局优化是在整个程序范围内进行的优化。
()A.错误B.正确10.两个正规集相等的必要条件是他们对应的正规式等价。
()A.错误B.正确11.12.数组元素的地址计算与数组的存储方式有关。
()A.错误B.正确13.14.正则文法其产生式为A-a,A-Bb,A,B∈VN,a、b∈VT。
()A.错误B.正确15.一个控制流程图可以表示成一个组,它包括()。
A.图中所有结点集B.图中所有有向边集C.首结点D.堆区16.一个确定有穷自动机有且只有一个终态。
()A.错误B.正确17.语法分析所依据的是语言的语法规则,即描述程序结构的规则。
()A.错误B.正确18.19.一个LR(1) 项目可以看成()两个部分组成。
A.心B.向前搜索符集合C.分析表D.分析函数20.静态数据区用于可变数据以及管理过程活动的控制信息。
()A.错误B.正确第1卷参考答案一.综合考核1.参考答案:B3.参考答案:BCD4.参考答案:B7.参考答案:A8.参考答案:B9.参考答案:B10.参考答案:A 12.参考答案:A14.参考答案:A15.参考答案:ABC16.参考答案:A17.参考答案:B19.参考答案:AB20.参考答案:A。
《编译原理》期末试题(五)
一、简述编译程序的工作过程。(10)
编译程序的工作过程,是指从输入源程序开始到输出目标程序为止的整个过程,
是非常复杂的,就其过程而言,一般可以划分为五个工作阶段:①词法分析,对
构成源程序的字符串进行扫描和分解,识别出一个个的单词;②语法分析,根据
语言的语法规则,把单词符号串分解成各类语法单位;③语义分析与中间代码产
生,即对各类语法单位,分析其汉一并进行初步翻译;④代码优化,以期产生更
高效的代码;⑤目标代码生成,把中间代码变换成特定机器上的低级语言指令形
式。
二、构造下列正规式相应的DFA(用状态转换图表示)(15)
(1) 1(0 | 1)*1
(2) 0*10*10*10*1
(3) letter(letter | digit)*
(1)
(2)
(3)
三、给出下面语言的相应文法:(15)
L1={an bn | n≥1} L2={anbm+nam | n≥1,m≥0}
1 0 2
0,1
1
3
1 1 2 0 0 3 0 1 4
0
1 1
5
1
letter
letter
2
digit
G1: A→aAb |ab G1:
S
→AB
A→aAb | ab
B→bBa | ε
四、对下面的文法G:
S→a | b | (T)
T→T,S | S
(1) 消去文法的左递归,得到等价的文法G2;
(2) 判断文法G2是否LL(1)文法,如果是,给出其预测分析表。(15)
G2:
S→a | b | (T)
T→ ST’
T’→,S T’ | ε
G2是LL(1)文法。
a b ( ) , #
S S→a S→b S→(T)
T T→ ST’ T→ ST’ T→ ST’
T’ T’→ ε T’→,S T’
五、设有文法G[A]:
A→BCc | gDB
B→bCDE |
ε
C
→DaB | ca
D→dD |ε
E→gAf | c
(1) 计算该文法的每一个非终结符的FIRST集和FOLLOW集;
(2) 试判断该文法是否为LL(1)文法。(15)
FIRST FOLLOW
A B C D E A,b,c,d,g b A,c,d D C,g
A,c,d
C,d,g
A,b,c,g
是LL(1)文法。
六、对表达式文法G:
E → E+T | T
T → T*F | F
F → (E) | I
(1)造各非终结符的FIRSTVT和LASTVT集合;
(2)构造文法的算符优先关系表。(15)
FIRSTVT LASTVT
E
T
F
*,+,(,i *,(,i (,i *,+,),i
*,),i
),i
算符优先关系表
+ * I ( ) #
+ * I ( ) # > > > < > < < > > < > < < < < < < < < < > > > = > >
>
>
>
=
七、有定义二进制整数的文法如下:
L →LB | B
B →0 | 1
构造一个翻译模式,计算该二进制数的值(十进制的值)。(15)
引入L、B的综合属性val,翻译模式为:
S →L {print(L.val)}
L →L1B {L.val= L1.val*2+B.val}
L →B {L.val= B.val}
B →0 {B.val=0}
B →1 {B.val=1}