编译原理第三章(4-3)剖析.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

558411 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档