(精)第二章 词法分析确定有限自动机.pptVIP

(精)第二章 词法分析确定有限自动机.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译程序原理与实现 张晶 2011.3 第2章 outline 一、词法分析概述 1,词法分析程序的功能 2,词法分析相关的一些问题 二、正则表达式 三、有限自动机 1,确定有限自动机DFA 2,非确定有限自动机NFA,NFA到DFA的转换 3,DFA的化简 4,正则表达式到NFA的转换 四、词法分析程序构造 三、有限自动机 正则表达式 - specification 有限自动机 – Implementation 什么是有限自动机? 有限自动机是描述有限状态系统的数学模型。 有限状态系统: 状态:是将事物区分开的一种标识. 具有离散状态的系统:如数字电路(0,1);电灯开关(on,off);十字路口的红绿灯;其状态数是有限的。 具有连续状态的系统:水库的水位、室内的温度等可以连续发生变化;可以有无穷个状态. 有限状态系统是离散状态系统。 在很多领域,如网络协议分析、形式验证、代码安全、排版系统等有重要应用。 有限自动机的例子-经典的过河问题 一个人带着一头狼,一头羊,以及一棵白菜处于河的左岸。人和他的伴随品都希望渡到河的右岸。有一条小船,每摆渡一次,只能携带人和其余三者之一。如果单独留下狼和羊,狼会吃羊;如果单独留下羊和白菜,羊会吃菜。怎样才能渡河,而羊和白菜不会被吃掉呢? 过河问题模型化 有限自动机的模型 有限自动机FA可以理解成状态控制器 FA有有限个状态,其中有初始状态,终止状态 起始:处于初始状态,读头位于输入带开头 中间:从左到右依次读取字符,发生状态迁移 结束:读头到达输入带末尾,状态到达终态 有限自动机的五要素 有限状态集 SS 有限输入符号集 ? 转移函数 ? (s,a) = t 一个开始状态s0 一个终止状态集 TS 输入:字符串 输出:若输入字符串结束,且到达终止状态,则接受,否则拒绝。 例如: “101” 输出拒绝,“1010”输出接受。 1、确定有限自动机DFA 确定有限自动机DFA是一个五元组 M =(SS,?,?,S0,TS), SS :有限的状态集合 {S0,S1,S2,…} ? :有限的输入字符表 ? :状态转换函数,SS ? ?? SS?{?} ?是单值全映射函数; S0 :初始状态, S0 ? SS TS :终止状态集,TS?SS 例1:DFA M=({0,1,2,3,4},{a,b},?,{0},{3}) 其中?为: ? ( 0, a ) = 1 ? ( 0, b ) = 4 ? ( 1, a ) = 4 ? ( 1, b ) = 2 ? ( 2, a ) = 3 ? ( 2, b ) = 4 ? ( 3, a ) = 3 ?( 3, b ) = 3 ? ( 4, a ) = 4 ? ( 4, b ) = 4 DFA的两种表示形式 转换表(transition table) 易于实现 转换图(transition graph) 直观,易于理解 转换表 行:状态 列:字符 元素:表示状态转换,状态或? 开始状态:默认表的第一行表示开始状态,或者状态加上角标+ 终止状态:状态加上角标- 转换表 例1:DFA M=({0,1,2,3,4},{a,b}, ?,{0},{3}) 其中?为: ?( 0, a ) = 1 ? ( 0, b ) = 4 ? ( 1, a ) = 4 ? ( 1, b ) = 2 ? ( 2, a ) = 3 ? ( 2, b ) = 4 ?( 3, a ) = 3 ? ( 3, b ) = 3 ? ( 4, a ) = 4 ? ( 4, b ) = 4 转换图 状态 转换边 f(S1,a) = S2 开始状态 终止状态 转换图 转换图 DFA的例子 例2: DFA的确定性 形式定义 初始状态唯一:S0 转换函数是单值函数,即对任一状态和输入符号,唯一地确定了下一个状态 转换表 初始状态唯一:第一行 表元素唯一 转换图 初始状态唯一: 每个状态最多发出n条边,n是字母表中字母的个数,且发出的任意两条边上标的字母都不同 DFA的一些概念 DFA接受的字符串 如果M是一个DFA, a1 a2… an 是一个字符串,如果存在一个状态序列 (S0, S1 , … ,Sn),满足 S0 S1 , S1 S2 , …… , Sn-1 Sn 其中 S0 是开始状态,Sn 是接受状态之一,则串a1 a2… an 被DFA M接受. DFA定义的串的集合(DFA接受的语言) DFA M接受

文档评论(0)

xiaofei2001129 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档