《编译原理》样卷及答案Word文件下载.docx
《《编译原理》样卷及答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《《编译原理》样卷及答案Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。
S→ABS|AB
AB→BA
A→0
B→1
1型文法/上下文有关文法
5、按Thmopson算法构造与正则表达式(1*|0)*等价的NFA。
略
6、设计一个状态转换图,其描述的语言规则为:
如果以a开头,则其后是由a、b组成的任意符号串;
如果以b开头,则其后是至少包含一个a的由a、b组成的任意符号串。
二、(本题10分)对于文法G[E]:
E→ET+|T
T→TF*|F
F→F^|a
(1)给出句子FF^^*的最左推导和语法树;
(2)给出句子FF^^*的短语、直接短语和句柄。
(1)2分:
句子FF^^*的最左推导2分:
句子FF^^*的语法树
E=>
T=>
TF*=>
FF*=>
FF^*=>
FF^^*
(2)3分:
句子FF^^*的短语
FF^^*、FF^^*、F、F^、F^^
2分:
句子FF^^*的直接短语
F、F^
1分:
句子FF^^*的句柄
F
三、(本题15分)构造与下列NFA等价的最小化DFA。
(1)10分:
构造与NFA等价的DFA
(2)5分:
对DFA最小化
首先,将所有的状态集合分成子集:
k1={0,1,2,4}k2={3,5}
四、(本题15分)对下列文法G[S]:
s→eT|RT
T→DR|ε
R→dR|ε
D→a|bd
(1)写出文法G[S]每个非终结符的FIRST集和FOLLOW集;
(2)判断文法G[S]是否LL
(1)文法(注:
必须给出判断过程,否则不得分);
(3)写出文法文法G[S]的预测分析表。
(1)8分:
每个First集合和FOLLOW集合各1分
FIRST集
FOLLOW集
s→eT
|RT
{e}
{a,b,d,ε}
#
T→DR
{a,b}
{ε}
R→dR
{d}
a,b,#
D→a
|bd
{a}
{b}
D,#
(2)2分:
判断文法G[S]是LL
(1)文法。
对于产生式s→eT|RT:
FIRST(eT)∩FIRST(RT)-ε={e}∩{a,b,d}=Φ
FIRST(eT)∩FOLLOW(S)={e}∩{#}=Φ
对于产生式T→DR|ε:
FIRST(DR)∩FOLLOW(T)={a,b}∩{#}=Φ`
对于产生式R→dR|ε:
FIRST(dR)∩FOLLOW(R)={d}∩{a,b,#}=Φ
对于产生式D→a|bd:
FIRST(a)∩FIRST(bd)={a}∩{b}=Φ
所以,对于文法G[S]是LL
(1)文法。
(3)5分:
文法G[S]的预测分析表。
五、(本题18分)已知文法G[S]:
S→rD
D→D,i|i
(1)画出识别文法活前缀的完整DFA,并判断该文法是否LR(0)文法(必须说明判断依据);
(2)构造该文法的SLR
(1)分析表,并判断该文法是否SLR
(1)文法(必须说明判断依据)。
(1)8分:
画出识别文法活前缀的完整DFA
文法拓展并对产生式编号:
(0)S'
→S
(1)S→rD
(2)D→D,i(3)D→i
判断该文法不是LR(0)文法
对于状态3,项目集中存在“移进-规约”冲突,所以该文法不是LR(0)文法。
(3)6分:
构造该文法的SLR
(1)分析表
状态
ACTION
GOTO
r
,
i
S
D
S2
1
acc
2
S4
3
S5
r1
4
r3
5
S6
6
r2
(4)2分:
判断文法是SLR
(1)分析表
回答1:
因为SLR
(1)分析表不存在冲突,所以文法是SLR
(1)分析表。
回答2:
对于状态3,FOLLOW(S)∩{,}=(#)∩{,}=Ф,“移进-规约”冲突可以用
SLR
(1)方法解决,所以文法是SLR
(1)分析表。
六、(本题8分)文法G[E]的LR分析表如下图所示:
(1)E→E+T
(2)E→T(3)T→T*F
(4)T→F(5)F→(E)(6)F→i
写出对输入串i*i+i的LR分析过程(即状态,符号,输入串的变化过程)。
解答:
七、(本题10分)写出下列语句的四元式序列
if(y>
z&
&
(c<
d||m>
n))
while(a>
b)
x=x+y*a;
else
m=m+n;
1(j>
y,z,3)
2(j,-,-,13)
3(j<
c,d,7)
4(j,-,-,5)
5(j>
m,n,7)
6(j,-,-,13)
7(j>
a,b,9)
8(j,-,-,13/16)
9(*,y,a,t0)
10(+,x,t0,t1)
11(=,t1,-,x)
12(j,-,-,7)
13(j,-,-,16)
14(-,x,1,t5)
15(=,t5,-,x)
16..........
华中师范大学网络教育学院
《编译原理》练习测试题库
一、填空
1.若源程序是用高级语言编写的,目标程序是______,则其翻译程序称为编译程序。
2.词法分析和语法分析本质上都是对源程序的______进行分析。
3.如果源语言(编写源程序的语言)是高级语言,而目标语言是某计算机的汇编语言或机器语言,则这种翻译程序称为_____。
4.对编译程序而言,输入数据是_______,输出结果是________。
5.______,是构成语言文法的单词,是语法成分的最小单位。
6.由PL/0的EBNF可知,PL/0语言可看成是PASCAL语言的子集,它的编译程序是一个__________。
7.由于PL/0编译程序采用_________,所以语法分析过程BLOCK是整个编译过程的核心。
8.用语法图描述语法规则的优点是______、________。
9.每个非终结符是一个语法成分,在书写语言程序时并不出现,它是由_________和_________、或终结符串定义的。
10.PL/0的目标程序为假想栈式计算机的汇编语言,与具体计算机______。
11.PL/0的编译程序和目标程序的解释执行程序都是用_______书写的,因此PL/0语言可在配备_________的任何机器上实现。
12.PL/0编译程序是用PASCAL语言书写的,整个编译程序(包括主程序)是由______个嵌套及并列的过程或函数组成
13.当源程序编译正确时,PL/0编译程序自动调用__________,对目标代码进行解释执行,并按用户程序要求输入数据和输出运行结果。
14.由于对某些非终结符可以递归定义,这就使得_________可用有穷的文法描述。
15.______的任务是识别由词法分析给出的单词符号序列在结构上是否符合给定的文法规则。
16.PL/0编译程序的语法分析采用了____________。
17.语法分析程序除总控外主要有两大部分的功能,即_________和__________.
18.PL/0的词法分析程序GETSYM,是一个独立的过程,其功能是为_________提供单词用的,是______的基础,它把输入的字符串形式的源程序分割成一个个单词符号。
19.每个过程应有过程首部以定义局部于它自己过程的常量、变量和过程标识符,也称_____。
20.词法分析程序GETSYM将完成的任务有:
______,识别保留字;
_______,拼数,拼复合词,输出源程序.
21.如果一个PL/0语言的单词序列在整个语法分析中,都能逐个得到匹配,直到_________,这时就说所输入的程序是正确的。
22.若要构造程序设计语言的编译程序,则首先要对程序设计语言本身有较为精确的描述。
而关于程序设计语言的描述,将涉及_____、语义和______三个方面。
23.凡是具有某种特殊性质的客体的聚合,都可称为______。
24.如果集合中元素个数为零,即集合中不含有任何元素,这样的集合称为_______,记为φ。
25.设有集合A和B,如果A和B有相同的元素,则称这两个集合是_______.
26.设A、B为任意两个集合,由所有属于集合A或属于集合B的元素组成的集合,叫做集合A与B的_______.
27.设A、B为任意两个集合,由所有用于集合A且属于集合B的元素组成的集合,称为集合A与B的_______.
28.如果一个集合,它能包含我们所要考虑目标之内的所有元素,则称此集合为_____,记为E。
29.设A为一集合,由A的所有子集(包括空集及A本身)所组成的集合,称为A的______.
30.由两个按一定次序排列的客体组成的序列,称为_____.
31.设A和B为任意两个集合,若序偶的第一个成员是集合A的一个元素,第二个成员是集合B的一个元素,则所有这样的序偶组成的集合称为集合A和B的__________.
32.在集合X上的关系R,如对任意x∈X,均有(x,x)∈R,则称关系R是______。
33.在集合X上的关系R,如果合(x,y)∈R,便必有(y,x)∈R,则称关系R是________。
34.在集合X上的关系R,如果合(x,y)∈R且(y,z)∈R,必有(x,z)∈R,则称关系R是______。
35.例设P={(1,2),(3,4),(2,2)}Q={(4,7),(2,9),(3,1)}
则P·
Q=____________________________
36.符号串与符号组成顺序______,如符号串ab______ba,符号申001也______010。
37.假设G是一个文法,S是文法的开始符号,如果S=>
*x,则称x是________。
38.文法G产生的_______的全体是该文法描述的语言。
39.一个文法G[Z]若存在推导序列Z=>
+·
·
Z·
则称G(z)→u中的左部符号U(U不是识别符号),不在所属文法的任何其他规则右部出现,那么这条规则在推导中不起作用,即所有句子的推导始终不会用到此规则,显然这种规则是多余的。
也称这种非终结符为_________.
55.从文法的某个非终结符号U推不出终结符号串,显然,所有含有U的规则是多余的。
也称这种非终结符为________。
56.若L是上下文有关语言、上下文无关语言或正规语言,则L∪{ε}和L-{ε}分别是上下文有