lec3编译原理.pptVIP

  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文档。上传文档
查看更多
lec3编译原理

《编译原理与技术》讲义 编译原理与技术 词法分析 (2) 有限自动机 有限自动机(Finite Automata-FA)是种更一般化的状态转换图。分为NFA和DFA。 词法分析器自动生成: 正规式 NFA DFA 词法程序 非确定有限自动机-NFA NFA Mn 是一个五元组 Mn =(?, S, S0,F,?), 其中: ?-有限字母表(输入符号集) S-有限状态集 S0-非空初态集合,S0?S F-终态集合,F ?S ?-状态转换函数,S x ?* ? 2S 确定的有限自动机-DFA DFA Md 是一个五元组 Md =(?, S, S0,F,?), 其中: ?, S, S0,F 同NFA中的定义,而?定义如下: ? :S x ? ? S , 为一单值映射函数。 有限自动机的表示 1)状态转换图 有限自动机的表示 2)状态转换矩阵(表) 有限自动机的表示 e.g.7 NFA Mn =(?, S, S0,F,?),其中: ? = { 0,1 } , S = {S0, S1 , S2 , S3 , S4 },F={S2 , S4} ?(S0,0)= {S0, S3 } ?(S0,1)= {S0, S1 } ?(S1,0)= ? ?(S1,1)= {S2} ?(S2,0)= {S2} ?(S2,1)= {S2} ?(S3,0)= {S4} ?(S3,1)= ? ?(S4,0)= {S4} ?(S4,1)= {S4} 有限自动机的表示 e.g.7 中NFA的状态转换图如下: 有限自动机的表示 e.g.7 中NFA的状态转换矩阵(表)如下: 有限自动机识别的语言 e.g.8 下面FA识别(接受)的串是什么? 有限自动机识别的语言 e.g.9 下面DFA M识别的语言L(M)是什么? 有限自动机识别的语言 e.g.9 L(M) = {含偶数个0和偶数个1的0,1串} 有限自动机识别的语言 e.g.10 下面DFA M识别的语言L(M)是什么? 有限自动机识别的语言 e.g.10 L(M) = { 能被“3”整除的二进制数(串) } 有限自动机识别的语言 e.g.10 L(M) = { 能被“3”整除的二进制数(串) } 二进制串 10010 , 即十进制18的识别过程: L(M1) = { 能被“3”整除的非空二进制数(串) } 比较 DFA 和 NFA(1) 比较 DFA 和 NFA(2) 比较 DFA 和 NFA(3) e.g.11 识别正规式(0|1)*01的DFA和NFA 正规式与有限自动机 对于?上正规式R,存在一个NFA M,使得 L(M) = L(R) ,反之亦然。 Thopmson 方法: R=? R=? R=a∈? 正规式与有限自动机 R= R1 | R2 (1) 正规式与有限自动机 R= R1 | R2 (2) 正规式与有限自动机 R= R1 | R2 (3) 正规式与有限自动机 R= R1 · R2 (1) 正规式与有限自动机 R= R1 · R2 (2) 正规式与有限自动机 R= R1 · R2 (3) 正规式与有限自动机 R= R1 · R2 (4) 正规式与有限自动机 R= R1* (1) 正规式与有限自动机 R= R1* (2) 正规式与有限自动机 R= R1* (3) 正规式与有限自动机 R= R1* (4) 正规式与有限自动机 R= R1* (5) 正规式与有限自动机 R= (R1) e.g.12 构造(0|1)*01的对应的FA。(1) e.g.12 构造(0|1)*01的对应的FA。(2) e.g.12 构造(0|1)*01的对应的FA。(3) e.g.12 构造(0|1)*01的对应的FA。(4) e.g.12 构造(0|1)*01的对应的FA。(5) Thompson方法所构造的NFA的状态数和?转换较多。可以采用下面方法减少之: NFA的确定化(转换到DFA) 子集构造法 对NFA进行模拟。NFA的转换表中每个条目是状态子集,而在DFA中则为单一的状态。NFA到DFA的转换的一般想法是,让DFA中的每个状态代表NFA中的状态子集。DFA用它的状态去记住NFA在读入每个输入符号后能到达的所有状态的集合,即在DFA在读了符号a1a2…an后到达代表NFA状态

文档评论(0)

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

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

1亿VIP精品文档

相关文档