编译原理 第2章习题课教学文案

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

1.构造正规式的DFA。

(1)1(0|1)*101

首先构造NFA:

1 NFA化为DFA:

状态转换表:

化简后得:

(2)(a|b)*(aa|bb)(a|b)*

化简后得;

2.将下图确定化和最小化。

解: 首先取A=ε-CLOSURE({0})={0},NFA确定化后的状态矩阵为:

NFA确定化后的DFA为:

将A,B 合并得:

3.构造一个DFA ,它接受∑={0,1}上所有满足如下条件的字符串,每个1都有0直接跟在后边。

解:按题意相应的正规表达式是0*(0 | 10)*0*

构造相应的DFA ,首先构造NFA 为

DFA 为

4.给出NFA等价的正规式R。

方法一:首先将状态图转化为

得0,1

消去其余结点

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 *)*是等价的。

证明: (1)

正规式(a|b)*

的NFA 为

=>

其最简DFA 为

(2)正规式(a*|b*)*的 NFA 为: 其最简化DFA 为:

由于这两个正规式的最小DFA 相同,所以正规式(a|b)*等价于正规式(a*|b*)*。

6.设字母表∑={a,b},给出∑上的正规式R=b*ab(b|ab)*。

(1)试构造状态最小化的DFA M,使得L(M)=L(R)。

(2)求右线性文法G,使L(G)=L(M)。

解: (1)构造NFA:

b

(2)将其化为DFA,转换矩阵为:

b

再将其最小化得:

b

(2)对应的右线性文法G=({X,W,Y},{a,b},P,X)P: X→aW|bX W→b Y|b y→a W|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)=Z f(S,2)=Z f(S,3)=Z

f(I,A)=I f(I,B)=I f(I,C)=I

f(I,1)=I f(I,2)=I f(I,3)=I f(I,ε)=I

f(Z,1)=Z f(Z,2)=Z f(Z,3)=Z f(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+b

S=(a+ba)*b

即:S=(a|ba)*b

正规式(a|ba)*b 对应的NFA :

正规式(a|ba)*b 对应的DFA :

化简后:

b

方法二: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图为:

NFA确定化后的DFA为:

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。

答: 该有穷自动机为:

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|bD B→bC C→aA|bD|εD→aB|b D|ε

相关文档
最新文档