编译原理第2章习题课.docx
- 文档编号:4733848
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:26
- 大小:21.89KB
编译原理第2章习题课.docx
《编译原理第2章习题课.docx》由会员分享,可在线阅读,更多相关《编译原理第2章习题课.docx(26页珍藏版)》请在冰豆网上搜索。
编译原理第2章习题课
精品文档
1.构造正规式的DFA。
(1)1(0|1)*101
首先构造NFA:
ε
X1A
NFA化为DFA:
状态转换表:
Q
{X}A
{ABC}B
{BCD}C
{BC}D
{BCE}E
{BCDY}Y
状态转换图:
A1
1
B
初态
0
A
B
C
D
E
Y
化简后得:
A
1
B
1
0
0
BεC1
D0
E1
Y
1
1
0
{ABC}
B
{BCD}
C
{BC}
D
{BCD}
C
{BCE}
E
{BCD}
C
{BC}
D
{BCDY}
Y
{BC}
D
{BCD}
C
{BCE}
E
1
0
CE
1
11
0
0
DY
0
10
B
CD
CE
CD
YD
CE
0
1
C
0
E
1
Y
0
1
.
精品文档
(2)(a|b)*(aa|bb)(a|b)*
a
3
a
a
a
ε
ε
ε
X
1
2
5
Y
b
b
b
b
4
?
NFA化为DFA:
Q
{X12}
{123}
{124}
{1235Y}
{1245Y}
{124Y}
{123Y}
所以,DFA为:
Xa1
a
bb
2
化简得:
a
X
b
{123}
{1235Y}
{123}
{1235Y}
{123Y}
{123Y}
{1235Y}
a
a3
b4
b
1a
ab
b
2
ab
{124}
{124}
{1245Y}
{124Y}
{1245Y}
{1245Y}
{124Y}
b5
a
b
a
b
a6
a
Y
b
.
(3)(0|11*0)*0
X
ε
A
ε
1
0
BD
ε
ε
C
NFA到DFA:
1
Q
{XAY}
X
{BCD}
{BCD}
A
{CD}
{AY}
B
{BCD}
{CD}
Y
{CD}
1
A
1
X
0
1
0
B
0
0
化简后得;
1
0
0
XA
1
精品文档
Y
1
0
A
{AY}
B
Y
{AY}
B
A
{AY}
B
Y
{AY}
B
1
Y
.
精品文档
2.将下图确定化和最小化。
a
a
01
a,b
解:
首先取A=ε-CLOSURE({0})={0},NFA确定化后的状态矩阵为:
Q’
a
b
A
{0}
{0,1}
{1}
B
{0,1}
{0,1}
{1}
C
{1}
{0}
NFA确定化后的DFA为:
a
a
AB
a
bb
C
将A,B合并得:
ab
AC
a
.
精品文档
3.构造一个DFA,它接受∑={0,1}上所有满足如下条件的字符串,
每个1都有0直接跟在后边。
解:
按题意相应的正规表达式是0*(0|10)*0*
构造相应的DFA,首先构造NFA为
0
0
0
X
ε
ε
ε
ε
Y
0
1
3
10
2
用子集法确定化
I
I0
I1
S
0
1
{X,0,1,3,Y}
{0,1,3,Y}
{2}
1
2
3
{0,1,3,Y}
{0,1,3,Y}
{2}
2
2
3
{2}
{1,3,Y}
/
3
4
{1,3,Y}
{1,3,Y}
{2}
4
4
3
DFA为
0
102
110
1
3
4
0
.
精品文档
4.给出NFA等价的正规式R。
方法一:
首先将状态图转化为
ε
A
1
B
1
C
ε
Y
消去B
得
X
0,1
ε
A
11
C
ε
Y
消去其余结点
X
、
0,1
X
(0|1)*
11
Y
NFA等价的正规式为(0|1)*11
方法二:
NFA→右线性文法→正规式
A→0A|1A|1B
B→1C
C→ε
A=0A+1A+1B
B=1
A=0A+1A+11
A=(0+1)*11→(0|1)*11
.
精品文档
5.试证明正规式(a|b)*与正规式(a*|b*)*是等价的。
证明:
a
(1)
正规式(a|b)
*的NFA为=>X
ε
1
ε
Y
b
a
b
{X,1,y}
{1,y}
{1,y}
{1,y}
{1,y}
{1,y}
a
其最简DFA为
=>A
b
(2)正规式(a*|b*)*的NFA
为:
a
3
其最简化DFA为:
a
εε
=>Xε1εY=>A
εεb
b
2
DFA的状态转换表:
a
b
{x,1,2,3,y}
{1,2,3,y}
{1,2,3,y}
{1,2,3,y}
{1,2,3,y}
{1,2,3,y}
由于这两个正规式的最小DFA相同,所以正规式(a|b)*等价于正规式(a*|b*)*。
.
精品文档
6.设字母表∑={a,b},给出∑上的正规式R=b*ab(b|ab)*。
(1)试构造状态最小化的DFAM,使得L(M)=L(R)。
(2)求右线性文法G,使L(G)=L(M)。
解:
(1)构造NFA:
6
b
a
b
X
ε
1
ε
2
a
3
b
4
ε
5
ε
Y
b
(2)将其化为DFA,转换矩阵为:
Q
a
b
{X,1,2}
1
{3}
2
{1,2}
3
{3}
2
{4,5,Y}
4
{1,2}
3
{3}
2
{1,2}
3
{4,5,Y}
4
{6}
5
{5,Y}
6
{6}
5
{5,Y}
6
{5,Y}
6
{6}
5
{5,Y}
6
.
精品文档
2
b
4
a
5
a
b
1
a
a
b
b
3
6
b
b
再将其最小化得:
b
XaWbY
b
a
(2)对应的右线性文法G=({X,W,Y},{a,b},P,X)
P:
X→aW|bXW→bY|by→aW|bY|b
.
精品文档
3.8文法G[〈单词〉]为:
〈单词〉-〉〈标识符〉|〈整数〉
〈标识符〉-〉〈标识符〉〈字母〉|〈标识符〉〈数字〉|〈字母〉
〈整数〉-〉〈数字〉|〈整数〉〈数字〉
〈字母〉-〉A|B|C
〈数字〉|->1|2|3
(1)改写文法G为G’,使L(G’)=L(G)。
(2)给出相应的有穷自动机。
解:
(1)令D代表单词,I代表标识符,Z代表整数,有G’(D):
D→I|Z
I→A|B|C|IA|IB|IC|I1|I2|I3
Z→1|2|3|Z1|Z2|Z3
(2)左线性文法G’所对应的有穷自动机为:
M=({S,D,I,Z},{1,2,3,A,B,C},f,S,{D})
f:
f(S,A)=I,f(S,B)=I,f(S,C)=I
f(S,1)=Zf(S,2)=Zf(S,3)=Z
f(I,A)=If(I,B)=If(I,C)=I
f(I,1)=If(I,2)=If(I,3)=If(I,ε)=I
f(Z,1)=Zf(Z,2)=Zf(Z,3)=Zf(Z,ε)=D
.
精品文档
3.10给出下述文法所对应的正规式。
S→0A|1B
A→1S|1
B→0S|0
解:
相应的正规式方程组为:
S=0A+1B①
A=1S+1②
B=0S+0③
将②,③代入①,得
S=01S+01+10S+10④
对④使用求解规则,得(01|10)*(01|10)为所求。
.
3.4给出文法G[S],构造相应最小的DFA。
S->aS|bA|b
A->aS
方法一:
S=aS+bA+b
A=aS
S=aS+baS+bS=(a+ba)*b
即:
S=(a|ba)*b
正规式(a|ba)*b对应的NFA:
a
X
ε
1
ε
2
b
ba
3
正规式(a|ba)*b对应的DFA:
Q
a
{X12}
X
{12}
1
{12}
1
{12}
1
{3Y}
Y
{12}
1
a
a
1b
a
XY
b
化简后:
aa
XY
b
精品文档
Y
b
{3Y}Y
{3Y}Y
.
精品文档
方法二:
P43右线性正规文法到有穷自动机的转换。
文法S->aS|bA|b
A->aS
对应的NFA为:
M=({S,A,D},{a,b},f,{S},{D})
其中:
f(S,a)=S,f(S,b)=A,f(S,b)=D,f(A,a)=S
其NFA图为:
a
SbA
a
b
D
NFA确定化后的状态矩阵为
:
Q’
a
b
1
{S}
{S}
{A,D}
2
{A,D}
{S}
φ
NFA确定化后的DFA为:
ab
12
a
.
精品文档
3.5给出下述文法所对应的正规式:
S->aA
A->bA+aB+b
B->aA
解:
将文法改为:
S=aA①
A=bA+aB+b②
B=aA③
将③代入②,得
A=bA+aaA+b④将④用求解规则,得
A=(b|aa)*b⑤,带入①得,S=a(b|aa)*b,
故文法所对应的正规式为R=a(b|aa)*b。
3.6给出与下图等价的正规文法G。
a
AaBbC
bab
D
b
答:
该有穷自动机为:
M=({A,B,C,D},{a,b},f,{A},{C,D})
其中f(A,a)=B,f(A,b)=D,f(B,a)=φ,f(B,b)=C,
f(C,a)=A,f(C,b)=D,f(D,a)=B,f(D,b)=D
根据其转换规则,与其等价的正规文法G为
G=({A,B,C,D},{a,b},P,A),其中
P:
A→aB|bDB→bCC→aA|bD|εD→aB|bD|ε
.
精品文档
3.12.解释下列术语和概念:
(1)确定有穷自动机
答:
一个确定有穷自动机
M是一个五元组M=(Q,Σ,f,S,Z),
其中:
Q是一个有穷状态集合,每一个元素称为一个状态;
Σ是一个有穷输入字母表,每个元素称为一个输入字符;
f是一个从Q*Σ到Q的单值映射;
f(qi,a)=qj
(qi,qj∈Q,a∈Σ)
表示当前状态为q,输入字符为a时,自动机将转换到下一个状态q,q
j
i
j
称为qi的一个后继状态。
我们说状态转换函数是单值函数,是指f(qi,a)
惟一地确定了下一个要转移的状态,即每个状态的所有输出边上标记的输
入字符不同。
S∈Q,是惟一的一个初态;
Z真包含于Q,是一个终态集。
(2)非确定有穷自动机
一个非确定有穷自动机M是一个五元组M=(Q,Σ,f,S,Z),其中:
Q是一个有穷状态集合,每一个元素称为一个状态;Σ是一个有穷输入字母表,每个元素称为一个输入字符;状态转换函数是一个多值函数。
f(qi,a)={某些状态的集合}(qi∈Q),表示不能由当前状态、
当前输入字符惟一地确定下一个要转移的状态,即允许同一个状态对同一输入字符有不同的输出边。
S包含于A,是非空初态集。
Z真包含于Q,是一个终态集。
(3)正规式和正规集
有字母表Σ={a1,a2,an},在字母表Σ上的正规式和它所表示的正规集可用如下规则来定义:
(1)φ是Σ是的正规式,它所表示的正规集是φ,即空集{}。
(2)ε是Σ上的正规式,它所表示的正规集仅含一空符号串,即
{ε}。
(3)是Σ上的一个正规式,它所表示的正规集是由单个符号ai所组
成,即{ai}。
(4)e1和e2是Σ是的正规式,它们所表示的正规集分别为L(e1)和
L(e2),则
①e1|e2是Σ上的一个正规式,它所表示的正规集为
L(e1|e2)=L(e1)∪L(e2).
②e1e2是Σ上的一个正规式,它所表示的正规集为
L(e1e2)=L(e1)L(e2).
③(e1)*是Σ上的一个正规式,它所表示的正规集为
.
精品文档
L((e1)*)=L((e1))*.
3.1构造下列正规式相应的DFA。
(1)1(0|1)*101
(2)(a|b)*(aa|bb)(a|b)*
(3)((0|1)*|(11))*
(4)(0|11*0)*
3.2将下面图(a)和(b)分别确定化和最小化.
a
a
01
a,b
(a)
b
b
a
0
2
b
3
a
a
a
a
b
b
a
1
4
5
b
(b)
3.3构造一个DFA,他接收∑={0,1}上所有满足如下条件的字符串,每个
1都有0直接跟
在右边。
3.4给出文法G[S],构造相应最小的
DFA。
S
aS|
bA|b
A
aS
3.5给出下述文法所对应的正规式:
S->Aa
A->bA+aB+b
B->aA
3.6给出与下图等价的正规文法G。
a
AaBbC
bab
.
精品文档
D
b
3.7给出与图3.29中的NFA等价的正规式R。
3.8文法G[〈单词〉]为:
〈单词〉〈标识符〉|〈整数〉
〈标识符〉〈标识符〉〈字母〉|〈标识符〉〈数字〉|〈字母〉
〈整数〉〈数字〉|〈整数〉〈数字〉
〈字母〉A|B|C
〈数字〉1|2|3
(1)改写文法G为G’,使L(G’)=L(G).
(2)给出相应的有穷自动机。
3.9试证明正规式(a|b)*与正规式(a*|b*)*是等价的。
3.10给出下述文法所对应的正规式:
S
0A|1B
A
1S|1
B
0S|0
3.11设字母表Σ={a,b},给出Σ上的正规式R=b*ab(b|ab)*.
(1)试构造状态最小化的DFAM,使得L(M)=L(R)。
(2)求右线性文法G,使L(G)=L(M)。
3.12解释下列术语和概念。
(1)确定有穷自动机
(2)非确定有穷自动机
(3)正规式和正规集
.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 习题
![提示](https://static.bdocx.com/images/bang_tan.gif)