编译原理期末复习题.docx

上传人:b****4 文档编号:822944 上传时间:2022-10-13 格式:DOCX 页数:29 大小:284.47KB
下载 相关 举报
编译原理期末复习题.docx_第1页
第1页 / 共29页
编译原理期末复习题.docx_第2页
第2页 / 共29页
编译原理期末复习题.docx_第3页
第3页 / 共29页
编译原理期末复习题.docx_第4页
第4页 / 共29页
编译原理期末复习题.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

编译原理期末复习题.docx

《编译原理期末复习题.docx》由会员分享,可在线阅读,更多相关《编译原理期末复习题.docx(29页珍藏版)》请在冰豆网上搜索。

编译原理期末复习题.docx

编译原理期末复习题

3.2 是非判断,对下面的陈述,正确的在陈述后的括号内写T,否则写F。

(1)有穷自动机接受的语言是正则语言。

()

(2)若r1和r2是Σ上的正规式,则r1|r2也是。

()

(3)设M是一个NFA,并且L(M)={x,y,z},则M的状态数至少为4个。

()

(4)令Σ={a,b},则Σ上所有以b为首的字构成的正规集的正规式为b*(a|b)*。

()

(5)对任何一个NFAM,都存在一个DFAM',使得L(M')=L(M)。

()

(6)对一个右线性文法G,必存在一个左线性文法G',使得L(G)=L(G'),反之亦然。

()

答案

(1)  T  

(2)  T  (3)  F(4)  F  (5)  T  (6)T

3.3 描述下列各正规表达式所表示的语言。

(1) 0(0|1)*0

(2) ((ε|0)1*)*

(3) (0|1)*0(0|1)(0|1)

(4) 0*10*10*10*

(5) (00|11)*((01|10)(00|11)*(01|10)(00|11)*)*

答案

(1) 以0开头并且以0结尾的,由0和1组成的符号串。

(2) {α|α∈{0,1}*}

(3) 由0和1组成的符号串,且从右边开始数第3位为0。

(4) 含3个1的由0和1组成的符号串。

 {α|α∈{0,1}+,且α中含有3个1}

(5) {α|α∈{0,1}*,α中0和1为偶数}

3.4 对于下列语言分别写出它们的正规表达式。

(1) 英文字母组成的所有符号串,要求符号串中顺序包含五个元音。

(2) 英文字母组成的所有符号串,要求符号串中的字母依照词典顺序排列。

(3) Σ={0,1}上的含偶数个1的所有串。

(4) Σ={0,1}上的含奇数个1的所有串。

(5) 具有偶数个0和奇数个1的有0和1组成的符号串的全体。

(6) 不包含子串011的由0和1组成的符号串的全体。

(7) 由0和1组成的符号串,把它看成二进制数,能被3整除的符号串的全体。

答案

(1) 令Letter表示除这五个元音外的其它字母。

   ((letter)*A(letter)*E(letter)*I(letter)*O(letter)*U(letter))*

(2) A*B*....Z*

(3) (0|10*1)*

(4) (0|10*1)*1

(5) [分析]

设S是符合要求的串,|S|=2k+1(k≥0)。

则S→S10|S21,|S1|=2k(k>0),|S2|=2k(k≥0)。

且S1是{0,1}上的串,含有奇数个0和奇数个1。

 S2是{0,1}上的串,含有偶数个0和偶数个1。

考虑有一个自动机M1接受S1,那么自动机M1如下:

和L(M1)等价的正规表达式,即S1为:

((00|11)|(01|10)(00|11)*(01|10))*(01|10)(00|11)*

类似的考虑有一个自动机M2接受S2,那么自动机M2如下:

和L(M2)等价的正规表达式,即S2为:

((00|11)|(01|10)(00|11)*(01|10))*

因此,S为:

((00|11)|(01|10)(00|11)*(01|10))*(01|10)(00|11)*0|

((00|11)|(01|10)(00|11)*(01|10))*1

(6)1*|1*0(0|10)*(1|ε)

(7)接受w的自动机如下:

对应的正规表达式:

(1(01*0)1|0)*

3.6 给出接受下列在字母表{0,1}上的语言的DFA。

(1) 所有以00结束的符号串的集合。

(2) 所有具有3个0的符号串的集合。

答案(a)DFA M=({0,1},{q0,q1,q2},q0,{q2},δ)

其中δ定义如下:

δ(q0,0)=q1    δ(q0,1)=q0

δ(q1,0)=q2    δ(q1,1)=q0

δ(q2,0)=q2    δ(q2,1)=q0

(b)正则表达式:

1*01*01*01*

DFA M=({0,1},{q0,q1,q2,q3},q0,{q3},δ)

其中δ定义如下:

δ(q0,0)=q1    δ(q0,1)=q0

δ(q1,0)=q2    δ(q1,1)=q1

δ(q2,0)=q3    δ(q2,1)=q2

δ(q3,1)=q3    

3.7构造等价于下列正规表达式的有限自动机。

(1)10|(0|11)0*1

(2)((0|1)*|(11))*

答案

(1)DFA M=({0,1},{q0,q1,q2,q3},q0,{q3},δ)其中δ定义如下:

(2)δ(q0,0)=q1    δ(q0,1)=q2

(3)δ(q1,0)=q1    δ(q1,1)=q3

(4)δ(q2,0)=q3    δ(q2,1)=q1

(5)

(6)

(2)DFA M=({0,1},{q0},q0,{q0},δ)

(7)其中δ定义如下:

(8)δ(q0,0)=q0    δ(q0,1)=q0

(9)

3.8给定右线性文法G:

S->0S|1S|1A|0B

A->1C|1

B->0C|0

C->0C|1C|0|1

试求一个于G等价的左线性文法G'

3.9试对于下列正规表达式使用证明定理3。

5的构造算法构造非确定的有限自动机。

请给出每个自动机在处理输入符号串ababbab的过程中的动作序列。

(1)(a|b)*

(2)(a*|b*)*

(3)((ε|a)b*)*

3.10转换练习3.9中的每个NFA为DFA。

并给出每个DFA在处理输入符号串ababbab的过程中的动作序列。

3.11试把练习3.10中得到的DFA的状态给以最小化。

答案

(1),

(2),(3)的DFAM相同,化简结果为:

(4)

3.12我们可以证明两个正规表达式是等价的,如果它们的最小状态DFA是相同的(除了状态的名字以外)。

利用这一结论,请说明下列正规表达式都是等价的。

(1)(a|b)*

(2)(a*|b*)*

(3)((ε|a)b*)*

答案

根据3.11的结果知这几个正规表达式是等价的。

3.13对于下列正规表达式构造最小状态的DFA。

(1)(a|b)*a(a|b)

(2)(a)b)*a(a|b)(a|b)

5.对如下文法:

G[S]:

S→abS|aaB|ad

B→bbB|b

分别给出句子abaabbb和ad的句柄

句子ad的语法分析树为:

句子abaabbb的语法分析树为:

S

a

b

S

a

a

B

b

b

B

b

所以句子abaabbb的句柄是b;句子ad的句柄是ad.

二、(10分)说明如下文法是否是LL

(1)文法,若不是,将其转换为LL

(1)文法。

最后给出该文法的LL

(1)分析表。

G[A]:

A→Be

B→Bb|a

文法中有左递归,不是LL

(1)文法。

转换为G′:

A→Be

B→aB′

B′→bB′|λ

Predict(A→Be)={a}

Predict(B→aB′)={a}

Predict(B′→bB′)={b}

Predict(B′→λ)={e}

LL

(1)分析表:

a

b

e

A

→Be

B

→aB′

B′

→bB′

→λ

 

4.给出识别正则表达式((a|bc)*d)+的NFA。

5.已知文法G[S]:

S→S;G│G

G→G(T)│H

H→a│(S)

T→T+S│S

找出句型:

a(T+S);H;(S)的短语、简单短语和句柄。

短语:

a,T+S,a(T+S),H,a(T+S);H,(S)

简单短语:

a,T+S,H,(S)句柄是a.

6.已知文法G[S]为:

S→AB|bCA→b|λ

B→aD|λC→AD|b

D→aS|c

对其每一个非终级符求First集和Follow集。

First(S)={b,a,λ}

First(A)={b,λ}

First(B)={a,λ}

First(C)={b,a,c}

First(D)={a,c}

Follow(S)={#}

Follow(A)={a,c,#}

Follow(B)={#}

Follow(C)={#}

Follow(D)={#}

二、(10分)设有文法G[A]:

A→iB*e

B→SB|ε

S→[eC]|.i

C→eC|ε

判定该文法是否为LL

(1)文法?

若是则给出它的LL

(1)分析表,否则说明理由。

先计算各个产生式的Predict集:

Predict(A->iB*e)={i};

Predict(B->SB)={[,.}

Predict(B->ε)={*}

Predict(S->[eC])={[}

Predict(S->.i)={.}

Predict(C->eC)={e}

Predict(C->ε)={]}

因为Predict集没有冲突,所以是LL

(1)文法。

LL

(1)分析表如下:

i

*

e

[

]

.

A

->iB*e

->ε

B

->SB

->SB

S

->[eC]

->.i

C

->eC

->ε

1、证明下面文法是LL

(1)的但不是SLR

(1)文法

S→AaAb|BbBaA→εB→ε

解:

对于产生式S→AaAb|BbBa来说

FIRST(AaAb)∩FIRST(BbBa)={a}∩{b}=Φ而A,B∈VN仅有一条候选式。

因此,这个文法是LL

(1)的。

下面构造这个文法的识别活前缀的DFA。

系专业班级学号姓名

 

………………………………………密……………………………………封…………………………………线…………………………………………

I0={S'→·S,S→·AaAb,S→·BbBa,A→·,B→·}

I1={S'→S·}

I2={S→A·aAb}

I3={S→B·bBa}

I4={S→Aa·Ab,A→·}

I5={S→Bb·Ba,B→·}

I6={S→AaA·b}

I7={S→BbB·a}

I8={S→AaAb·}

I9={S→BbBa·}

由于FOLLOW(A)=FOLLOW(B)={a,b}

因此项目集I0中存在归约-归约冲突。

在I0状态下,当输入符号是a或是b时,不知用A→ε还是B→ε进行归约。

故此文法不是SLR

(1)的。

但是,此文法是LR

(1)的。

五、已知文法G[S],其产生式如下:

S→(L)|aL→L,S|S

从G[S]中消除左递归,并为之构造一个非递归预测分析器LL

(1)分析表。

请说明在句子(a,(a,a))上的分析器的动作。

(20分)解:

将所给文法消除左递归得G':

S

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1