编译原理题库——简答题Word文档下载推荐.doc

上传人:聆听****声音 文档编号:850721 上传时间:2023-04-29 格式:DOC 页数:206 大小:2.67MB
下载 相关 举报
编译原理题库——简答题Word文档下载推荐.doc_第1页
第1页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第2页
第2页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第3页
第3页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第4页
第4页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第5页
第5页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第6页
第6页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第7页
第7页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第8页
第8页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第9页
第9页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第10页
第10页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第11页
第11页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第12页
第12页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第13页
第13页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第14页
第14页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第15页
第15页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第16页
第16页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第17页
第17页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第18页
第18页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第19页
第19页 / 共206页
编译原理题库——简答题Word文档下载推荐.doc_第20页
第20页 / 共206页
亲,该文档总共206页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

编译原理题库——简答题Word文档下载推荐.doc

《编译原理题库——简答题Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《编译原理题库——简答题Word文档下载推荐.doc(206页珍藏版)》请在冰点文库上搜索。

编译原理题库——简答题Word文档下载推荐.doc

T′→,ST′|ε

提取公共左因子:

S→(T)|aS′

S′→+S|ε

T′→,ST′|ε

3答:

wab+cde10-/+8+*+

4答:

该语句的四元式序列如下(其中E1、E2和E3分别对应A<C∧B<D、A≥1和A≤D,并且关系运算符优先级高):

100(j<

A,C,102)

101(j,_,_,113)

102(j<

B,D,104)

103(j,_,_,113)

104(j=,A,1,106)

105(j,_,_,108)

106(+,C,1,C)

107(j,_,_,112)

108(j≤,A,D,110)

109(j,_,_,112)

110(+,A,2,A)

111(j,_,_,108)

112(j,_,_,100)

113

5答:

证明:

   

  由文法G[S]:

S→aSb|Sb|b,对句子aabbbb对应的两棵语法树为:

  

因此,文法G[S]为二义文法。

  

编译原理B

1.什么是句子?

什么是语言?

2.写一文法,使其语言是偶正整数的集合,要求:

 

(1)允许0打头;

(2)不允许0打头。

3.已知文法G[E]为:

E→T|E+T|E-T

T→F|T*F|T/F

F→(E)|i

①该文法的开始符号(识别符号)是什么?

②请给出该文法的终结符号集合VT和非终结符号集合VN。

③找出句型T+T*F+i的所有短语、简单短语和句柄。

4.构造正规式相应的NFA:

1(0|1)*101。

5.写出表达式(a+b*c)/(a+b)-d的逆波兰表示和三元式序列。

B卷答案

(1)设G是一个给定的文法,S是文法的开始符号,如果Sx(其中x∈VT*),则称x是文法的一个句子。

(2)设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为:

L(G)={x│Sx,x∈VT*}。

(1)G[S]=({S,P,D,N},{0,1,2,…,9},P,S)

P:

S->

PD|D

P->

NP|N

D->

0|2|4|6|8

N->

0|1|2|3|4|5|6|7|8|9

(2)G[S]=({S,P,R,D,N,Q},{0,1,2,…,9},P,S)

PD|P0|D

NR|N

R->

QR|Q

2|4|6|8

1|2|3|4|5|6|7|8|9

Q->

0|1|2|3|4|5|6|7|8|9

3解:

①该文法的开始符号(识别符号)是E。

②该文法的终结符号集合VT={+、-、*、/、(、)、i}。

非终结符号集合VN={E、T、F}。

③句型T+T*F+I的短语为i、T*F、第一个T、T+T*F+i;

简单短语为i、T*F、第一个T;

句柄为第一个T。

4解:

1(0|1)*101对应的NFA为

5解:

逆波兰表示:

     abc*+ab+/d-         

三元式序列:

     ①(*,b,c)     ②(+,a,①)     ③(+,a,b)     ④(/,②,③)     ⑤(-,④,d)

编译原理C

1.(10分)对下列错误信息,请指出可能是编译的哪个阶段(词法分析、语法分析、语义分析、代码生成)报告的。

(1)else没有匹配的if

(2)数组下标越界

(3)使用的函数没有定义

(4)在数中出现非数字字符

(5)函数调用时实参与形参类型不一致。

2.(15分)构造一个DFA,它接收Σ={0,1}上所有满足如下条件的字符串:

每个1都有0直接跟在右边。

并给出该语言的正规式

3.(10分)为下面的语言设计文法:

(1){ambn,其中m³

n}

(2){w|wÎ

{a,b}*,w的长度为奇数}

证明E+T*(id)是文法的一个句型,指出该句型的所有短语、直接短语和句柄。

5.(15分)给定文法:

E→E+T|E-T|T

T→T*F|T/F|F

F→(E)|id

C卷答案

1答案:

(每小题2分)

(1)语法分析

(2)语法分析

(3)语义分析

(4)词法分析

(5)语义分析

2答案:

按题意相应的正规表达式是(0*10)*0*,或0*(0|10)*0*,构造相应的DFA。

3答案:

(每小题10分)

(1)考虑在先产生同样数目的a,b,然后再生成多余的a。

以下是一种解法:

S→aSb|aS|ε

(2)A→aB|bB

B→aA|bA|ε

5证明E+T*(id)是文法的一个句型,指出该句型的所有短语、直接短语和句柄。

答:

短语:

id,(id),T*(id),E+T*(id)。

直接短语:

id。

句柄是id。

编译原理D卷

3、何谓“标识符”,何谓“名字”,两者的区别是什么?

4、令+、*和↑代表加、乘和乘幂,按如下的非标准优先级和结合性质的约定,计算1+1*2↑*1↑2的值:

(1)、优先顺序(从高至低)为+、*和↑,同级优先采用左结合。

(2)、优先顺序为↑、+、*,同级优先采用右结合。

6、令文法G6为N→D∣ND,D→0∣1∣2∣3∣4∣5∣6∣7∣8∣9

(1)、G6的语言L(G6)是什么?

(2)、给出句子0127、34和568的最左推导和最右推导。

7、写一个文法,使其语言是奇数集,且每个奇数不以0开头。

8、令文法为E→T∣E+T∣E-T

T→F∣T*F∣T/F

F→(E)∣i

(1)给出i+i*i、i*(i+i)的最左推导和最右推导;

给出i+i+i、i+i*i和i-i-i的语法树。

9、证明下面的文法是二义的:

S→iSeS∣iS∣i

11、给出下面语言的相应文法:

L1={anbnci∣n≥1,i≥0},

L2={aibncn∣n≥1,i≥0}

L3={anbnambm∣n,m≥0}

L4={1n0m1m0n∣n,m≥0}

标识符是高级语言中定义的字符串,一般是以英文字母(包括大小写字母)或下划线开头的,由数字、字母和下划线组成的一定长度的字符串,它只是一个标志,没有其他含义。

名字是用标识符表示的,但名字不仅仅是一个字符串,它还具有属性和值。

(1)、1+1*2↑*1↑2=2*2↑*1↑2=4↑*1↑2=4↑↑2=

(2)、1+1*2↑*1↑2=

6解:

(1)、L(G6)是由0到9这10个数字组成的字符串。

(2)、句子0127、34和568的最左推导:

N=>

ND=>

NDD=>

NDDD=>

DDDD=>

0DDD=>

01DD=>

012D=>

0127

DD=>

3D=>

34

DDD=>

5DD=>

56D=>

568

句子0127、34和568的最右推导:

N=>

N7=>

ND7=>

N27=>

ND27=>

N127=>

D127=>

N4=>

D4=>

N8=>

ND8=>

N68=>

D68=>

7解:

G(S):

A→2∣4∣6∣8∣D

B→A∣0

C→CB∣A

D→1∣3∣5∣7∣9

S→CD∣D

8解:

(1)最左推导为:

E=>

E+T=>

T+T=>

F+T=>

i+T=>

i+T*F=>

i+F*F=>

i+i*F=>

i+i*i

T=>

T*F=>

F*F=>

i*F=>

i*(E)=>

i*(E+T)=>

i*(T+T)

=>

i*(F+T)=>

i*(i+T)=>

i*(i+F)=>

i*(i+i)

最右推导为:

E+T=>

E+T*F=>

E+T*i=>

E+F*i=>

E+i*i=>

T+i*i=>

F+i*i=>

F*(E)=>

F*(E+T)=>

F*(E+F)=>

F*(E+i)

F*(T+i)=>

F*(F+i)=>

F*(i+i)=>

(2)语法树:

T

E

+

F

i

*

-

9解:

考虑句子iiiei,存在如下两个最右推导:

S=>

iSeS=>

iSei=>

iiSei=>

iiiei

iS=>

iiSeS=>

由此该文法是二义的。

11解:

L1的文法:

S→AC;

A→aAb∣ab;

C→cC∣ε

L2的文法:

S→AB;

A→aA∣ε;

B→bBc∣bc

L3的文法:

A→aAb∣ε;

B→aBb∣ε

L4的文法:

S→1S0∣A;

A→0A1∣ε;

编译原理E卷

1、令A、B和C是任意正规式,证明以下关系成立:

A∣A=A

(A*)*=A*

A*=ε∣AA*

(AB)*A=A(BA)*

(A∣B)*=(A*B*)*=(A*∣B*)*

A=b∣aA当且仅当A=a*b

2、构造下列正规式相应的DFA

1(0∣1)*101

1(1010*∣1(010)*1)*0

0*10*10*10*

(00∣11)*((01∣10)(00∣11)*(01∣10)(00∣11)*)*

3、给出下面正规表达式:

(1)以01结尾的二进制数串;

(2)能被5整除的十进制整数;

包含奇数个1或奇数个0的二进制数串;

4、对下面情况给出DFA及正规表达式:

(1){0,1}上不含子串010的所有串。

5、将图3.18的(a)和(b)分别确定化和最小化。

1

a,b

a

(a)

2

b

(b)

5

4

3

6、构造一个DFA,它接受∑={0,1}上所有满足如下条件的字符串:

每个1都有0直接跟在右边。

7、给定右线性文法G:

S→0S∣1S∣1A∣0B

A→1C∣1

B→0C∣0

C→0C∣1C∣0∣1

求出一个与G等价的左线性文法。

文法G对应的状态转换图如下所示:

S

Z

0,1

B

C

A

E卷答案

1证明:

(1)、A∣A=A

L(A∣A)=L(A)∪L(A)=L(A),所以有A∣A=A。

(2)、(A*)*=A*

(3)、A*=ε∣AA*

通过证明两个正规式所表示的语言相同来证明两个正规式相等。

L(ε∣AA*)=L(ε)∪L(A)L(A*)=L(ε)∪L(A)(L(A))*

=L(ε)∪L(A)((L(A))0∪(L(A))1∪(L(A))2∪(L(A))3∪…)

=L(ε)∪(L(A))1∪(L(A))2∪(L(A))3∪(L(A))4∪…

=(L(A))*=L(A*)

即:

L(ε∣AA*)=L(A*),所以有:

A*=ε∣AA*

(4)、(AB)*A=A(BA)*

利用正规式的分配率和结合律直接推导。

(AB)*A=((AB)0∣(AB)1∣(AB)2∣(AB)3∣…)A

=εA∣(AB)1A∣(AB)2A∣(AB)3A∣…

=Aε∣A(BA)1∣A(BA)2∣A(BA)3∣…

=A(ε∣(BA)1∣(BA)2∣(BA)3∣…)

=A(BA)*

(AB)*A=A(BA)*

(5)、(A∣B)*=(A*B*)*=(A*∣B*)*

证明:

先证(A∣B)*=(A*B*)*

因为L(A)L(A)*L(B)*,L(B)L(A)*L(B)*

故:

L(A)∪L(B)L(A)*L(B)*

于是由本题第二小题结论可知(L(A)∪L(B))*(L(A)*L(B)*)*①

又L(A)L(A)∪L(B),L(B)L(A)∪L(B)

L(A)*(L(A)∪L(B))*

L(B)*(L(A)∪L(B))*

因此有:

L(A)*L(B)*(L(A)∪L(B))*(L(A)∪L(B))*=((L(A)∪L(B))*)2

故(L(A)*L(B)*)*((L(A)∪L(B))*)*

由本题第二小题得:

((L(A)∪L(B))*)*=(L(A)∪L(B))*

故得:

(L(A)*L(B)*)*(L(A)∪L(B))*②

则由①②得:

(L(A)∪L(B))*=(L(A)*L(B)*)*

由于L((A*B*))*=(L(A*B*))*=(L(A*)L(B*))*=(L(A)*L(B)*)*

即有(L(A)∪L(B))*=L((A*B*))*③

而(A|B)*对应的语言为(L(A)∪L(B))*,且(A*B*)*对应的语言为L((A*B*))*

则根据③得(A|B)*=(A*B*)*

再证:

(A*|B*)*=(A*B*)*

因为:

A,B是任意正规式,由以上结论得:

(A*|B*)*=((A*)*(B*)*)*

又由本题第二小题目的结论可得:

(A*)*=A*,(B*)*=B*

因此,(A*|B*)*=(A*B*)*

综合上述两种结论,最后得:

(A∣B)*=(A*B*)*=(A*∣B*)*

2解:

(1)、1(0∣1)*101

第一步:

根据正规式构造NFA,先引入初始状态X和终止状态Y:

X

1(0∣1)*101

Y

再对该转换图进行分解,得到分解后的NFA如下图:

X

ε

第二步:

对NFA进行确定化,获得状态转换矩阵:

状态

{X}

Ø

{1,2,3}

{2,3}

{2,3,4}

{2,3,5}

{2,3,4,Y}

根据转换矩阵获得相应的DFA:

第三步:

化简该DFA,获得最简的DFA即为所求。

首先根据是否终止状态将所有状态分为两个集合{0,1,2,3,4}和{5},这里集合{5}已经不可划分,只需考虑集合{0,1,2,3,4}。

{0,1,2,3,4}0={2,4,-},{0,1,2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2