编译原理习题与答案概要
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
b
6
b
b
0 1 2 3 4 5 6 7
a 1 3 - 3 3 5 6 6
b 2 4 5 6 5 7 6 7
第三章
对上图的 DFA 进行最小化。首先将
状态分为非终态集和终态集两部分: 0 {0,1,2,5}和{3,4,6,7}。 1
由终态集可知,对于状态 3 、6 、7 ,
第三章
正规式:(a|ba)*b
产生式 转换函数
S→aS
S→bA S→b A→aS
f(S,a)=S
f(S,b)=A f(S,b)=T f(A,a)=S
a S b T
b a
A
第三章
将NFA确定化为DFA
I 0 {S} {A,T} 1 {S} {S} Ia Ib 0 {A,T} 1 0 -a 0
a S b T
(0|1)*01(0|1)* 1*0*
wenku.baidu.com 第三章
3. 请描述下面正规式定义的串. 字母表S = {x, y}。 a) x(x|y)*x 必须以 x 开头和x结尾的串 b) x*(yx+)*x* 每个 y 至少有一个 x 跟在后边的串 c) (x|y)*(xx|yy) (x|y)* 所有含两个相继的x或两个相继的y的串
第二章
2.2 设有文法G[N]: N->D | ND D->0|1|…|9 (1) G[N]定义的语言是什么? (2) 请给出句子0123的最左推导和最右推导。
N
ND NDD NDDD DDDD 0DDD 0123 0123 ND N3 ND3 N23 ND23
01DD 012D
3.4 给出文法G[S],构造相应最小的DFA。 G:S→aS | bA | b A→aS 解:由文法到NFA的转换有两种方法: ① 由文法到正规式,再由正规式到NFA
先由产生式得: A = aS 将A代入S中得: S = aS|bA|b = aS|baS|b = (a|ba)S|b 利用规则(A->xA|y)得: S= (a|ba)*b 文法G对应的正规式为(a|ba)*b ,其对应的NFA的 状态转换图为:
第三章
4.指出哪些串是自动机可接受的 xy xyxxy yyyx xyyxyxyxxy
第三章
b
5. 将下图所示的 非确定有限自动 机 (NFA) 变换成 等价的确定有限 自动机(DFA)。
a a X b 3 1 a b b
2 a
Y b
4
a
b 2 b a b 3 a b 4 b a Y
1 X A (0|1)* B 0|1 ε A 1 X A ε E E 0,1 ε B 1 C 0 D 1 Y ε B 1 C 1 C 0 D 0 D 1 Y 1 Y
1 X
第三章
3.1 构造正规式1(0|1)*101相应的NFA
1 X 1 X A (0|1)* A 0,1 1 B 0,1 ε A E ε B 0 C 1 C 1 Y 0 D 1 Y 1 B 0 C 1 Y
N
N123 D123
第二章
2.5 证明下面的文法是二义性的。 S→iSeS | iS | i 答:对句子iiiei对应两棵不同的语法树
S
i i S i S e S i i i S
S
e S i S i
第二章
2.9 设有文法G[T]: T→T*F|F F→ FîP|P P→(T)|i 分析句型T*P î (T*F)的短语、直接短语和句柄 答:句型T*P î (T*F)的语法树: T
b a
A
如右图所示
b a
1
最小化:此状态图已经为最简了。
第三章
1.指出与正规式匹配的串。 a) (ab|b)*c 与后面的那些串匹配? ababbc abab c aaabc babc
b) ab*c*(a|b)c 与后面的那些串匹配? acac acbbc abc abbcac acc c) (a|b)aa*(ba)* 与后面的那些串匹配? bba ba ababa aa baa
a
第三章
X
a
1
解:用子集法将NFA确定化,如 下图所示。 I {X} {1} {3} {2,3,Y} {3,Y} {3,4} {2,3,4,Y} {3,4,Y} Ia {1} {2,3,Y} - {2,3,Y} {2,3,Y} {3,4} {2,3,4,Y} {2,3,4,Y} Ib
a 0 1 1 3
第三章
3.4 给出文法G[S],构造相 应最小的DFA。 G:S→aS | bA | b A→aS 解:② 由文法直接到NFA
文法对应的有自动 M=({S,A, T}, {a,b}, f, S, {T}) 其对应的状态转换图为: 产生式 S→aS S→bA S→b A→aS 转换函数 f(S,a)=S f(S,b)=A f(S,b)=T f(A,a)=S
1 X
第三章
3.5 给出下述文法所对应的正规式。 G:S→aA A→bA | aB | b B →aA 解:先由产生式得: B=aA 将B代入A中得:A=bA|aaA|b =(b|aa)A|b 利用规则(A->xA|y)得: A= (b|aa) * b 将A代入S中得:S=a (b|aa) * b 即为所求正规式
b 2 4
{3} {3,Y} 重新命名 {3,4} {2,3,4,Y} {3,4} {3,4,Y} {2,3,4,Y} {3,4,Y}
2
3 4 5 6 7
-
3 3 5 6 6
5
6 5 7 6 7
第三章
上图所对应的DFA如下所示。
a 3 a 4 b 2 b b 5 a b 7 a a
a a 0 1 b
第三章
2. 为下边所描述的串写正规式,字母表是 {0, 1}. a) 以01 结尾的所有串 b) 只包含一个0的所有串 c) 包含偶数个1但不含0的所有串 (0|1)*01 1*01* (11)* (0*10*10*)*
d) 包含偶数个1且含任意数目0的所有串
e) 包含01子串的所有串
f) 不包含01子串的所有串
五棵子树对应五个短语T*P î (T*F), P î (T*F),
P, (T*F), T*F 两层子树(简单子树)的末端结点构成直接短语
两棵两层子树对应两个直接短语: P , T*F 位于最左边的两层子树的末端结点构成句柄: P
T * F F P îP ( T ) T * F
第三章
3.1 构造正规式1(0|1)*101相应的NFA