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. 什么是编译程序?编译程序是将源语言程序翻译为目标语言程序的程序。
编译原理(A卷)答案
湖北第二师范学院2014-2015学年度第二学期《编译原理》课程考试答案(A卷) 院系:计算机学院专业班级:学生姓名:学号:考试方式:闭卷………………………………………………………………………………………………………………一、填空题(每空1分,共10分)1.词法分析程序是逐个识别(字符),形成单词级别的(字符)串,词法分析程序输出的数据是(2 )个,它们分别是(种别编码)和(自身值)。
2.语法分析程序是逐个识别(单词),形成语句级别的(单词)串。
3.一遍扫描的编译方法,是以语法分析程序为主,调用(词法分析)程序、语义分析程序,再由语义程序调用中间代码生成、中间代码优化等。
4.程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即(静态存储分配)方案和(动态存储分配)方案。
二、综合题(共90分)1.(5分)将下面文法改写成3型文法:G=({S,A,B},{a,b,c,d,e},P,S)其中:P={S→abcA|edB,A→beB,B→d}答案:改写后的3型文法是(5分)G=({S,A,B,C,D,E,F},{a,b,c,d,e},P,S)其中:P={S→aC|eF, C→bD,D→cA,A→bE,E→eB,F→dB,B→d}2.(5分)给出下面表达式的四元式形式:a*b+(c-d)/e答案:四元式形式(5分)(*,a,b,t1)(-,c,d,t2)(/,t2,e,t3)(+,t1,t3,t4)3.(30分)给定文法 G[E] :E → E+T | E-T | TT → T*F | T/F | FF → (E) | i该文法是 LL(1) 文法吗?为什么?不是的能否改造为LL(1)文法,如果能够改造,给出改造后的文法,并给出改造后文法是LL(1)文法的证明过程。
无论改造前还是改造后的文法,如果是LL(1)文法,则给出(i+i)*i的分析过程(要求给出详细过程,并给出LL(1)的分析表)答案:(1)该文法不是LL(1)文法,因为文法的产生式含有左递归(2分)(2)该文法可改造为LL(1)文法,即消除左递归,改造后的文法是(3分)E → TE’E’→ +TE’ | -TE’ | εT → FT’T’→ *FT’ | /FT’ |εF → (E) | i证明改造后的文法是LL(1)文法的过程A.求可达ε的非终结符(1分)可达的是E’,T’B.求每个非终结符的First集合(3分)First(E)={ (,i}First(E’)={+,-}First(T)={ (,i}First(T’)={*,/}First(F)={ (,i}C.求每个产生式右部字符串的First集合(3分)First(TE’)={ (,i}First(+TE’)={+}First(-TE’)={-}First(FT’)={ (,i}First(*FT’)={*}First(/FT’)={/}First((E))={ ( }First(i)={ i }First(ε)={ ε}D.求每个非终结符的Follow集合(3分)Follow(E)={$,)}Follow(E’)= Follow(E)={$,)}Follow(T)=First(E’) ∪ Follow(E)={$,+,-,)}Follow(T’)= Follow(T)={$,+,-,)}Follow(F)= First(T’) ∪ Follow(T)={$,+,-, *,/,)}E.求每个非终结符的Select集合(5分)Select(E → TE’)=First(TE’)={ (,i }Select(E’→ +TE’)=First(+TE’)={ + }Select(E’→ -TE’)=First(-TE’)={ - }Select(E’→ε)=First(ε)-{ ε} ∪ Follow(E’)={ $,) }Select(T → FT’)=First(FT’)={ (,i }Select(T’→ *FT’)=First(*FT’)={ * }Select(T’→ /FT’)=First(/FT’)={ / }Select(T’→ε)=First(ε)-{ ε} ∪ Follow(T’)={ $,+,-,) }Select(F → (E))=First((E))={ ( }Select(F → i)=First(TE’)={ i }F.求有多个产生式的非终结符Select集合的交集(2分)显然有Select(E’→ +TE’)∩Select(E’→ -TE’) ∩Select(E’→ε)=ΦSelect(T’→ *FT’) ∩Select(T’→ /FT’) ∩Select(T’→ε)= ΦSelect(F → (E))= ∩Select(F → i)= Φ所以改造后的文法是LL(1)文法4.(10分)对下面的NFA进行确定化答题:第1第25.(15分)给定文法 G[E] :E → E+T | E-T | TT → T*F | T/F | F该文法是算符优先文法吗?是,则构造该文法的算符优先关系矩阵,并给出(i+i)*i的分析过程(要求给出详细过程)答案:(1)该文法是算符优先文法(1分)(2)构造该文法的算符优先矩阵A.求各非终结符的FirstVT集合(3分)FirstVT(E)={+,-,*,/,(,i}FirstVT(T)={*,/,(,i}FirstVT(F)={(,i}B.求各非终结符的LasttVT集合(3分)LastVT(E)={ +,-,*,/,),i }LastVT(T)={ *,/,),i }LastVT(F)={ ),i }C.构造优先关系表(4分)6.(25分)给定文法 G[E] :T → T*F | FF → (E) | i该文法是LR(0)文法吗?是,则构造该文法的LR(0)分析表,并给出(i+i)*i的分析过程,不是的,是SLR(1)文法吗,是,则构造该文法的SLR(1)分析表,并给出(i+i)*i的分析过程。
编译原理试题及答案
编译原理试题及答案一、选择题1. 编译器的主要功能是什么?A. 将高级语言代码翻译成机器语言代码B. 进行程序调试C. 进行代码优化D. 管理程序运行时的内存分配答案:A2. 词法分析器的主要任务是什么?A. 将源代码分解成多个语句B. 将源代码分解成多个词素C. 检查源代码的语法正确性D. 将词素转换为相应的语法单位答案:B3. 下列哪个是自顶向下的语法分析方法?A. LL(1)分析法B. LR(1)分析法C. LALR(1)分析法D. GLR分析法答案:A4. 语义分析的主要任务是什么?A. 检查程序的语法正确性B. 检查程序的类型正确性C. 将源代码转换为目标代码D. 进行程序的优化答案:B5. 代码生成阶段的主要任务是什么?A. 将语法树转换为目标代码B. 进行程序的优化C. 检查程序的类型正确性D. 将源代码分解成多个词素答案:A二、简答题1. 简述编译过程的主要阶段。
答案:编译过程主要分为四个阶段:词法分析、语法分析、语义分析和代码生成。
词法分析将源代码分解成词素,语法分析检查源代码的语法结构,语义分析检查源代码的语义正确性,代码生成将源代码转换为目标代码。
2. 什么是中间代码?它在编译过程中起到什么作用?答案:中间代码是一种介于源代码和目标代码之间的代码形式,它通常具有更接近于机器语言的特性,但仍然保持一定的抽象级别。
中间代码在编译过程中起到桥梁的作用,它使得代码优化和目标代码生成更加方便和高效。
三、论述题1. 论述编译器优化的几种常见方法。
答案:编译器优化主要包括以下几种方法:常量折叠、死代码消除、公共子表达式消除、循环优化、代码内联、寄存器分配等。
这些优化方法可以提高程序的执行效率,减少资源消耗,提高程序的运行速度。
结束语:本试题涵盖了编译原理的基本知识点,包括编译器的功能、编译过程的主要阶段、中间代码的作用以及编译器优化的方法。
希望考生能够通过本试题加深对编译原理的理解和掌握。
编译原理期末考试试卷A卷
试卷答题时限: 分钟 考试形式:闭卷笔试得分统计表:一、单项选择题(请从 个备选答案中选择最适合的一项,每小题 分,共 分)编译程序是对( )✌ 汇编程序的翻译 高级语言程序的解释执行 机器语言的执行 高级语言的翻译 词法分析器的输出结果是( )✌.单词的种别编码 .单词在符号表中的位置.单词的种别编码和自身值 .单词自身值在规范规约中,用( )来刻画可规约串。
✌.直接短语 .句柄 .最左素短语 .素短语与正规式☎♋✉ ♌✆ ✉ ☎♍ ♎✆等价的正规式是( )✌.♋✉ ☎♍ ♎✆ ♌☎♍ ♎✆.♋✉ ☎♍ ♎✆ ✉ ♌☎♍ ♎✆ ✉.♋✉ ☎♍ ♎✆ ♌✉ ☎♍ ♎✆ .☎♋ ♌✆ ✉ ♍ ☎♋ ♌✆ ✉ ♎ 若项目集✋ 含有✌✹α·,则在状态 时,仅当面临输入符号♋∈☞☹☹☎✌✆时,才采取✌✹α·动作的一定是( )✌.☹✌☹文法 .☹☎✆ 文法 .☹☎ ✆文法 . ☹☎ ✆文法 四元式之间的联系是通过( )实现的。
✌ 指示器 临时变量 符号表 程序变量.文法☝: ✹ ⌧ ⌧ ⍓所识别的语言是( )✌.⌧⍓⌧ .☎⌧⍓⌧✆ ✉ .⌧⏹⍓⌧⏹☎⏹≥ ✆ .⌧✉⍓⌧✉有一语法制导翻译如下所示:✹ ♌ ✌♌ ☐❒♓⏹♦ ❽ ❾❝✌✹☎ ☐❒♓⏹♦ ❽❾❝✌✹♋ ☐❒♓⏹♦ ❽ ❾❝✹✌♋✆ ☐❒♓⏹♦ ❽ ❾❝若输入序列为♌☎☎☎♋♋✆♋✆♋✆♌,且采用自下而上的分析方法,则输出序列为( )✌. . .关于必经结点的二元关系,下列叙述不正确的是( )✌.满足自反性 .满足传递性 .满足反对称型 .满足对称性 .错误的局部化是指( )。
.当发现错误时,跳过错误所在的语法单位继续分析下去.当发现错误时立即停止编译,待用户改正错误后再继续编译二、判断题(每小题 分,共 分)文法☝的一个句子对应于多个推导,则☝是二义性的。
电子科技大学编译原理--A1答案--网络教育
《计算机编译原理》试卷A1参考答案一、单项选择题(每小题1分,共25分)1、语言是___A___A、句子的集合B、产生式的集合C、符号串的集合D、句型的集合2、编译程序前三个阶段完成的工作是___C___A、词法分析、语法分析和代码优化B、代码生成、代码优化和词法分析C、词法分析、语法分析、语义分析和中间代码生成D、词法分析、语法分析和代码优化3、一个句型中称为句柄的是该句型的最左___D___A、非终结符号B、短语C、句子D、直接短语4、下推自动机识别的语言是___C___A、0型语言B、1型语言C、2型语言D、3型语言5、扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即___B___A、字符B、单词C、句子D、句型6、对应Chomsky四种文法的四种语言之间的关系是___B___A、L0⊂L1⊂L2⊂L3B、L3⊂L2⊂L1⊂L0C、L3=L2⊂L1⊂L0D、L0⊂L1⊂L2=L37、词法分析的任务是___A___A、识别单词B、分析句子的含义C、识别句子D、生成目标代码8、常用的中间代码形式不含___D___A、三元式B、四元式C、逆波兰式D、语法树9、代码优化的目的是___C___A、节省时间B、节省空间C、节省时间和空间D、把编译程序进行等价交换10、代码生成阶段的主要任务是___C___A、把高级语言翻译成汇编语言B、把高级语言翻译成机器语言C、把中间代码变换成依赖具体机器的目标代码D、把汇编语言翻译成机器语言11、一个上下文无关文法G包括四个组成部分:一组终结符,一组非终结符,一个开始符号,以及一组___B___。
A、字符串B、产生式C、数字符号D、文法12、程序的基本块是指___D___。
A、一个子程序B、一个仅有一个入口和一个出口的语句C、一个没有嵌套的程序段D、一组顺序执行的程序段,仅有一个入口和一个出口13、高级语言编译程序常用的语法分析方法中,递归下降分析法属于___B___分析方法。
《编译原理》考试试题及答案(汇总)
《编译原理》考试试题及答案(汇总)一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)1.编译程序是对高级语言程序的解释执行。
(× )2.一个有限状态自动机中,有且仅有一个唯一的终态。
(×)3.一个算符优先文法可能不存在算符优先函数与之对应。
(√ )4.语法分析时必须先消除文法中的左递归。
(×)5.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。
(√)6.逆波兰表示法表示表达式时无须使用括号。
(√ )7.静态数组的存储空间可以在编译时确定。
(×)8.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。
(×) 9.两个正规集相等的必要条件是他们对应的正规式等价。
(× )10.一个语义子程序描述了一个文法所对应的翻译工作。
(×)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分) 1.词法分析器的输出结果是_____。
A.( ) 单词的种别编码B.( ) 单词在符号表中的位置C.( ) 单词的种别编码和自身值D.( ) 单词自身值2.正规式M 1 和M 2 等价是指_____。
A.( ) M1和M2的状态数相等B.( ) M1和M2的有向边条数相等C.( ) M1和M2所识别的语言集相等D.( ) M1和M2状态数和有向边条数相等3.文法G:S→xSx|y所识别的语言是_____。
A.( ) xyx B.( ) (xyx)* C.( ) xnyxn(n≥0) D.( ) x*yx*4.如果文法G是无二义的,则它的任何句子α_____。
A.( )最左推导和最右推导对应的语法树必定相同B.( ) 最左推导和最右推导对应的语法树可能不同C.( ) 最左推导和最右推导必定相同D.( )可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握______。
编译原理试题及答案
华中科技大学武昌分校《编译原理》试卷A专业班级:_________学号:_________姓名:__________总分一、单项选择题(共10小题,每小题2分) (题分 20分)1.语言是A .句子的集合B .产生式的集合C .符号串的集合D .句型的集合 2.编译程序前三个阶段完成的工作是 A .词法分析、语法分析和代码优化 B .代码生成、代码优化和词法分析C .词法分析、语法分析、语义分析和中间代码生成D .词法分析、语法分析和代码优化3.一个句型中称为句柄的是该句型的最左A .非终结符号B .短语C .句子D .直接短语 4.下推自动机识别的语言是A .0型语言B .1型语言C .2型语言D .3型语言5.扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即A . 字符B .单词C .句子D .句型 6.对应Chomsky 四种文法的四种语言之间的关系是 A .L 0⊂L 1⊂L 2⊂L 3 B .L 3⊂L 2⊂L 1⊂L 0 C .L 3=L 2⊂L 1⊂L 0 D .L 0⊂L 1⊂L 2=L 3 7.词法分析的任务是A .识别单词B .分析句子的含义C .识别句子D .生成目标代码 8.常用的中间代码形式不含A .三元式B .四元式C .逆波兰式D .语法树 9. 代码优化的目的是A .节省时间B .节省空间C .节省时间和空间D .把编译程序进行等价交换装 订 线得分10.代码生成阶段的主要任务是 A .把高级语言翻译成汇编语言B .把高级语言翻译成机器语言C .把中间代码变换成依赖具体机器的目标代码D .把汇编语言翻译成机器语言二、填空题(本大题共5小题,每小题2分)(题分 10分)1.编译程序首先要识别出源程序中每个( ),然后再分析每个( )并翻译其意义。
2.编译器常用的语法分析方法有( )和( )两种。
3.通常把编译过程分为分析前端与综合后端两大阶段。
免费在线作业答案西安交通大学15年7月课程考试《编译原理》作业考核试题答案
西安交通大学15年7月课程考试《编译原理》作业考核试题答案西安交通大学15年7月课程考试《编译原理》作业考核试题试卷总分:100 测试时间:--单选题判断题其他题简答题一、单选题(共 10 道试题,共 30 分。
)V1. 算符优先分析法每次都是对( )进行归约:A. 句柄B. 最左素短语C. 素短语D. 简单短语正确答案: B 满分:3 分编译原理期末考试题2. 表达式-a+b*(-c+d)的逆波兰式是A. ab+-cd+-*;B. a-b+c-d+*;C. a-b+c-d+*;D. a-bc-d+*+;正确答案: D 满分:3 分3. 以________作为输出,允许自程序单独编译。
A. 绝对机器代码;B. 可再定位机器语言;C. 汇编语言程序;D. 中间语言;正确答案: C 满分:3 分4. 在下述的编译方法中,自顶向下的分析方法有A. 简单优先分析B. 算符优先分析C. 递归下降分析D. 预测分析技术E. LR(K)分析F. SLR(k)分析G. LL(k)分析H. LALR(K)分析正确答案: C 满分:3 分5. 以_______作为输出,允许自程序单独编译。
A. 绝对机器代码;B. 可再定位机器语言;C. 汇编语言程序;D. 中间语言;正确答案: C 满分:3 分6. 简单优先分析每次归约的是()A. 最左直接短语B. 直接短语C. 最左素短语)。
(D. 控制结点正确答案: C 满分:3 分7. 为了便于优化处理,三地址代码可以表示成A. 三元式B. 四元式C. 后缀式D. 间接三元式正确答案: D 满分:3 分8. 一个数据类型通常包括三种要素,下面不是:A. 用于区别这种类型的数据对象的属性;B. 这种类型的数据对象可以具有的值;C. 对这种类型的数据对象的内存分配;D. 可以作用于这种类型的数据对象的操作;正确答案: C 满分:3 分9. LR语法分析栈中存放的状态是识别_______的DFA状态。
编译原理期末考试试卷(A卷)
编译原理期末考试试卷(A卷)一、简述编译程序的工作过程。
( )二、构造下列正规式相应的 ☞✌(用状态转换图表示)( )( ) ( )✉( ) ✉✉✉✉( )●♏♦♦♏❒(●♏♦♦♏❒ ♎♓♑♓♦)✉三、给出下面语言的相应文法:( )☹ ♋⏹ ♌⏹ ⏹≥ ❝ ☹ ♋⏹♌❍⏹♋❍ ⏹≥ ,❍≥ ❝四、对下面的文法☝:→♋ ♌ (❆)❆→❆, ☎✆ 消去文法的左递归,得到等价的文法☝;☎✆ 判断文法☝是否☹☹( )文法,如果是,给出其预测分析表。
( )五、设有文法☝☯✌:✌→ ♍ ♑→♌☜ ε→ ♋ ♍♋→♎ ε☜→♑✌♐ ♍☎✆计算该文法的每一个非终结符的☞✋❆集和☞☹☹集;☎✆试判断该文法是否为☹☹( )文法。
( )六、对表达式文法☝:☜ → ☜❆ ❆❆ → ❆✉☞ ☞☞ → ☎☜✆ ✋( )造各非终结符的☞✋❆✞❆和☹✌❆✞❆集合;( )构造文法的算符优先关系表。
( )七、有定义二进制整数的文法如下:☹ →☹ → 构造一个翻译模式,计算该二进制数的值(十进制的值)。
( )简述编译程序的工作过程。
( )编译程序的工作过程,是指从输入源程序开始到输出目标程序为止的整个过程,是非常复杂的,就其过程而言,一般可以划分为五个工作阶段:①词法分析,对构成源程序的字符串进行扫描和分解,识别出一个个的单词;②语法分析,根据语言的语法规则,把单词符号串分解成各类语法单位;③语义分析与中间代码产生,即对各类语法单位,分析其汉一并进行初步翻译;④代码优化,以期产生更高效的代码;⑤目标代码生成,把中间代码变换成特定机器上的低级语言指令形式。
二、构造下列正规式相应的 ☞✌(用状态转换图表示)( ) ( ) ( )✉ ( ) ✉✉✉✉( )( ( ) ☎✆三、给出下面语言的相应文法:( )☹ ♋⏹ ♌⏹ ⏹≥❝ ☹ ♋⏹♌❍⏹♋❍ ⏹≥ ,❍≥ ❝●♏♦♦四、对下面的文法☝:→♋ ♌ (❆) ❆→❆, ☎✆ 消去文法的左递归,得到等价的文法☝;☎✆ 判断文法☝是否☹☹( )文法,如果是,给出其预测分析表。
编译原理试题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. 什么是编译程序?编译程序是将源语言程序翻译为目标语言程序的程序。
2015编译原理复习资料
什么是语义分析程序?请解释其功能及其输入 和输出。
第二章要点
扫描程序的功能及其输入输出。 正则表达式
什么是由r生成的语言,字母表,元符号 三种基本操作
有限自动机
定义 DFA NFA
第二章要点
※正则表达式=>NFA=>DFA=>程序
RE =>NFA Thompson’s construction NFA=>DFA 子集构造法 DFA的化简 DFA=>程序 三种方式+Lex
编译过程中,语法分析器的任务是_______。
①分析单词是怎样构成的
②分析单词串是如何构成语句和说明的
③分析语句和说明是如何构成程序的
④分析程序的结构
A、②和③
B、④
C、②③④ D、①②③④
第三章
已知文法G[S]: S::=a | (T) T::=T,S | S
给出句子(a,(a,a))的最左推导并画出 语法树。
第四章
(20分)已知文法G[S]为 SSAT|T A+|T (S) | k
1.通过消除左递归和提取左因子(回溯),给出与G[S]等 价的文法G’[S]; 2.计算文法G’[S]非终结符的First集合和Follow集合; 3.判断文法G’[S]是否为LL(1)文法; 4.如果文法G’[S]是LL(1)文法,构造G’[A]的分析表; 5.给出输入串k-(k+k)的分析过程。
标识符)
已知正则表达式a(ba)*
(1)构造该正则表达式所对应的NFA; (2)由NFA构造DFA; (3)对DFA进行最小化。
第三章 要点
分析程序的功能及其输入输出。 常见的高级语言的文法(上下文无关文法)、
表示方式(BNF)以及其特点(包含递归)。 推导 分析给定文法的:终结符、非终结符、生成的
- 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页
学院
姓名
学号
任课老师
考场教室__________选课号/座位号
………密………封………线………以………内………答………题………无………效……