- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二单元 词法分析非确定有限自动机
编译程序原理与实现 张晶 2011.3 第2章 outline 一、词法分析概述 1,词法分析程序的功能 2,词法分析相关的一些问题 二、正则表达式 三、有限自动机 1,确定有限自动机DFA 2,非确定有限自动机NFA,NFA到DFA的转换 3,DFA的化简 4,正则表达式到NFA的转换 四、词法分析程序构造 2、非确定有限自动机 确定有限自动机是五元组(SS,?,?,S0,TS) 确定性体现:初始状态唯一、转换函数是单值函数 非确定有限自动机:也是五元组(SS,?,?,S0,TS) 其中 SS={S0,S1,…Sn}是状态集 ?是字母表 S0 ? SS是初始状态集,不能为空 ?是转换函数,但不要求是单值的 ? : SS ? (? ? ? )? 2SS TS ? SS是终止状态集,可为空。 非确定有限自动机的例子 ? = {a, b} SS: {S0, S1, S2, S3} 初始状态集: {S0 , S1} 终止状态集: {S3} ? : {(S0,a)? {S1, S3},(S0,?)? {S2}, (S1,b)?{S1}, (S1, ?)?{S2}, (S2, ?)?{S3}, (S3, b)?{S3}} NFA也可以用状态转换图或状态转换矩阵表示 非确定有限自动机的例子 NFA接受的字符串 NFA接受的字符串 如果M是一个NFA, a1 a2… an 是一个字符串,如果存在一个状态序列 (S0, S1 , … ,Sn),满足 S0 S1 , S1 S2 , …… , Sn-1 Sn 其中 S0 是开始状态之一,Sn 是接受状态之一,则串a1 a2… an 被NFA M接受. NFA定义的串的集合(NFA接受的语言) NFA M接受的所有串的集合,称为M定义的语言,记为 L(M) NFA与DFA的比较 NFA到DFA的转换 例如输入串:100 NFA NFA需要在多条路径中选择,因此的效率低! 但NFA描述问题方便。 NFA和DFA都识别正则语言。NFA可转换成DFA。 NFA到DFA的转换 对任意NFA,都存在一个DFA与之等价。 转换的思想:消除不确定性 合并初始状态集成一个状态 消除?边 消除多重定义的边。 ?-closure(空闭包) 对于给定的 NFA A, 和它的一个状态集合 SS, SS的空闭包计算如下: 第一步:令?-closure(SS) = SS; 第二步:如果在状态集SS中存在状态s, s到状态s’存在一条? 边, 并且s’ ??-closure(SS ), 则将s’ 加入SS的空闭包?-closure(SS); 重复第二步,直到再没有状态可加入?-closure(SS) . ?-closure的例子 转向状态 对于NFA A中的给定状态集合SS 和符号 a, NextStates(SS, a) = {s | 对于状态集SS中的一个状态s1,如果A中存在一条从s1到s的a转换边} 转向状态的例子 NFA到DFA的转换算法(子集法) 给定一个 NFA A = {?, SS, SS0, ?, TS} 生成等价的 DFA A’ = {?, SS’,S0, ?’, TS’} 步骤 (1) 令S0 = ?-closure(SS0), 将S0 加入 SS’; (2) 从SS’中选择一个状态s, 对于任意 a??, 若有 s’ = ?-closure(NextStates(s, a)), 令?’ (s, a) ? s’。若s’?SS’,将s’加入SS’; (3) 重复第二步,直到SS’ 中的所有状态都被处理过; (4) 对于SS’中的一个状态s, 如s = {S1, .., Sn}, 如果有状态 Si?TS, 则s是 A’的一个接受状态, 将s加入 TS’; NFA到DFA转换的例子 例1: NFA到DFA转换的例子 例2: NFA到DFA转换的例子 例3: DFA的化简 NFA转换成的DFA,有时候会有一些等价状态,这些等价状态会使分析效率降低,因此应合并。 合并了所有等价状态后的DFA称为最简自动机。 等价DFA和最简DFA的定义 等价 DFAs 如果两个DFA接受的字符串的集合是相同的; 在接受相同字符串集的DFA中,最小DFA指的是状态数最少的DFA
您可能关注的文档
- 第三单元 卫星运动基础及GPS星历.ppt
- 第三单元 必然性推理(上)——复合命题推理.ppt
- 第三单元 复合命题及其推理.ppt
- 第三单元 数论算法-2.ppt
- 第三单元 描述性研究.ppt
- 第三单元 搜索习题课.ppt
- 第三单元 情景再现.ppt
- 第三单元 房地产开发项目的可行性分析new.ppt
- 第三单元 旅游景区产品的特点与构成.ppt
- 第三单元 应收及预付款项.ppt
- 2025年中山市沙溪镇人民政府所属事业单位招聘11人笔试备考题库及参考答案详解一套.docx
- 2025年中山市横栏镇人民政府所属事业单位第二期招聘笔试高频难、易错点备考题库及参考答案详解一套.docx
- 2025年中山市横栏镇人民政府所属事业单位第二期招聘笔试高频难、易错点备考题库含答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试高频难、易错点备考题库及完整答案详解1套.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试高频难、易错点备考题库参考答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库附答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试高频难、易错点备考题库附答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库附答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库及答案详解一套.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库及完整答案详解1套.docx
文档评论(0)