编译原理 第2章习题课说课讲解

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

编译原理第2章习

题课

1.构造正规式的DFA。(1)1(0|1)*101

NFA化为DFA:状态转换表:

化简后得:

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

NFA 化为DFA :

所以,DFA 为:

C

a

NFA到DFA:

化简后得;

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

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

NFA确定化后的DFA为:

将A,B 合并得:

3.构造一个DFA ,它接受∑

={0,1}上所有满足如下条件的字符串,每个1都有

0直接跟在后边。

解:按题意相应的正规表达式是

0*(0 | 10)*0*

构造相应的

DFA

,首先构造NFA 为

εεεε

1 0

用子集法确定化 DFA 为

4.给出NFA 等价的正规式R 。 方法一:首先将状态图转化为 得

0,1 消去其

余结点

、 0,1

NFA 等价的正规式为(0|1)*11

方法二:NFA →右线性文法→正规式 A →0A|1A|1B

B →1

C 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 为

b

(2)正规式(a*|b*)*的 NFA 为:

其最简化

DFA 为:

b

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:

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

再将其最小化得:

(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:

化简后: 方法二: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 确定化后的状态矩阵为:

b

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|ε

相关文档
最新文档