2015编译原理试卷A
《编译原理》考试题

《编译原理》考试题一、选择题:(每题2分,共20分)1.文法G所描述的语言是的集合。
A)文法G的字汇表V中所有符号组成的符号串B)文法G的字汇表V的闭包V*中的所有符号串C)由文法的识别符号推出的所有符号串D)由文法的识别符号推出的所有终结符号串2.设有文法G[S]=({b},{S,B},S,{S→b|bB,B→bS}),试问该文法所描述的语言是。
A)L(G[S])={b i|i≥0} B)L(G[S])={b2i|i≥0}C)L(G[S])={b2i+1|i≥0} D)L(G[S])={b2i+1|i≥1}3.一个句型中的最左称为该句型的句柄。
A)短语B)简单短语C)素短语D)终结符号4. 正则文法能产生下面的语言:L={a n b n|n≥1}。
A)存在一个B)存在多个C)不存在D)无法判断5.编译程序中的语法分析器接受以为单位的输入,并产生有关信息供以后各阶段使用。
A)表达式B)产生式C)单词D)语句6.编译方法中,自顶向下的语法分析方法有。
A)简单优先分析方法B)算符优先分析方法C)SLR方法D)LL(1)分析方法7.简单优先分析法每次都是对进行归约。
A)最左短语B)简单短语C)句柄D)最左素短语8.LR语法分析栈中存放的状态是识别的DFA状态。
A)前缀B)可归前缀C)项目D)句柄9.表达式-(a+b)/(c-d)-(a+b*c)的逆波兰表示是(@代表单目运算-)。
A)ab+cd-/@bc*a+- B)ab+/cd@bc*a+--C)ab+@cd-/abc*+- D)ab+cd-/abc*+@-10.乔姆斯基(Chomsky)把文法分成四种类型,即0型、1型、2型和3型。
其中,3型文法是。
A)上下文无关文法B)上下文有关文法C)正则文法D)短语文法二、填空题:(每空1分,共20分)1.假设G是一个文法,S是文法的开始符号,如果S *x,则称x是。
2.已知文法G[E]:E→E+T|T,T→T*F|F,F→(E)|i;该文法的开始符号是,终结符号集合V T是,非终结符号集合V N 是,句型T+T*F+i的短语有T+T*F+i,第一个T,T*F和。
编译原理试题及答案(1)

<编译原理>历年试题及答案一.(每项选择2分,共20分)选择题1.将编译程序分成若干个“遍”是为了_b__。
a.提高程序的执行效率b.使程序的结构更加清晰c.利用有限的机器内存并提高机器的执行效率d.利用有限的机器内存但降低了机器的执行效率2.构造编译程序应掌握__d__。
a.源程序b.目标语言c.编译方法d.以上三项都是3.变量应当c_。
a.持有左值b.持有右值c.既持有左值又持有右值d.既不持有左值也不持有右值4.编译程序绝大多数时间花在_d___上。
a.出错处理b.词法分析c.目标代码生成d.管理表格5.词法分析器的输出结果是_c___。
a.单词的种别编码b.单词在符号表中的位置c.单词的种别编码和自身值d.单词自身值6.正规式MI和M2等价是指__c__。
a. MI和M2的状态数相等b.Ml和M2的有向弧条数相等。
C.M1和M2所识别的语言集相等 d. Ml和M2状态数和有向弧条数相等7.中间代码生成时所依据的是—c。
a.语法规则 b.词法规则 c.语义规则 d.等价变换规则8.后缀式ab+cd+/可用表达式__b_来表示。
a.a+b/c+d b.(a+b)/(c+d) c.a+b/(c+d) d.a+b+c/d9.程序所需的数据空间在程序运行前就可确定,称为____c__管理技术。
a.动态存储b.栈式存储c.静态存储d.堆式存储10.堆式动态分配申请和释放存储空间遵守___d_____原则。
a.先请先放b.先请后放c.后请先放d.任意二(每小题10分,共80分)简答题1.画出编译程序的总体结构图,简述各部分的主要功能。
2. 已知文法G[E]:E→ET+|T T→TF* | F F→F^ | a试证:FF^^*是文法的句型,指出该句型的短语、简单短语和句柄.3.为正规式(a|b) *a(a|b)构造一个确定的有限自动机。
4.设文法G(S):S→(L)|a S|aL→L,S|S(1) 消除左递归和回溯;(2) 计算每个非终结符的FIRST和FOLLOW;(3) 构造预测分析表。
大学课程《编译原理》考试试卷A卷及答案

《编译原理》考试试卷A适用专业:考试日期:闭卷所需时间:120分钟总分:100分一、填空题:(每空1分,共10分)1.解释系统与编译系统的区别在于和。
2.在编译过程中始终伴随着管理和出错处理过程。
3.语法分析的方法为和两大类。
4.LL(1)文法中不能有和。
5.词法分析器中单词的描述工具是 ,单词的识别工具。
6.算符优先语法分析,在符号栈栈顶出现时,进行规约处理。
二、单选题(每小题2分,共10分)1.词法分析器的加工对象是()A.中间代码B.单词C.源程序D.元程序2.同正则表达式a*b*等价的文法是()A. G1:S→aS|bS|εB. G2: S→aSb|εC. G3:S→aS|Sb|εD. G4: S→abS|ε3.文法G[A]:A→bH H→BA B→Ab H→a 不是()A. 2型文法B. 3型文法C. 0型文法D.1型文法4.算符优先分析每次都是对()进行规约。
A.短语B.最左素短语C.素短语D.句柄5.( )不是DFA的成分。
A.有穷字母表B. 初始状态集合C.终止状态集合D.有限状态集合三、问答题(第1,5小题每题15分,其余每小题10分,共80分)1. (15分)解释下列术语:(1)编译程序(2)句柄(3)上下文无关文法2.编译程序主要有哪些构成成分?(10分)3.给出描述语言L={a n b2n c m|n,m≥0}的cfg。
(10分)4.(10分)将下图中的DFA M最小化。
5. (15分)判断文法G[S]:S→aHH→aMd|dM→Ab|εA→aM|e是否为LL(1)文法?给出判断过程。
6. (10分)改写文法G[E]:E → E+T|TT →T*F|FF →(E)| a为无左递归文法。
7. (10分)已知文法G[S]为:S→VV→T|ViTT→F|T+FF→)V*|(请指出句型(+(i( 规范推到,并指出句型F+Fi( 中的短语、句柄和素短语。
《编译原理》考试试卷A参考答案适用专业:考试日期:闭卷所需时间:120分钟总分:100分一、填空题:(每空1分,共10分)1. 边翻译边执行和不生成目标代码。
编译原理期末考试试卷及答案

期末考试试卷(A)卷一、填空题(每小题2分,共20分)1、字母表∑,用∑*表示∑上所有有穷长的串集合,∑*称为∑的①。
2、设z=abc,则z的固有头是①。
3、如何由语言基本符号组成程序中各个语法成分(包括程序)的一组规则叫①。
4、设∑={a,b},∑上的正规式(a|b)(a|b) 相应的正规集为①5、NFA的映象f是从"状态×字"映射到"状态子集",f为①值函数。
6、LR分析是按规范句型的①为可归约串。
7、结点的①属性值由该结点的兄弟结点和父结点的属性值计算。
8、如果分析树中一结点的属性b依赖于属性c,那么这个结点的属性b的语义规则的计算必须在定义属性c的语义规则的计算①。
9、对于栈式符号表,引入一个显示嵌套层次关系表- ①表,该表总是指向当前正在处理的最内层的过程的子符号表在栈符号表中的起始位置。
10、任一有向边序列n1 → n2,n2 → n3,…,nk-1 → nk为从结点n1到结点nk的一条通路。
如果n1=nk,则称该通路为①。
二、单项选择(每小题2分,共14分)1、乔姆斯基把文法分成4种类型,即0型、1型、2型和3型。
其中3型文法也称为()。
A.上下无关文法 B.正规文法C.上下文有关文法 D.无限制文法2、生成非0开头的正偶数集的文法是()。
A. Z::=ABC B. Z::=ABCC::=0|2|4|6|8 C::=0|2|4|6|8B::=BA|B0|ε B::=BA|B0|0A::=1|2|3|…|9 A::=1|2|3|…|9C. Z::=ABC|2|4|6|8D. Z::=ABC|2|4|6|8C::=0|2|4|6|8 C::=0|2|4|6|8B::=BA|B0|0 B::=BA|B0|εA::=1|2|3|…|9 A::=1|2|3|…|93、简单优先分析法从左到右扫描输入串,当栈顶出现()时进归约。
A.素短语B.直接短语C.句柄D.最左素短语4、同心集合并有可能产生新的()冲突。
编译原理试卷A(含答案)

(6) 如要依据文法G构造一个不带回溯的自上而下的语法分析器,文法G不能含有左递归,但允许文法G的部分产生式的右部候选式有公共左因子。(F)
(7) a*(b+c)的后缀表达式为abc+*。(T)
1
1
2
a
aa
bb
未简化的DFA
最小化:
分为:终态集{0,1} 非终态集{2}
{0,1}a={1}{0,1}b= {2}
所以:{0,1}= {0} {2} = {1}
a
b
a
(11分)
(3)考虑以下表结构文法G[S]:
S→a|∧|(T)
T→T,S|S
(1)改写G[S],消去G[S]的左递归。
(2)改写后的文法是否LL(1)文法?给出它的预测分析表。(12分)
a
∧
(
)
,
#
S
S→a
S→∧
S→(T)
T
T→ST’
T→ST’
T→ST’
T’
T’பைடு நூலகம்e
T’→,ST’
(4)考虑以下表结构文法G[S]:
S→a|∧|(T)
T→T,S|S
(1)给出句子(a,(a,a))的最右推导和句柄。
解:S→(T)→(T,(T))→(T,(T,S))→(T,(T,a))→(T,(S,a))
S → ·(T) ( S → a·aS → (·T)
T → ·ST’
S → ·a
S → ·∧
S → ·(T)
T
I5: ) I6:
S → (T·) S → (T)·(
编译原理试卷A(考试专用)

4.文法的属性有和。
5.根据所涉与程序的范围,优化可分为局部优化、和全局优化三种。
得分
二、选择题(每小题2分,共10分)
1.描述语言{≥1}的文法为( )。
A.B.
C.D.ε
2.以10结尾的二进制数串为( )。
A.(0|1)*01B.(0|1)*10C.01(0|1)*D.10(0|1)*
()
p();
1; ;
23; p(); a .
A.2和8 B.2和9 C.7和9 D.7和8
得分
三、判断并改错(每小题2分,共10分)
1.文法的二义性和语言的二义性是两个相同的概念。
2.图中运算符,操作符可作为终端结点。
3.和所含的终态结点可以是若干个。
4.存在一个优先关系表就一定存在优先函数与之对应。
G(M):
M →
T → |
B → | |
D → d |
4.给出赋值语句 *()的四元式表示形式。(5分)
5.设文法G(S):(15分)
1)构造各非终结符的和集合;
2)构造优先关系表。
3)该文法是算法优先文法吗?
6.设有基本块(5分)
T1:=2
T2:=10
T3:=S-R
T4:=S+R
A:=T2* T4
编译原理考试试卷(A卷)
2009— 2010学年第一学期
科目:编译原理计算机系_计算机科学与技术专业_级班
题号
一
二
三
四
总分
得分
阅卷人
得分
一、填空题(每空1分,共10分)
1.编译程序的工作的过程一般可以划分为词法分析、、、、等几个基本阶段,同时还会伴有和出错处理。
编译原理考试题及答案

编译原理考试题及答案一、选择题(每题5分,共20分)1. 编译器的主要功能是什么?A. 代码优化B. 代码翻译C. 代码调试D. 代码运行答案:B2. 下列哪个选项不属于编译器的前端部分?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D3. 在编译原理中,文法的产生式通常表示为:A. A -> αB. A -> βC. A -> γD. A -> δ答案:A4. 下列哪个算法用于构建语法分析树?A. LL(1)分析B. LR(1)分析C. SLR(1)分析D. LALR(1)分析答案:A二、填空题(每空5分,共20分)1. 编译器的前端通常包括词法分析、语法分析和________。
答案:语义分析2. 编译器的后端主要负责________和目标代码生成。
答案:代码优化3. 编译器中的词法分析器通常使用________算法来识别单词。
答案:有限自动机4. 语法分析中,________分析是一种自顶向下的分析方法。
答案:递归下降三、简答题(每题10分,共30分)1. 简述编译器的作用。
答案:编译器的主要作用是将高级语言编写的源代码转换成计算机能够理解的低级语言或机器代码,以便执行。
2. 解释一下什么是语法制导翻译。
答案:语法制导翻译是一种翻译技术,它利用源语言的语法信息来指导翻译过程,使得翻译过程能够更好地理解源代码的语义。
3. 什么是词法分析器?答案:词法分析器是编译器前端的一部分,它的任务是将源代码文本分解成一系列的标记(tokens),这些标记是源代码的最小有意义的单位。
四、计算题(每题10分,共30分)1. 给定一个简单的文法G(E):E → E + T | TT → T * F | FF → (E) | id请计算文法的非终结符号E的FIRST集和FOLLOW集。
答案:E的FIRST集为{(, id},FOLLOW集为{), +, $}。
2. 假设编译器在进行语法分析时,遇到一个语法错误的代码片段,请简述编译器如何处理这种情况。
编译原理试题A及答案

编译原理试题A一、单项选择题(每题1分,共20分)1、哪个不是编译系统的组成部分(C )A.词法分析器 B. 代码生成器C.设备管理程序 D. 语法分析器2. 设有表达式a*b-c,将其中a*b识别为表达式的编译阶段是什么( B )A.词法分析 B. 语法分析C.语义分析 D. 代码生成3. 下面不能用于对文法进行描述的是(A )A.源语言 B. EBNF C.BNF D. 语法图4. 设有文法G[S]: S→S1|S0|Sa|Sc|a|b|c,下列符号串中不是该文法的句子的是(A )A.ab0 B. a0c01 C.aaa D. bc105. 文法G[S]:S→aAA→bBB→a|aS ,则L(G)为(C )A.{(ab)n a|n≥1} B. {a (ba)n|n≥1}C.{(aba)n|n≥1} D. {(aba)n|n≥0}6. 哪个不是DFA的构成成分(B )A.有穷字母表 B. 初始状态集合C.终止状态集合 D. 有限状态集合7.词法分析器的输入是(B )A.单词符号串 B.源程序C.语法单位 D.目标程序8.在词法分析阶段不能识别的是(C )A.标识符 B. 运算符C.四元式 D. 常数9.设有一段C语言程序while(i&&++j){c=2.19;j+=k;i++;} ,经过词法分析后可以识别的单词个数是(B )A.19 B.20 C.21 D.2310.自上而下语法分析的主要动作是(B )A.移进 B. 推导C.规约 D. 匹配11.下面不属于LL(1)分析器的组成部分是(D )A.LL(1)总控程序 B. LL(1)分析表C.分析栈 D.源程序串12.设有文法G[S]为S→AB|bC,A→ε|b,B→ε|aD,C→AD|b,D→aS|c则FOLLOW(A)为(A )A.{a,c,#} B.{c,#} C.{a,#} D.{#}13.设有文法G[S]:S→Ap|Bq,A→a|cA,B→b|dB,则FIRST(Ap)为( C )A.{p,q} B. {b,d} C.{a,c} D. 其他14.自下而上语法分析的主要分析动作是(D )A.推导 B. 规约C.匹配 D. 移进-规约15.算法优先分析中,可规约串是(C )A.句柄B.活前缀C.最左素短语D.素短语16. 设有文法G={{S},{a},{S→SaS|ε},S},该文法是(B )A.LL(1)文法B.二义性文法C.SLR(1)文法D.算法优先文法17、中间代码生成时所以据的是(C )A.语法规则B.词法规则C.语义规则 D.等价变换规则18、给定文法G: E→E+T|T,T→T*F|F,F→i|(E)则L(G)中的一个句子i+i+(i*i)*i的逆波兰表示为(C)A.iii*i++B.ii+iii**+ C.ii+ii*i*+ D.其他19.在编译程序中与生成中间代码的目的无关的是(B)A.便于目标代码优化B.便于存储空间的组织C.便于目标代码的移植D.便于编译程序的移植20.中间代码是介于源语言程序和什么之间的一种代码 (D )A .源代码 B. 机器语言 C. 汇编语言 D. 目标代码二.简答(每题3分,共12分) 1. 什么是编译程序?编译程序是将源语言程序翻译为目标语言程序的程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
B.比较复杂 , 可移植性好 , 执行速度快
C.比较简单 , 可移植性差 , 执行速度慢
D.比较简单 , 可移植性好 , 执行速度慢
10. 数组的内情向量中肯定不含有数组的(
)的信息。
A.维数
B.类型
C.维上下界
D.各维的界差
得 分 二、填空题 (每空 1 分,共 10 分)
1. 下面的程序执行时输出的 a 分别是什么?若 (1) 参数的传递办法为"传值",a 为( (2) 参数的传递办法为"传地址",a 为(
f
#
o
a
n
(
)
t
f
#
3、该文法是算符优先文法吗?为什么? (1 分)
第5页共8页
学院
姓名
学号
任课老师
考场教室__________选课号/座位号
………密………封………线………以………内………答………题………无………效……
得分
六、已知文法 G(S)(共 15 分) S→Sx|Ax A→Ay|By B→Bz|z
题号 一 二 三 四 五 六 七 合计 得分
得分 一、选择题(共 20 分,共 10 题,每题 2 分)
1. 通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等
五个部分,还应包括(
)
A.模拟执行器
B.解释器
C.表格处理和出错处理
D.符号执行器
2. 如果在推导过程中的任何一步 α⇒β,都是对 α 中的最右非终结符进行替换,则称这种推导为
B.最左推导和最右推导对应的语法树可能不同
C.最左推导和最右推导必定相同
第1页共8页
学院
姓名
学号
任课老师
考场教室__________选课号/座位号
………密………封………线………以………内………答………题………无………效……
D.可能存在多个推导及不同的语法树
9. 与编译系统相比,解释系统( )。
A.比较简单 , 可移植性好 , 执行速度快
)。
3. 虚拟机是由(
)实现的机器。
4. 数据类型实质上是对存储器中所存储的数据进行的抽象。它包含了一组值的集合和一组
(
)。
5. 传统语言的三种语句级控制结构为(
)、(
)和(
)。
6. 在运行时,一个单元表示由一个代码段和一个(
)组成,称为单元实例。
7. 对数据对象的类型和使用的操作是否匹配的一致性检查称为称为(
最左素短语:
得分
五、对以下文法(共 9 分) B → BoT | T T → TaF | F F → nF | ( B ) | t | f
1、 求该文法的 FIRSTVT 集和 LASTVT 集。 (3 分)
FIRSTVT B T F
LASTVT
2、求该文法的算符优先关系表。 (5 分)
o
a
n
(
)
t
状态 x
ACTION
y
z
GOTO
#
S
A
B
0 1 2 3 4 5 6 7 8 9 10
得分
七、布尔表达式文法如下:(每空 1 分,共 10 分) B → ! B1 | B1 || M B2 | B1 && M B2 | E1 ROP E2
| ture | false
M→ε
请结合所学知识,并根据已提供的部分语义子程序完成该文法的翻译方案。 B → true {
(
)
A.直接推导
B.广义推导
C.最左推导
D.规范推导
3. 设有文法 G[S]=({S,B},{b},{S→bB | b,B→bS},S),该文法所描述的语言是(
)
A.L(G[S])={bn| n ≥0}
B. L(G[S])={b2n | n ≥ 0}
C. L(G[S])={b2n+1 | n ≥ 0}
backpatch(B1.F, M.code); B.T = merge(B1.T, B2.T); B.F = BБайду номын сангаас.F; } B → B1 && M B2 {
} B → E1 ROP E2 {
} M→ ε {
}
第8页共8页
4. 简述代码优化的目的和意义?(5 分)
5. 对以下文法,求该文法的 FIRST 集和 FOLLOW 集。(6 分) S→eA | BA A→DB | ε B→dB | ε D→a | bd
FIRST
FOLLOW
S
A
B
D
得分
四、对以下文法(共 10 分) S → AB | BaA A → bAbB | bABb | aB B → BaA | ab | ba
1、画出句型 baaAaaab 的语法树。(3 分)
第4页共8页
学院
姓名
学号
任课老师
考场教室__________选课号/座位号
………密………封………线………以………内………答………题………无………效……
2、求句型 baaAaaab 的短语、直接短语、句柄、最左素短语。(7 分) 短语:
直接短语:
句柄:
写出拓广文法后的所有产生式(2 分);确定 LR(0)项目集规范族(6 分),构造非终结符的 FOLLOW 集 合(1 分);构造相应的 SLR(1)分析表(6 分)。
1、写出拓广文法后的所有产生式。(2 分)
(0)
(2)
(3)
(4)
(5)
(6)
(7)
2、确定文法 LR(0)项目集规范族。(6 分) I0= I1= I2= I3= I4= I5= I6= I7= I8= I9= I10=
A.自左至右
B.自顶向下
C.自底向上
D.自右向左
7. 运行阶段的存储组织和管理的目的是(
)
(1)提高编译程序的运行速度
(2)提高目标程序的运行速度
(3)为运行阶段的存储分配做准备
A.(1)(2)
B.(1)(3)
C.(2)
D.(1)(2)(3)
8. 如果文法 G 是无二义的,则它的任何句子 α(
)
A.最左推导和最右推导对应的语法树必定相同
D. L(G[S])={b2n+1 |n ≥ 1}
4. 项目 Aα·称为(
),其中 A∈VN,A 不是开始符。
A.移进项目
B.归约项目
C.待约项目
D.接受项目
5. 编译程序生成的目标程序(
)是机器语言的程序。
A.一定
B.不一定
C.某种情况下一定
D.某种情况下不一定
6. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于( )分析方法。
End;
2. 数据类型聚合方式有几种?举例说明(6 分) 3. 在抽象机 GAM 中,单元 P 运行结束后返回调用单元的 3 条指令如何实现?(3 分)
第3页共8页
学院
姓名
学号
任课老师
考场教室__________选课号/座位号
………密………封………线………以………内………答………题………无………效……
3、构造非终结符的 FOLLOW 集合(1 分)
FOLLOW(S)={
} FOLLOW(A)={
}
FOLLOW(B)={
} (1 分)
第6页共8页
学院
姓名
学号
任课老师
考场教室__________选课号/座位号
………密………封………线………以………内………答………题………无………效……
4、构造 SLR(1)分析表。(6 分)
学院
姓名
学号
任课老师
考场教室__________选课号/座位号
………密………封………线………以………内………答………题………无………效……
电子科技大学 2014 -2015 学年第 2 学期期 末 考试 A 卷
课程名称: 编译原理 考试形式: 闭卷 考试日期: 2015 年 月 日 考试时长:120 分钟 课程成绩构成:大班 平时 10 %, 期中 10 %, 实验 10 %, 期末 70 % 本试卷试题由___七_ _部分构成,共__8___页。
program main (input,output); procedure p(x,y,z); begin y∶=y+1; z∶=z+x; end;
begin a∶=2; b∶=3; p(a+b,a,a);
print a end.
); )。
2. 一个对象(或事物)与其某种属性建立起某种联系的过程称为(
)检查。
得分
三、简答题( 共 26 分)
1.将下列语句翻译成中间代码(6 分): While a>0 ∨ b<0 do
第2页共8页
学院
姓名
学号
任课老师
考场教室__________选课号/座位号
………密………封………线………以………内………答………题………无………效……
Begin X:=X+1; if a>0 then a:=a-1 else b:=b+1
B.T = ip; emit(goto, 0); } B → false {
} B → ! B1 {
B.T = B1.F; B.F = B1.T; } B → B1 || M B2 {
第7页共8页
学院
姓名
学号
任课老师
考场教室__________选课号/座位号
………密………封………线………以………内………答………题………无………效……