10级编译原理A卷

合集下载

编译原理考试试卷+答案A卷

编译原理考试试卷+答案A卷

编译原理期末试卷1.给出LL(1)分析方法的总控流程图。

(5分)2.按指定类型给出下列语言的文法。

(10分)(1) L1={ ca n b m| n≥0,m>0 } 用正规文法。

S→cA A→aA|aB|a B→bB|b(2) L2={ 0n a 1n b m| n>0,m ≥0} 用二型文法。

S→0S1B|0a1 B→bB|c3.文法G[S]为:(10分)S→SdT | T T→T<G | G G→(S) | a试给出句型adT<(S)的短语、简单(直接)短语、句柄和最左素短语。

短语:a, T, (S), T<(S), adT<(S) 直接短语:a, (S) 句柄:a 最左素短语:a 4.将文法G[S] 改写为等价的G'[S],使G'[S]不含左递归和左公共因子。

(5分)S→[A A→B]|AS B→aB|+aS→[A A→B]A’A’→SA’|εB→aB|+a5.判断下面文法是否为LL(1)文法,若是,请构造相应的LL(1)分析表,并写出aabbb 的分析过程。

(10分)S→aD D→STe|ε T→bM M→bH H→M|ε6.简述编译程序概念及构成。

(10分)编译程序是现代计算机系统的基本组成部分.从功能上看,一个编译程序就是一个语言翻译程序,它把一种语言(称作源语言)书写的程序翻译成另一种语言(称作目标语言)的等价的程序.7.设G=(V N,V T,P,<S>)是上下文无关文法,产生式集合P中任意一个产生式应具有什么样的形式?若G是正则文法呢?(10分)2型(上下文无关):规则形式:A→βA ∈VN,β∈ (VT⋃VN)*3型(右线性):A→aB或A→a(右线性)A→Ba或A→a (左线性)a ∈VT⋃{ε}8.为文法G[E]:(10分)V → N | N[E] E → V | V+E N → i构造递归下降识别程序E( ){ V( ); if symbol = ‘+’E( ); }V( ){ N(); if symbol = ‘[’ { E(); if symbol != ‘]’error(); }N( ){ if symbol != ‘i ’ error(); }/* 这样的写法很简化,当文法提取左公因子后,需要计算相关非终结符的Follow 集,才能确定什么时候用空串规则推导。

编译原理2010a

编译原理2010a

计算机科学与技术 专业 闭卷 120分钟- - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - (装订线)一、填空题(每空1分,总计20分)1.对编译程序而言,输入数据是 ,输出是 。

2.确定有限自动机是个 ,通常表示为 。

3.二义性文法中,有的文法的二义性是不能消除的,这类文法被称为 。

4.算符优先分析方法和LR 分析方法都是自下而上的分析方法,算符优先分析方法是通 过 刻画可规约串的,而LR 分析方法是通过 刻画可规约串的。

5. 文法符号的属性有两种,一种称为 ,另一种称为 。

6.语法制导翻译的方法就是为每个产生式配上一个 ,并在语法分析的同时执行之。

7. 程序语言中参数传递的方式主要有 , , 三种。

8.编译程序生成的目标代码通常分为三类,包括 , 和 。

8. 循环优化包括 、 和删除归纳变量。

9.错误处理中,跳过有错误的那个语法成分,以便把错误限制在一个尽可能小的局部范围内,从而减少因为某一个错误而引起的一连串假错。

这种错误的处理方法叫做 。

10.编译过程中大部分时间用在 。

二.选择题(每题1分,总计10分)1.编译程序是对( )。

A.汇编程序的翻译B.高级语言程序的解释执行-- - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - (装订线)2.正规表达式M1和M2等价是指()。

A.M1和M2的状态数相等B.M1和M2的有向边条数相等C.M1和M2所识别的语言集相等D.M1和M2的状态数和有向边条数都相等3.已知语言L={a n bb n|n≥1},则下述文法中,()可以产生语言L。

A. Z→aZb|aAb|bB. A→aAb|bC. Z→aABD. Z→aAbA→aAb|b A→aA|a A→aAb|bB→bB|b4.homaky把文法分为四种类型,即0型,1型,2型,3型其中3型文法又叫做()。

2009-2010编译原理A卷及答案汇总

2009-2010编译原理A卷及答案汇总

南昌航空大学2009 —2010 学年第二学期期末考试课程名称:编译原理 闭卷 A 卷 120 分钟一、 填空题(每空2分,共24分)1、一个上下文无关文法G 包括四个组成部分:一组终结符号,一组非终结符号,一个______________,以及一组产生式。

(2分)2、 自下而上分析方法的基本思想是:从输入符号串开始,利用文法规则逐步进行归约,直至归约到文法的______________。

(2分)3、自顶向下的语法分析方法的基本思想是:从文法的_____ _开始,根据给定的输入串并按照文法的产生式一步一步的向下进行_____ _,试图推导出文法的___ ___,使之与给定的输入串______。

(8分)4、S -属性文法中的每个文法符号,只含有______________ 属性。

(2分)5、对于文法的每个产生式都配备了一组属性的计算规则,称为 _____ 。

(2分)6、通过一便扫描来产生布尔表达式的代码主要问题在于,当生成某些转移语句时可能不知道该语句将要转移到的标号究竟是什么。

为了解决这个问题可以采用______________技术。

(2分)7、a*(b-c)的后缀式为______________。

(2分)8、假定G 是一个文法,S 是它的开始符号。

如果S α*⇒,则称α是一个______________。

仅含______________的句型是一个句子。

(2分)二、选择题(每题2分,共20分)1、_____是两类程序语言处理程序。

A.高级语言程序和低级语言程序B.解释程序和编译程序C.编译程序和操作系统D.系统程序和应用程序2、一个句型中的最左_____称为该句型的句柄。

A.短语B.简单短语C.素短语D.终结符号3.若一个文法是递归的,则它所产生的语言的句子_____。

A.是无穷多个B.是有穷多个 C.是可枚举的D.个数是常量4、在自底向上的语法分析方法中,分析的关键是_____。

A.寻找句柄B.寻找句型C.消除递归D.选择候选式5、若a为终结符,则A->α·aβ为_____项目。

编译原理试卷A参考答案

编译原理试卷A参考答案

《编译原理》试卷A 参考答案注意事项:1. 请考生按要求在试卷装订线内填写姓名、学号和年级专业。

2. 请仔细阅读各种题目的回答要求,在规定的位置填写答案。

3. 不要在试卷上乱写乱画,不要在装订线内填写无关的内容。

4. 满分100分,考试时间为120分钟。

题号一二三四总分统分人得分一、单项选择题(每小题2分共20分)1.中间代码生成所依据的是语言的(C )。

A: 词法规则B: 语法规则C: 语义规则D: 产生式规则2.词法分析器的加工对象是(C )。

A: 中间代码B: 单词C: 源程序D: 元程序3.同正则表达式a*b*等价的文法是(C )。

A: G1: S aS|bS|εB: G2: S aSb|εC: G3: S aS|Sb|εD: G4: S abS|ε4.文法G[A]:A→b A→bH H H →BA B→Ab H →a 不是(B ):A: 2型文法B: 正规文法C: 0型文法D: 1型文法5.算符优先分析每次都是对(算符优先分析每次都是对( B B B )进行规约。

)进行规约。

A: A: 短语短语短语 B: B: B: 最左素短语最左素短语最左素短语 C: C: C: 素短语素短语素短语 D: D: D: 句柄句柄6.一个LR (1)文法合并同心集后,如果不是LALR(1)文法必定存在(B ):A: 移进-归约冲突B: 归约-归约冲突C: 识别句型D: 收集类型信息7.下列不属于类型检查范畴的描述是(C )。

A: 运算符的分量类型的相容性B: 形参和实参类型的相容性C :形参和实参的个数的一致性D: 赋值语句的左右部类型的相容性8.( B B )不是)不是DFA 的成分。

A:A:有穷字母表有穷字母表有穷字母表 B: B: B:初始状态集合初始状态集合C:C:终止状态集合终止状态集合终止状态集合 D: D: D:有限状态集合有限状态集合9.若B 为非终结符,则A α.B β为(为( B B B )项目。

大学课程《编译原理》考试试卷A卷及答案

大学课程《编译原理》考试试卷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. 边翻译边执行和不生成目标代码。

中山大学软件学院10级编译原理期末试卷A

中山大学软件学院10级编译原理期末试卷A

(2)
【参考答案】
将图 4-2 的 DFA 进行最小化优化,优化后的 DFA 如图 4-3 所示,转换状态如表 4-2 所示。
Page 2 of 9
DFA 1,2,4
3
图 4-3 表 4-2
优化后 DFA 状态 A B
【评分标准】 本小题 8 分。 如图 4-3 所示:优化后的 DFA 正确,但状态数多于 2 或转换关系不完全正确,得 5 分;
【评分标准】 答对此部分可得 2 分。
G’的 LR(0)项目集族及识别活前缀的 DFA 如下图 7-1 所示:
图 8-1 在 I0 中:A→.aAd 和 A→.aAb 为移进项目,A→.为归约项目,存在移进-归约冲突,因 此所给文法不是 LR(0)文法。 在 I0 与 I2 中:Follow(A)∩{a}= {d, b, $}∩{a}=φ,所以在 I0、I2 中的移进-归约冲突可 以由 Follow 集解决,所以 G 是 SLR(1)文法。
【评分标准】 答对此部分可得 6 分。如果答案不正确,但能正确地给出分析过程,可酌情给分。
(2)
【参考答案】
构造的 SLR(1)分析表如下表 8-1 所示: 表 8-1
State
Action
a
d
b
0
S2
r3
r3
12Biblioteka S2r3r3
3
S4
S5
4
r1
r1
5
r2
r2
Goto
$
A
r3
1
Acc
r3
3
r1 r2
对输入串 ab#的分析过程如下表 7-2 所示:
FIRST(F’)={ ,ε}
【评分标准】 答对此部分可得 5 分。

编译原理期末A试卷答案

编译原理期末A试卷答案

黄冈师范学院2012—2013学年度第一学期期末试卷参考答案考试课程:编译原理考核类型:考试A卷考试形式:闭卷出卷教师:牛冀平考试专业:计算机科学与技术,软件工程考试班级:计科201001班,软件201001班一、填空(每空0.5分,共 10分)1、编译程序的功能是是对(高级语言)进行翻译,使之生成目标代码。

2、编译程序的工作过程一般划分为5个阶段:(词法分析)、语法分析、语义分析与中间代码生成,(代码优化)及目标代码生成。

另外还有表格管理和(出错处理)。

3、一个上下文无关文法所含四个组成部分是一组终结符号、一组(非终结符号)、一个开始符号、(一组产生式)。

4、设G是一个给定的文法,S是文法的开始符号,如果S=> x(其中x∈V*),则称x 是文法的一个(句型)。

5、规范归约中的可归约串是指句柄,算符优先分析中的可归约串是指(最左素短语)。

6、在编译过程中,可采用的中间代码形式有()、()、()等。

(三元式、间接三元式、四元式、逆波兰式、抽象语法树)(任选三个即可)7、语法分析最常用的两类方法是(自上而下)和(自下而上)分析法。

8、表达式(a+b)*c的后缀表达式为(ab+c*)。

9、符号表的结构一般有(线性表)、(有序表)、(散列表或哈希表)等。

分别使用的查找方法有(顺序查找)、(折半查找)和(哈希法查找)10、代码优化的目的是(减少代码的时空开销)。

11、寄存器是CPU内部的(存储单元),其访问时间小于CPU对内存的访问时间。

12、如果一个句子存在两棵不同的语法树就说明该句子是(二义性)的。

二、选择题(每题1分,共10分)1、文法的开始符号经多步推导产生的文法符号序列(仅包含终结符)是文法的(D )。

A.短语B.句柄C.句型D.句子2、构造编译程序应掌握(D)。

A.源程序B.目标语言C.编译方法D.以上三项都是3、不属于循环优化的主要方法的是(B)。

A.强度削弱B.删除无用赋值C.删除归纳变量D.代码外提4、使用(A)可以定义一个程序的含义。

编译原理试卷A(含答案)

编译原理试卷A(含答案)
(5)编译过程通常为词法分析、语法分析、词法分析、语义分析与中间代码生成、优化、目标代码生成几个阶段。词法分析不用了(F)
(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)·(

10级编译原理A卷

10级编译原理A卷

贵州大学计算机科学与信息学院2012-2013 学年第二学期考试试卷A《编译原理》注意事项:1. 请考生按要求在试卷装订线内填写姓名、学号和年级专业。

2. 请仔细阅读各种题目的回答要求,在规定的位置填写答案。

3. 不要在试卷上乱写乱画,不要在装订线内填写无关的内容。

4. 满分100分,考试时间为120分钟。

一、填空题(每空1分,共10分)1.把源程序翻译成目标程序然后在投入运行的翻译程序称为________________;一边解释一边执行的翻译程序称为________________。

2.字符串hello的真前缀包括________________________________。

3.有时为了完成一个单词的识别,需要超前读入一个字符,当发现该字符不属于当前单词时,应该予以________________。

4.正规表达式与________________等价,都可以用来描述单词的结构。

5.________________的语法分析从文法的开始符号出发,逐步推导出输入字符串;而________________的语法分析从输入字符串逐步归约到文法的开始符号。

6.文法如果含有________________会导致自顶向下的语法分析陷入死循环。

7.合并同心项目集可能产生________________冲突,但不会产生________________冲突。

二、选择题(每小题2分,共20分)1.()程序可以直接被计算机理解和执行A. 机器语言B. 汇编语言C. 高级语言D.面向对象的语言2.()不能得出文法一定是二义性文法A. 文法的一个句子有两棵不同的分析树B. 文法的一个句子有两个不同的最左推导C. 文法的一个句子有两个不同的最右推导D. 文法的一个句子有两个不同的推导3.设L1、L2、L3和L4分别是∑1、∑2、∑3和∑4上的语言,下列等式不成立的是()。

A. L1⋃ L2 = L2⋃ L1B. L1L2 = L2L1C. (L1*)* = L1*D. (L1+)+ = L1+4.关于正规表达式,下列等式不成立的是()。

编译原理试卷A(考试专用)

编译原理试卷A(考试专用)
3.表达式(b*5)的逆波兰式表示为。
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.编译程序的工作的过程一般可以划分为词法分析、、、、等几个基本阶段,同时还会伴有和出错处理。

编译原理试题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. 什么是编译程序?编译程序是将源语言程序翻译为目标语言程序的程序。

《编译原理》(A)

《编译原理》(A)

2013届毕业生毕业前补考《编译原理》试卷注意事项:本试卷适用于09级本科、11级专升本计算机科学与技术、软件工程专业学生。

一、单项选择题(在下列每题的四个选项中,只有一个选项是符合试题要求的。

请把答案填入答题框中相应的题号下。

每小题1分,共15分)1.编译的基本任务是()。

A.将源语言程序翻译成目标语言程序B.将源语言程序翻译成等价的目标语言程序C.将高级语言翻译成机器语言D.将高级语言翻译成等价的机器语言2.构造编译程序应掌握()。

A.源程序B.目标语言C.编译方法D.以上三项都是3.一个规范句型的句柄是它的()。

A.最左直接短语B.最左素短语C.任意直接短语D.任意素短语4.给定文法G:A→xAx|y,其描述的语言是()。

A.xyx B.xy n x C.x n yx n D.x n yx5.一个最小化的DFA是()。

A.无多余状态的DFAB.无等价状态的DFAC.既无多余状态又无等价状态的DFAD.任意确定化有穷自动机6.设有语言L={α|α∈{a,b}+,且α不以b开头,但以bb结尾},描述该语言的正规表达式为()。

A.abb B.a(a|b)*bb C.aa*b*bb D.a(a*|b*)bb7.产生正规语言的文法为()。

A.0型B.1型C.2型D.3型8.使用()可以定义一个程序的意义。

A.语义规则B.词法规则C.产生规则D.语法规则9.以下()不是优化技术。

A.删除公共子表达式B.强度削弱C.局部优化D.循环不变运算外提10.中间代码生成时所遵循的是()。

A.语法规则B.词法规则C.语义规则D.等价变换规则11.局部优化是在基本块上进行的优化,所谓基本块是指()。

A.一个入口、一个出口、顺序执行的语句序列B.循环体C.一个入口、一个出口的语句序列D.分程序12.给定文法G:Z→bMbM→(L|aL→Ma)则b和(的优先关系为()。

A.b( B.b( C.b( D.不存在优先关系13.由文法的开始符号经0步或多步推导产生的文法符号序列是()。

西北农林科技大学本科课程考试试题(卷) 2010—2011学年第二学期《编译原理》课程 A 卷答案

西北农林科技大学本科课程考试试题(卷) 2010—2011学年第二学期《编译原理》课程 A 卷答案

西北农林科技大学本科课程考试 参考答案与评分标准考试课程:编译原理 学年学期:2010-2011-2 试卷类型:A 卷 考试时间:2011-06-12 专业年级:计算机08级一、 填空题(每空2分,共20分) 1 ab+@(或-)cd+*ab+c-+ (1)(+ a b) (2)(- (1)_) (3)(+ c d) (4)(*(2)(3)) (5)(- (1) c)(6)(+(4)(5)),不写标号或错一个式子均扣0.5分,扣完为止 t1=a+b t1=-t1 t2=c+d t3=t1*t2 t2=t1-c t1=t1+t2t1,t2,t3为临时变量,其他临时变量也可,错一个式子均扣0.5分,扣完为止 2 33 线性查找(或 线性表) 杂凑技术4 静态5 语义分析与中间代码产生(只给出一个方面的答案则扣1分) 出错处理6 最左推导二、 单选题(每小题1分,共10分) ADBBC (DC 每个答案0.5分)DACD 三、 判断题(每题1分,共10分) √××√×√√×√√四、 简答题(共22分)1 错一个扣0.5分,扣完为止,共8分S=>aS=>aaSbS=>aaSb=>aab S=>aSbS=>aSb=>aaSb=>aab 2错一步扣0.5分,扣完为止,共8分 3错一个扣0.5分,扣完为止,共6分S a S a S a S ε ε a S a S S ε εS五、 解答题(共38分)1 (1)错一个集合扣1分,共4分FIRST(S)={a,b,(} FOLLOW(S)={a,b, )}FIRST(A)={d,a,b,(} FOLLOW(A)={d,a,b, )}(2)错一个扣0.5分,多写一个也扣0.5分,扣完为止,共6分对于该文法中任何一对终结符最多只存在一种关系,故该文法为算符优先文法。

没有说明理由但判断正确扣1分,共2分 (3)短语:S ,SdS, SdSdS, (SdSdS)句柄:S 最左素短语:SdS 错一个扣1分,共6分3(1)错一个扣1分,共4分A →aA ’ A ’→ABc|εB →dB ’ B ’→bB’|ε(2)错一个集合扣0.5分,共4分first(A)={a}follow(A)={#,d}first(A ’)={a,ε} follow(A ’)={#,d} first(B)={d} follow(B)={c} first(B ’)={b,ε} follow(B ’)={c}(3)错一个集合扣0.5分,多写一个也扣0.5分,扣完为止,共4分。

10级编译原理A卷参考答案.doc

10级编译原理A卷参考答案.doc

参考答案一、填空题(每空1分,共10分)1编译程序(编译器);解释程序(解释器)2 e, h, he, hel, hell3回退4正规文法(3型文法)5自顶向下;自底向上6左递归7归约.归约,移进.归约二、选择题(每小题2分,共20分)1 A 2D 3B 4B 5B6D 7C 8B 9A 10 C三、应用题(共46分)l(l)E=>E + TnT + TnF + Tni + Tni + T*Fni + F*Fni + i*Fni + i*(E) n i + i * (E — T) n i + i * (T — T) n i + i * (F — T) n i + i * (i — T) n i + i * (i — F) n i + i * (i — i)(2)i + i * (i — i) u F + i * (i — i) u T + i * (i — i) u E + i * (i — i) u E + F * (i — i)uE + T*(i - i)uE + T*(F - i)uE + T*(T - i)uE + T*(E - i)uE + T*(E - F) <=E + T*(E —T)uE + T*(E)<=E + T*F<=E + T<=E(3)(4)短语:il + i2 * (13 - 14), ib 12 * (13 - 14), 12, (13 - iQ, 13 - U, k, U直接短语:ii, ^2,13, U句柄:ii素短语:ii, i2,13,142对句子auab有两个不同的最左推导R n RuR n auR n auRR n auaR n auabR n RR n RuRR n aoRR n auaR n aoab所以该文法是二义性文法3 (ID, “int"), (ID, “main"), (LR_BRAC, _), (RR_BRAC, _)(LC.BRAC, _),(ID, “int”),(ID, “a”),(SEMIC, _),(ID, “a”),(ASSIGN, _), (INT, 1), (SEMIC, _),(IF, _), (LR_BRAC, _), (ID, “a”), (EQ, _), (INT, 1), (RR_BRAC, _),(ID, “printf'), (LR_BRAC, _), (STRING, “Hello world!\n”),(RR_BRAC, _), (SEMIC, _), (RETURN, _), (INT, 0), (SEMIC, _),(RC_BRAC, _)45(1)A T Aab I db I Aa I c ArdbA'IcA'A* T abA' I aA' I £⑵A — dbA'IcA'A't aB I £B r bA' I A'6(1)(2) 3 2 + 5 -7 100 (+, a, b,tl)101(uminus, tl, t2)102(+, c, d, t3)103(*, t2, t3, t4)四、综合题(共24分)1.(1) FISRT(S) = {(, a} FIRST(L) = FISRT(S) = {(, a} FIRST(M) = {b,e) FOLLOW(L) = ()} FOLLOW(M) = FOLLOW(L) = ()}(0) S' T S(1)S->aS(2)S->bA(3)A-> aA⑷A T £。

编译原理考A答案【考试试卷答案】

编译原理考A答案【考试试卷答案】

编译原理考试卷A 答案一大题:1. 答:词法分析阶段:读源程序,对字符流进行扫描和分解,识别出一个个单词。

语法分析阶段:将单词分解成各类语法短语。

语义分析阶段:审查源程序有无语义错误,为代码生成阶段收集类型信息。

中间代码生成阶段:半源程序变成一种内部表示形式。

代码优化阶段:对中间代码进行变换或改造,使生成的目标代码更为高效。

目标代码生成阶段:把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。

2. 答:文法是一个四元组(V N ,V T ,P,S ),其中V N 为非终结符号集,V T 为终结符号集,P为产生式集,S 为开始符号。

按乔姆斯基分类,把文法分成四种类型:0型(短语文法)、1型(上下文有关文法)、2型(上下文无关文法)、3型(正规文法)。

3. 答:对输入符号串自左向右进行扫描,并将输入符逐个移入一个后进先出栈中,边移入边分析,一旦栈顶符号串形成某个句型的句柄时,就用该产生式的左部非终结符代替相应右部的文法符号串,重复这一过程直到归约到栈中只剩文法的开始符号时则为分析成功,也就确认输入串是文法的句子。

4. 答:符号表的功能:收集符号属性;上下文语义的合法性检查的依据;作为目标代码生成阶段地址分配的依据。

5. 答:优化就是对代码进行等价变换,使得变换后的代码运行把那间与变换前代码运行结果相同,而运行速度加大或占用存储空间少,或两者都有。

优化技术有:删除多余运算、代码外提、强度削弱、变换循环控制条件、合并已知量与复写传播、删除无用赋值。

二大题:解: EE +TT * F短语:T*F , E+T*F 直接短语:T*F 句柄:T*F 素短语: T*F 三大题: 解:得DFA =>院系: 专业班级: 姓名: 学号:装 订 线四大题: 解:Select(S →)={a} select()={b} select()={(}Select(T→S T ′)={a,b,(} select(T′→,ST ′ )={,} select(T′→ε)={)} ∵改写后文法中,相同左部非终结符对应的两条不同产生式的select 集交集均为空 ∴改写后文法是LL (1)文法 (五大题: 解:(1)拓广文法为:(0)A '→A (1)A →aAb (2)A →aA d (3)A→ε 构造LR(0)识别活前缀的DFA :=>∵在I 0、I 2 项目集中,存在移进归约冲突,故不是LR (0)文法。

编译原理_A卷_v3

编译原理_A卷_v3

福州大学 2007~2008学年第一学期考试A 卷课程名称 编译原理 考试日期 考生姓名 学号 专业或类别题号一二三总分题分 10 10 80 100 累分人 签名 得分考生注意事项:1、本试卷共 12 页,请查看试卷中是否有缺页。

2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。

一、单项选择题(每小题1分,共10分)得分 评卷人1、词法分析器的输出结果是 ( )A .单词的种类编码B .单词在符号表中的位置C .单词的种类编码和自身值D .单词自身值2、正则表达式M1和M2等价是指 ( )A .M1和M2的状态数相等B .M1和M2的有向弧条数相等C .M1和M2所识别的语言集相等D .M1和M2状态数和有向弧条数相等3、如果文法G 是无二义的,则它的任何句子α ( )A .最左推导和最右推导对应的语法树必定相同B .最左推导和最右推导对应的语法树可能不同C .最左推导和最右推导必定相同D .可能存在两个不同的最左推导,但它们对应的语法树相同 4、由文法的开始符经0步或多步推导产生的文法符号序列是 ( )A .短语B .句柄C .句型D .句子5、对一个确定的有限自动机,以下说法正确的是 ( ) A .允许空边转移 B .对于标记相同的弧允许到达不同状态 C .只允许有1个终态 D .只允许有1个初态6、在规范归约中,用什么来刻画可归约串?()A.直接短语B.句柄C.最左素短语D.素短语7、文法G:S→S+T | TT→T*P | PP→(S) | i则句型P+T+i的短语有()A.i, P+T B.P, P+T, iC.P+T+i D.P, P+T, i, P+T+i8、若a为终结符,则A→α·aβ是什么项目?()A.归约B.移进C.接受D.待约9、在LR(0)的ACTION子表中,如果某一行中存在标记为“ri”的栏,则 ()A.该行必定填满ri B.该行未填满riC.其他行也有ri D.goto子表中也有ri10、同心集合并有可能产生新的什么冲突?()A.归约B.移进—移进C.移进—归约D.归约—归约二、填空分析题(每个空格1分,共10分)得分评卷人1、活前缀是指______________的一个前缀,这种前缀不含___________之后的任何符号。

编译原理2010-2011试卷---A(答案)

编译原理2010-2011试卷---A(答案)

华东交通大学2010—2011学年第二学期考试卷试卷编号: ( A )卷编译原理(E ) 课程 课程类别:必修课考生注意事项:1、本试卷共 7 页,总分 100 分,考试时间 120 分钟。

2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。

一、简答题 (每题 5 分,共 20 分)1. 简述编译程序与解释程序的主要差异?【答】编译程序产生中间代码,且效率高;解释程序不产生中间代码,且效率低。

2. 文法的二义性与语言的二义性是两个相同的概念吗?请说明理由。

【答】这两个概念是不相同的。

文法的二义性指的是文法所描述的语言中至少存在一个句子,而该句子对应两棵不同的语法树(或最左(右)推导);而语言的二义性是指描述该语言的全部文法都是二义性的。

由于描述同一个语言的文法可以有多个,一个二义性文法也可能找到一个等价的无二义性文法,所以一个文法是二义性的,其描述的语言不一定就是二义性的。

3. 简述在句型分析中的自上而下与自下而上两类分析方法的主要差异?【答】自上而下的分析方法是从文法的开始符号出发,反复使用推导技术,试图把要分析的句型推导出来;自下而上的分析方法是从要分析的句型出发,反复使用归约技术,试图最终归约出文法的开始符号。

4.为什么说“素短语是包含有终结符的直接短语”的论断是错误的?并针对文法G[E]:(1) E→E+T | T (2) T→T*F | F (3) F→i 中的句型T+T+F,举一个反例加以进一步说明。

【答】在一个文法的句型中,其素短语是一个短语,它至少包含一个终结符,且除自身外不再包含其他素短语。

而不是说是一个直接短语。

例如:文法G[E]中的句型T+T+F,其一个素短语为:T+T,而T+T 是素短语,但不是直接短语。

二、形式文法与自动机题(共20 分)L={ a i b j a j b i| i>0,j≥1 }【答】描述该语言的文法G[S]为:S→aAb |εA→bAa | ba2.对文法 G[E] : E→A│E+A │E–A A→B│A*B B→(E)│a写出句型B-(E)*a 的短语、直接短语和句柄。

编译原理期末考试试卷及答案

编译原理期末考试试卷及答案

期末考试试卷(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卷

期末考试试卷A卷

2009~2010学年度第二学期《编译原理》期末考试试卷课程代码: 0660116 试卷编号: 1-A 命题日期: 2010 年 6 月 15 日答题时限: 120 分钟考试形式:闭卷笔试20注意:须将本题答案写在下面的表格中,写在其它地方无效A. 汇编程序的翻译B. 高级语言程序的解释执行C. 机器语言的执行D. 高级语言的翻译2. 词法分析器的输出结果是()A.单词的种别编码B.单词在符号表中的位置C.单词的种别编码和自身值D.单词自身值3. 在规范规约中,用()来刻画可规约串。

A.直接短语 B.句柄 C.最左素短语 D.素短语4. 与正规式(a* | b) * (c | d)等价的正规式是()A.a* (c | d) | b(c | d) B.a* (c | d) * | b(c | d) *C.a* (c | d)| b* (c | d) D.(a | b) * c| (a | b) * d含有A?α·,则在状态K时,仅当面临输入符号a∈FOLLOW(A) 5. 若项目集IK时,才采取A?α·动作的一定是()A.LALR文法 B.LR(0) 文法C.LR(1)文法 D.SLR(1)文法6. 四元式之间的联系是通过()实现的。

A. 指示器B. 临时变量C. 符号表D. 程序变量7.文法G:S ? x Sx | y所识别的语言是()A.xyx B.(xyx) * C.x n yx n(n≥0) D.x*yx*8. 有一语法制导翻译如下所示:S ? b Ab {print “1”}A?(B {print “2”}A?a {print “3”}B?Aa) {print “4”}若输入序列为b(((aa)a)a)b,且采用自下而上的分析方法,则输出序列为()A. B. C. D.9.关于必经结点的二元关系,下列叙述不正确的是()A.满足自反性 B.满足传递性 C.满足反对称型D.满足对称性10.错误的局部化是指()。

编译原理期末考试试卷(A卷)

编译原理期末考试试卷(A卷)

编译原理期末考试试卷(A卷)一、简述编译程序的工作过程.(10)二、构造下列正规式相应的DFA(用状态转换图表示)(15)(1)1(0 |1)*100(2)0*10*10*10*1(3)letter(letter | digit)*三、给出下面语言的相应文法:(15)L1={a n b n|n≥1}L2={a n b m+n a m| n≥1,m≥0}四、对下面的文法G:S→a | b | (T)T→T,S | S(1)消去文法的左递归,得到等价的文法G2;(2) 判断文法G2是否LL(1)文法,如果是,给出其预测分析表。

(15)五、设有文法G[A]:A→BCc |gDBB→bCDE |εC→DaB | caD→dD |εE→gAf |c(1)计算该文法的每一个非终结符的FIRST集和FOLLOW集;(2)试判断该文法是否为LL(1)文法。

(15)六、对表达式文法G:E →E+T |TT →T*F | FF →(E) | I(1)造各非终结符的FIRSTVT和LASTVT集合;(2)构造文法的算符优先关系表。

(15)七、有定义二进制整数的文法如下:L →LB | BB →0 | 1构造一个翻译模式,计算该二进制数的值(十进制的值)。

(15)简述编译程序的工作过程。

(10)编译程序的工作过程,是指从输入源程序开始到输出目标程序为止的整个过程,是非常复杂的,就其过程而言,一般可以划分为五个工作阶段:①词法分析,对构成源程序的字符串进行扫描和分解,识别出一个个的单词;②语法分析,根据语言的语法规则,把单词符号串分解成各类语法单位;③语义分析与中间代码产生,即对各类语法单位,分析其汉一并进行初步翻译;④代码优化,以期产生更高效的代码;⑤目标代码生成,把中间代码变换成特定机器上的低级语言指令形式.二、构造下列正规式相应的DFA(用状态转换图表示)(15) (4)(5) (6)(1) (2)(3)三、给出下面语言的相应文法:(15)L1={a n b n | n ≥1} L 2={a n b m+n a m | n ≥1,m ≥0}G1:A →aAb |abG1: S →ABA →aAb | abB →bBa | ε四、对下面的文法G:S→a |b | (T)T→T,S | S(1) 消去文法的左递归,得到等价的文法G2;(2)判断文法G2是否LL(1)文法,如果是,给出其预测分析表。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

贵州大学计算机科学与信息学院
2012-2013 学年第二学期考试试卷A
《编译原理》
注意事项:
1. 请考生按要求在试卷装订线内填写姓名、学号和年级专业。

2. 请仔细阅读各种题目的回答要求,在规定的位置填写答案。

3. 不要在试卷上乱写乱画,不要在装订线内填写无关的内容。

4. 满分100分,考试时间为120分钟。

一、填空题(每空1分,共10分)
1.把源程序翻译成目标程序然后在投入运行的翻译程序称为________________;一边解释
一边执行的翻译程序称为________________。

2.字符串hello的真前缀包括________________________________。

3.有时为了完成一个单词的识别,需要超前读入一个字符,当发现该字符不属于当前单词
时,应该予以________________。

4.正规表达式与________________等价,都可以用来描述单词的结构。

5.________________的语法分析从文法的开始符号出发,逐步推导出输入字符串;而
________________的语法分析从输入字符串逐步归约到文法的开始符号。

6.文法如果含有________________会导致自顶向下的语法分析陷入死循环。

7.合并同心项目集可能产生________________冲突,但不会产生________________冲突。

二、选择题(每小题2分,共20分)
1.()程序可以直接被计算机理解和执行
A. 机器语言
B. 汇编语言
C. 高级语言
D.面向对象的语言
2.()不能得出文法一定是二义性文法
A. 文法的一个句子有两棵不同的分析树
B. 文法的一个句子有两个不同的最左推导
C. 文法的一个句子有两个不同的最右推导
D. 文法的一个句子有两个不同的推导
3.设L1、L2、L3和L4分别是∑1、∑2、∑3和∑4上的语言,下列等式不成立的是()。

A. L1⋃ L2 = L2⋃ L1
B. L1L2 = L2L1
C. (L1*)* = L1*
D. (L1+)+ = L1+
4.关于正规表达式,下列等式不成立的是()。

A. (a | b)c = ac | bc
B. ab | c = (a | c)(b | c)
C. (a*b*)* = (a | b)*
D. (a* | b*)* = (a | b)*
5.不含有连续两个0的0、1字符串可以用正规表达式()描述。

A. (0 |1)*
B. (01 |1)*(0 | ε)
C. 01*01*
D. (10 | 1)*
6.LR(0)、SLR(1)、LR(1)和LALR(1)四种文法的描述能力从弱到强依次为()。

A. LR(0)、SLR(1)、LR(1)、LALR(1)
B. SLR(1)、LR(1)、LALR(1)、LR(0)
C. LR(0)、LR(1)、SLR(1)、LALR(1)
D. LR(0)、SLR(1)、LALR(1)、LR(1)
7.LR分析寻找的可归约串是()。

A. 短语
B. 直接短语
C. 句柄
D. 最左素短语
8.给定翻译模式:
A → aB{printf(“0”);}
A → c{printf(“1”);}
B → Ab{printf(“2”);}
当输入为aacbb时,打印出的字符串是()。

A. 00122
B. 12020
C. 01022
D. 12200
9.给定C语言程序:
void p(int x, int* y, int z) ;
{
*y := *y + 1 ;
z := z + x ;
}
void main ()
{
a := 2 ;
b := 3 ;
p(a + b, &a, a) ;
printf(“%d”, a);
}
程序的输出是()。

A. 3
B. 4
C. 5
D. 6
10.C++和Java语言的new语句创建的对象采用()。

A. 静态存储分配策略
B. 栈式存储分配策略
C. 堆式存储分配策略
D. 以上三种策略都可以
三、应用题(共46分)
1.算术表达式文法G[E]:
E → E + T | E – T | T
T → T * F | T / F | F
F → i | (E)
给出句子i + i * (i – i)的
(1) 最左推导(2分)
(2) 规范归约(2分)
(3) 分析树(4分)
(4) 短语、直接短语、句柄、素短语(4分)
2.考虑文法G[R]
R → R⋃R | RR | R* | (R) | a | b
证明此文法是二义性的。

(6分)
3.给出下面C语言程序词法分析的结果。

(8分)
int main()
{
int a;
a = 1;
if (a == 1)
printf(“Hello world!\n”);
return 0;
}
4.画出识别正规表达式((a|b)*|bb)*描述的语言的非确定有穷自动机。

(4分)
5.已知文法G[A]:
A → Bb | Aa | c
B → Aa | d
(1) 消除文法的左递归;(4分)
(2) 提取文法的左因子。

(2分)
6.下面翻译模式把中缀表达式翻译成后缀表达式。

E → TR
R → opT{print(op.lexeme)}R(1) | ε
T → num{print(num.val)}
其中op代表运算符,num代表常数,花括号括起来的语义动作可看成终结符号。

(1) 画出3 + 2 – 5的分析树;(4分)
(2) 根据分析树写出相应的后缀表达式。

(2分)
7.把算术表达式–(a+b)*(c+d)翻译为四元式。

(4分)
四、综合题(共24分)
1.文法G[S]:
S → (L) | a
L → SM
M → bSM | ε
(1) 计算文法符号的FIRST集合和FOLLOW集合;(6分)
(2) 构造LL(1)分析表;(4分)
(3) 给出句子(aba)的分析过程。

(4分)
2.给定文法G[S]:
S → aS | bA
A → aA | ε
(1) 对该文法进行拓广;(2分)
(2) 画出识别活前缀的DFA;(4分)
(3) 构造SLR(1)分析表。

(4分)。

相关文档
最新文档