编译原理 第3章习题解答

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

第三章习题参考解答

3.1 构造自动机A,使得

③当从左至右读入二进制数时,它能识别出读入的奇数;

④它识别字母表{a, b}上的符号串,但符号串不能含两个相邻的a,也不含两个相邻的b;

⑤它能接受字母表{0, 1}上的符号串,这些符号串由任意的1、0和随后的任意的11、00对组成。

⑥它能识别形式如

±dd*⋅ d*E ±dd

的实数,其中,d∈{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}。

3.2 构造下列正规表达式的DFSA:

① xy*∣yx*y∣xyx;

② 00∣(01)*∣11;

③ 01((10∣01)*(11∣00))*01;

④ a(ab*∣ba*)*b。

3.3 消除图3.24所示自动机的空移。

b

ε

q

1

q

2

q

3

a

b

a,b

q

a

q

6

q

4

q

5

a

b

ε

ε

ε

图3.24 含空移的自动机

3.4 将图3.25所示NDFSA确定化和最小化。

x

y

q

q

1

q

2

q

4

q

3

x

y

x

y

x,y

x

图3.25 待确定化的NDFSA

3.5 设e、e1、e2是字母表∑上的正规表达式,试证明

① e∣e=e;② {{e}}={e};③ {e}=ε∣e{e};④ {e1 e2} e1= e1{e2 e1};

⑤ {e1∣e2}={{e1}{e2}}={{e1}∣{e2}}。

3.6 构造下面文法G[Z]的自动机,指明该自动机是不是确定的,并写出它相应的语言: G[Z]:

Z→A0

A→A0∣Z1∣0

3.7 设NDFSA M=({x, y},{a, b},f, x, {y}), 其中,f(x, a)={x, y}, f(x, b)={y}, f(y, a)=∅, f(y, b)={x, y}。试对此NDFSA确定化。

3.8 设文法G[〈单词〉]:

〈单词〉→〈标识符〉∣〈无符号整数〉

〈标识符〉→〈字母〉∣〈标识符〉〈字母〉∣〈标识符〉〈数字〉

〈无符号整数〉→〈数字〉∣〈无符号整数〉〈数字〉

〈字母〉→a∣b

〈数字〉→1∣2

试写出相应的有限自动机和状态图。

3.9 图3.29所示的是一个NDFSA A,试构造一个正规文法G,使得L(G)= L(A)。

A

B

b

S

a

a,b

C

a

D

b

图3.29 FSA A

3.10 构造一个DFSA,它接受∑={a, b}上的符号串,符号串中的每一个b都有a直接跟在右边;然后,再构造该语言的正规文法。

参考答案

3.1 解 (1)

(2)

(3) 依题意,当二进制数的末尾为1时,表示此二进制数为奇数。因此自动机接收由0、1构成的一个二进制串,且串的最后一位必为1(特殊情况下,接收数字1)。构造的自动机如下:

z

S

1

0,1

(4) 由题中自动机所识别的符号串的要求,得到相应的正规文法:

S→aB|bA|a|b|ε

A→aB|a

B→bA|b

由此正规文法得到相应的状态转换图如右图所示。利

用子集法构造确定的有穷自动机如下表所示(已换名)。

将NFSA确定化为DFSA的过程

I I a I b

[S,Z] 0[B,Z] 1[A,Z] 2

[B,Z] 1[A,Z] 2

[A,Z] 2[B,Z] 1

1、2都是

终止状态,但由于它们的输入符号不相同,所以这三个状

态不等价。因此,该DFSA已是最小化的DFSA。

(5) 由题中自动机所识别的符号串的要求:“0与1任意出现,随后的11和00也任意出现”,得到相应的正规表达式为(1|0)*(11|00)*

由此正规表达式得到相应的状态转换图(NFSA)如图所示。

11

Z

1

C

D

00

E

ε

ε

B

ε

A

ε

S

利用子集法构造确定的有穷自动机如下表所示(已换名)。

I I0I1

[S,A,B,C,Z] S[A,B,C,E,Z] A[A,B,C,D,Z] B

[A,B,C,E,Z] A[A,B,C,E,Z] A[A,B,C,D,Z] B

[A,B,C,D,Z] B[A,B,C,E,Z] A[A,B,C,D,Z] B

DFSA相应的状态图如下左图所示。对左图所示的DFSA进行最小化:因为该DFSA中所有的状态均是终止状态,且输入0均到达A,输入1均到达B,所以状态S、A、B等价。最小化DFSA如右图所示。

a, b, ε

a

B

b

b

A

S

a

a

b

Z

a

a

b

1

2

化简后的DFSA

相关文档
最新文档