- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京交通大学 于双元
1
第三章 词法分析
§3.1 设计扫描器时应考虑的问题
§3.2 正则文法和状态转换图
§3.3 有限自动机
§3.4 正则表达式和正规集
§3.5 词法分析程序的实现
北京交通大学 于双元
2
§3.3.1 确定的有限自动机(DFA)§3.3.2 非确定的有限自动机(NFA M′)
§3.3.3 DFA M与NFA M ′的等价性
§3.3 有限自动机
北京交通大学 于双元
3
§3.3 有限自动机(FA)
§3.3.1 确定的有限自动机(DFA)
一个DFA有以下五个元素组成:
DFA M=(K,∑,f,S0,Z)
其中
K:
状态的集合(有限个状态)
∑:
允许输入的字符的集合
Vt
f:
状态转换函数,
单值函数K×∑→K
S0:
初始状态
S0∈K
Z:
终止状态集
K Z
f(Si,a)=Sj
北京交通大学 于双元
4
讨论:
(1)
①确定性
f是单值函数
从某一状态读一字符的下一状态唯一确定
②有限的
K集合元素个数有限
(2) f 定义的推广
f单值函数K×∑→K
K×Σ*→K
Σ*=∑+∪{ε}
记为f^
①f^(S, ε)
=S
②f^(S,aω)
=f^(f(S,a), ω)
a∈∑,ω ∈Σ*
f(S,a)=Sk
=f^(Sk, ω)
=…=St
St ∈K
f^ :K×Σ*→K 单值映射
北京交通大学 于双元
5
③f^是在Σ*上定义,f是在∑上定义,
f^包含f, 将f^和f合并为一个f,记为f(推广后)
(3)有限自动机的功能:识别句子
L(M)=
{
}
x
|
f(S0,x)
∈Z,
x∈Σ*
特别:f(So, ε)
=So
且
So∈Z
称ε可为DFA M识别
S0
北京交通大学 于双元
6
(4)DFA可非形式地表示成状态图和状态矩阵
例:DFA M=({S,A,B,C},{0,1},δ,S,{S})
δ(S,0)=B δ(S,1)=A
δ(A,0)=C δ(A,1)=S
δ(B,0)=S δ(B,1)=C
δ(C,0)=A δ(C,1)=B
状态
输入 0
输入 1
S
B
A
A
C
S
B
S
C
C
A
B
101011
δ(S,101011)
=δ(δ(S,1),01011)
=δ(A,01011)
=δ(C,1011)
=δ(B,011)
=δ(S,11)
=δ(A,1)
=S
计算机易存状态转换矩阵
北京交通大学 于双元
7
(5)正则文法G
一定
DFA M
反之
L(G)
L(M)
等价
北京交通大学 于双元
8
§3.3.2 非确定的有限自动机(NFA M′)
一个NFA M′有以下五个元素组成,
NFA M′=(K′,Σ,f′,S0′ ,Z′)
其中:
K′:状态的集合(有限状态)
Σ: 允许输入的字符集合Vt
f′:状态转换函数,多值函数,
K′×Σ →2k’(K的所有子集的集合)
f(Si,a)={ Sk,St,… }
S0:初始状态 S0∈K ′
Z: 终止状态集
K ′
另外形式:弧线上有ε
NFA M′=(K′,Σ∪{ε},f′,S0′ ,Z′)
Z
北京交通大学 于双元
9
讨论:
1) ①不确定:f′是多值函数,一对多
②有限: K′有限
2) f′定义推广到Σ* 上,
K′×Σ*→2k’, 记为f^′
①f^′(S,ε)={S}
②f^′(S,aw)
=f^′(f′(S,a),w)
设: f′(S,a)={S1,S2,…..,Sk}
=f^′({S1,S2,…..,Sk},w)
=∪f^′(Si, w )
i=1
k
③将f^′和f′合并为一个f′,记为f ′
是2k’中的元素
满足映射K′×Σ* →2k’
北京交通大学 于双元
10
(3) NFA M ′所确定的语言
L(M ′)=
{x |
f′(S0′ , x)
∩Z≠Ø
,x∈Σ*}
(4) NFA M ′通常用状态转换图来表示
例: NFA M ′=({S,A,B,C},{a,b}, f ′,S,{C})
符号串ababb可由此NFA M ′ 所识别.
北京交通大学 于双元
11
§3.3.3 DFA M与NFA M ′的等价性
一、对于∑上 NFA M ′
一定
DFA M
L(M′)
L(M)
二、方法:
确定化
1、读ε不动作的NFA M ′
(弧线上无ε)
2、读ε动作的NFA M ′
(弧线上有ε)
最小化
等价
DFA状态数最少
北京交通大学 于双元
12
1、 读ε不动作的NFA M ′的确定化
问题:设有一NFA M′=(K′,∑ ,f′ , S0′, Z′)
现构造一∑上的DFA M=( K,∑,f,S0,Z)
使L(M ′)=L(M)
①K由K’的全部子集组成 K=2
您可能关注的文档
最近下载
- 京剧的服装课件.ppt VIP
- 保证供货周期的组织方案和人力资源安排.doc VIP
- 乌有先生历险记(原文,练习,注释,翻译)解读.doc
- 红色经典故事PPT课件.pptx VIP
- (人教版2024)生物七上2.2.1 无脊椎动物(新教材).pptx
- 2023-2024学年江西省上饶市余干县八年级上期中物理试卷附答案解析.pdf
- 西北师范大学教育学理论与实践期末试卷.doc VIP
- 2023年成都信息工程大学数据科学与大数据技术专业《数据结构与算法》科目期末试卷B(有答案).docx VIP
- 河北省衡水中学2024-2025学年高三上学期第一次综合素养测评数学试题(原卷版).docx
- 数据结构(用面向对象方法与C++语言描述)第二版.pdf VIP
文档评论(0)