编译原理习题参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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,#}