习题参考答案 第4章 词法分析(注:部分解题过程略)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题参考答案 第4章 词法分析(注:部分解题过程略)
4.1 编写以下字符串集的正规式(若没有正规式则说明原因): (1)以a 开头和结尾的所有小写字母串; (2)以a 开头或/和结尾的所有小写字母串; (3)不以0开头的所有数字串;
(4)每个5均在每个1之前的所有数字串;
(可能有两种理解:a ,每个1前面总有个5;b ,所有5都在所有的1前面) (5)a 和b 的个数相等的所有ab 串。 解:(1)a(a|b|c|…|z)*a|a
(2)a(a|b|c|…|z)*|(a|b|c|…|z)*a (3)(1|…|9)(0|1|2|…|9)*
(4)((0|2|3|4|6|7|8|9)*51)*(0|2|3|4|6|7|8|9)* (按a 的理解) (5)“a 和b 的个数相等的所有ab 串”属上下文有关,正规式不能描述。 4.2 简述由下列正规式生成的语言: (1)(a|b)*a(a|b|ε) (2)(A|B|…|Z)(a|b|…|z)* (3)(aa|b)*(a|bb)*
(4)(0|1|…|9|A|B|C|D|E|F)+(x|X) 解:(1)以a ,aa 或ab 结尾的ab 串; (2)以1个大写字母打头的小写字母串;
(3)由若干个a 串和b 串交替出现的串,其中前段的a 串和后段的b 串的长度均为偶
数; (4)十六进制数的一种表示形式,以x 或X 结尾。
4.3 构造4.1题的每个字符串集的DFA ,或说明不存在DFA 的原因。
解:(1)由正规式a(a|b|c|…|z)*a|a 构造的NFA1,以及确定化得到的DFA1分别为:
(2)由正规式a(a|b|c|…|z)*|(a|b|c|…|z)*a 构造的NFA2,以及确定化简得到的
DFA1
…,z
DFA2分别为:
(3)由正规式(1|…|9)(0|1|2|…|9)*构造的DFA3为:
(4)依题意构造的DFA4为:
(5)确定有限自动机与3型文法等价。而“a 和b 的个数相等的所有ab 串”属上下文有关,需要1型文法描述,故确定有限自动机不能描述。
4.4 构造下列正规式相应的NFA ,然后转换为DFA : (1)(a|b)*a(a|b|ε) (2)(aa|b)*a(a|bb)* 解:(1)解一
DFA2
+
DFA1
NFA1
DFA4
DFA3
(2)
4.5 构造自动机A1和A2,使得 L(A1)={ε,a n ,ba n |n≥1} L(A2)={ε,(ab)
n |n≥1} 解:
4.6 将下列NFA 确定化:
NFA2
-A2
A1
DFA2
NFA2
A1
A2
4.7 消除下列εFA 的ε边:
解:
4.8 构造以下3型文法相应的最简自动机(“最简自动机”应该是“最简确定自动机”):
G: S → aS | bA | a A → aS | bA | bB B → bB | b
解:
NFA
DFA 已是最简的
A1
DFA1
DFA2
A1
4.9 构造以下自动机相应的3型文法G:
解:G: A → aB | bB
B → a
C | b
D | a | b
C → aB
D → bB
4.10 将以下自动机最小化:
解:确定化:
最小化: