编译原理 龙书第3章 作业2
3.1.1
词素序列如下表:

其中,常量的值是存在单元中的对应值;符号没有对应的值;关键字的值为其本身。
3.1.2
词素序列如下表:

其中,常量的值是存在单元中的对应值;符号没有对应的值;关键字的值为其本身。
3.3.2
1.以a开头和结尾的,中间有零个或多个a或b组成的串的组合
2.零个或多个以零或一个a和任意个b组成的串的串的组合
3.倒数第三个字符是a、其余位置为零或多个a或b的串的组合
4.有三个字符是b,其余位置可以是零或多个a组成的串的组合
5.零个或多个aa或bb,和上零个或多个,零个或多个ab或ba与偶数个a或偶数个b的串与零个或多个ab或ba与偶数个a或偶数个b的串的组合。
3.3.5(1-3,9)
1)设A={b-d,f-h,j-n,p-t,v-z}(即除了元音字母外的其他小子字母集合)。
正则表达式:Aa(A|a)e(A|e)i(A|i)o(A|o)u(A|u)
2)正则表达式:abc……xyz*(省略部分按字母序出现)
3)正则表达式:\ / \ * ((^\ * \ / )|(“ * /”)) * \ * \ /(注:” / ” 前和 ” * ” 前必须加多一个 “ \ ”)
4)正则表达式:(ba)|(baba*)
3.3.11
解:设name为所有可以做文件名的字符,前缀一定为可做文件名的字符,然后为?*\的字面字符,点好“”之后也一样
正则表达式:[name\ * \ ?? ’\’].[ name \ * \ ??’\’]
3.4.1
1.a(a|b)a
状态转移图:

化简后的状态转移图:

2.((ε|a)b)
状态转移图:

化简后的状态转移图:

再次化简后的状态转移图:

3.(a|b)a(a|b)(a|b)
状态转移图:

化简后的状态转移图:

4.abababa*
状态转移图:

化简后的状态转移图:

再次化简后的状态转移图:

5.(aa|bb)((ab|ba)(aa|bb)(ab|ba)(aa|bb))
(aa|bb)的状态转移图:

(aa|bb)化简后的状态转移图:

((ab|ba)(aa|bb)的状态转移图:

(aa|bb)和((ab|ba)(aa|bb)整合化简后的状态转移图:

3.4.2
1)Aa(A|a)e(A|e)i(A|i)o(A|o)u(A|u)

2)abc……xyz

3)\ / \ * ((^\ * \ / )|(“ * /”)) * \ * \ /

4)(ba)|(baba*)

3.6.2
1.Aa(A|a)e(A|e)i(A|i)o(A|o)u(A|u)
NFA:
DFA:

2.abc……xyz*
NFA:

DFA:

3./*([*"]*|".*"|*+[/])*/
NFA:

4.(ba*)|(baba*)
NFA:

DFA:

3.6.3
答:这个NFA接受aabb。路径如下:

3.6.4
答:这个NFA接受aabb。路径如下:

3.7.1
1.图3-26


DFA如图所示:

2.图3.29

状态转移表:


3.图3-30


得到DFA:

3.7.3
1)(a|b)*
Thompson算法求NFA:

子集构造法求DFA:

求得DFA:

DFA化简:

2)(a*|b*)*
Thompson算法求NFA:

子集构造法求DFA

求得DFA:

DFA化简:

3)((|a)b*)*
Thompson算法求NFA:

子集构造法求DFA:

求得DFA:

DFA化简:

4)(a|b)abb(a|b)
Thompson算法求NFA:

子集构造法求DFA:

求得DFA:

3.9.4
1.(a|b)*a(a|b)
NFA:

子集构造法求DFA:

根据转换表得到的DFA:

根据切分规则,将~进行如下切分:

得到最简DFA:

2.(a|b)*a(a|b)(a|b)
NFA:

子集构造法求DFA:

根据转换表得到的DFA:

根据切分规则,将~进行如下切分:

得到最简DFA:

3.(a|b)*a(a|b)(a|b)(a|b)
NFA:

子集构造法求DFA:

状态转移表如下:

根据转换表得到的DFA:

根据切分规则,将~进行如下切分:

得到最简DFA:

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
