编译原理习题参考答案

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

第二章

2.构造产生下列语言的文法

(2){a n b m c p|n,m,p≥0}

解: G(S) :S→aS|X,X→bX|Y,Y→cY|ε

(3){a n # b n|n≥0}∪{cn # dn|n≥0}

解: G(S):S→X,S→Y,X→aXb|#, Y→cYd|# }

(5)任何不是以0 打头的所有奇整数所组成的集合

解:G(S):S→J|IBJ,B→0B|IB|ε,I→J|2|4|6|8, J→1|3|5|7|9}

(6)(思考题)所有偶数个0 和偶数个1 所组成的符号串集合

解:对应文法为 S→0A|1B|ε,A→0S|1C B→0C|1S C→1A|0B

3.描述语言特点

(2)S→SS S→1A0 A→1A0 A→ε

解:L(G)={1n10n11n20n2… 1nm0nm |n1,n2,…,nm≥0;且n1,n2,…nm 不全

为零}该语言特点是:产生的句子中,0、1 个数相同,并且若干相接的1 后必然紧接数量相同连续的0。

(5)S→aSS S→a

解:L(G)={a(2n-1)|n≥1}可知:奇数个a

5. (1) 解:由于此文法包含以下规则:AA→ε,所以此文法是0 型文法。

7.解:

(1)aacb 是文法G[S]中的句子,相应语法树是:

最右推导:S=>aAcB=>aAcb=>aacb

最左推导:S=>aAcB=>aacB=>aacb

(3)aacbccb 不是文法G[S]中的句子

aacbccb 不能从S推导得到时,它仅是文法G[S]的一个句型的一部分,而不是一个句子。

11.解:最右推导:

(1) S=>AB=>AaSb=>Aacb=>bAacb=>bbAacb=>bbaacb

上面推导中,下划线部分为当前句型的句柄。对应的语法树为:

第三章

3 假设M:人 W:载狐狸过河,G:载山羊过河,C:载白菜过河

6 根据文法知其产生的语言是

L={a m b n c i| m,n,i≧1}

可以构造如下的文法VN={S,A,B,C}, VT={a,b,c}

P={ S →aA, A→aA, A→bB, B→bB, B→cC, C→cC, C→c} 其状态转换图如下:

7 (1) 其对应的右线性文法是:

A →0D, B→0A,B→1C,C→1|1F,C→1|0A,F→0|0E|1A,D→0B|1C,E→1C|0B

(2) 最短输入串011

(3) 任意接受的四个串: 011,0110,0011,000011

(4) 任意以1 打头的串.

9.对于矩阵(iii)

(1) 状态转换图:

(2) 3型文法(正规文法)

S→aA|a|bB A→bA|b|aC|a B→aB|bC|b C→aC|a|bC|b

(3)用自然语言描述输入串的特征

以a 打头,中间有任意个(包括0个)b,再跟a,最后由一个a,b 所组成的任意串结尾或者以b 打头,中间有任意个(包括0个)a,再跟b,最后由一个a,b 所组成的任意串结尾。

12 (1)

-----------------------------------------------------以上为第一次作业

最小化:

≡0≡ {S,A} {B,C}

因为 {S}b=φ {A}b={B} 所以{S,A}=>{S}{A}

因为 {C}b=φ {B}b={B} 所以{B,C}=>{B}{C}

≡1≡{S}{A}{B}{C}

原DFA已为最小DFA。

10 (1)G1 的状态转换图:

(2) G1 等价的左线性文法G1’[F]:

F→Dd|Bb, D→C, B→S|ε|Ab|Db, A→Sa|a, C→Bc, S→Eb, E→Aa

或G1’[F]:

F→Dd|Bb, D→C, B→S|ε|Ab|Db, A→Sa|a, C→Bc, S→Aab

21 求出描述习题3-12中图(2)(3)所给出有限自动机所识别语言的正规式

(2)a(ba)*b 或 (ab)*ab (3)a (b|aa)*a

-----------------------------------------------------以上为第二次作业 22

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

第四章

1 (2)

将间接左递归转换成直接左递归,将A->SA A->a 代入S->AS 由原文法得

S->SAS|aS|b

消除左递归:S->aSS ’|bS ’ S ’->ASS ’|ε 4

又ε属于First(S),First(S) ⋂ Follow(S)= ∅

又ε属于First(A),First(A) ⋂ Follow(A)= ∅

又ε属于First(B),First(A) ⋂ Follow(A)= ∅

所以此文法为LL(1)文法。

8.(1)

(a)消除左递归:S->Sb|Ab|b => S->AbS’|bS’

S’->bS’|ε

A->Aa|a => A->aA’

A’->aA’ |ε

文法G’:

S->AbS’|bS’

S’->bS’|ε

A->aA’

A’->aA’ |ε

补充题:若有文法G[S]:

S ->AB|cC

A ->b|ε

B ->aC|ε

C ->aS|c

判断文法G是否为LL(1)文法,写出理由;

分别求所有非终结符的First和Follow集;

若为LL(1)文法,给出其预测分析表;

分析句子caac是否符合该文法。

答案:

无左递归,无左公因子。

First(A)=(b, ε), First(B)={a, ε}

因First(A)含ε,First(AB)=First(A) ⋃First(B)={a,b,ε}, First(cC)={c} Follow(S)={#} ⋃ Follow(C)={#}

Follow(A)=First(B) ⋃ Follow(S) -{ ε}={a,#}

相关文档
最新文档