第3章 有穷自机.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文档。上传文档
查看更多
第3章 有穷自机

正规表达式的引入: 正规表达式(也称正则表达式)就是用特定的运算符及运算对象按某种规则构造的表达式。 每个正规表达式代表一个字符串的集合,我们把其称为正规集。 语言(Language)是字符串组成的集合,我们也可以把正规表达式表示的正规集称为该正规表达式表示的语言。 正规表达式和它所表示的正规集(字符串的集合)的递归定义如下: 设有字母表为Σ,辅助字母表Σ’={ф,ε, | , . , * , ( , ) } 每一种程序设计语言都有自己的字符集(字母表)Σ。 语言中的各个单词或是Σ上的单个字符(如运算符、分隔符等),或是Σ上的字符串(如常数、表示符和关键字等)。 程序设计语言的单词可用正规式来定义,由正规式描述的正规集即为程序设计语言的单词类。例如:C-语言的词法 给定一个正规式,它唯一确定一个正规集;反之不成立。即一个正规集可由多个不同的正规式表示。 aa? {a,aa, aaa,……任意个a的串} a|aa? {a,aa, aaa,……任意个a的串} 例如: Compiler 编 译 原 理 Wednesday, March 13, 2013 正规式与有穷自动机的等价性 (1)对于字母表Σ上的NFA M,可以构造一个Σ上的正规式R,使得L(R)=L(M); (2)对于字母表Σ上的每个正规式R,可以构造一个Σ上的NFA M,使得L(M)=L(R)。 Compiler 编 译 原 理 Wednesday, March 13, 2013 1. NFA M?正规式R (1)在M上加两个结点S,Z,从S结点用ε弧到M的所有初态,从M的所有终态用ε到Z结成与M等价的M’,M’只有一个初态S和一个终态Z. 例:M: 0 3 2 1 4 start a,b a,b a,b b b a a 解: (1)加S Z S 0 3 4 1 2 Z ε ε ε a a,b a,b a,b a b b Compiler 编 译 原 理 Wednesday, March 13, 2013 (2)逐步消去M’中的所有结点,直至剩下S和Z结点,在消结过程中,逐步用正规式来标记弧, 规则如下: 1.对于 代之为 2.对于 代之为 3.对于 代之为 R1 R2 1 2 3 3 1 R1 R2 1 2 2 1 R2 R1 R2 R1| R1 R3 1 2 3 3 1 R1R2﹡R3 R2 Compiler 编 译 原 理 Wednesday, March 13, 2013 (2)消除M中的所有结点 a|b x 0 2 4 y ε ε ε aa bb a|b a|b x 0 y aa(a|b) * bb(a|b) * a|b ε 解: (1)加xy x 0 3 4 1 2 y ε ε ε a a,b a,b a,b a b b x y (a|b)*(aa|bb)(a|b)* Compiler 编 译 原 理 Wednesday, March 13, 2013 2.正规式R?NFA M (1)对NFA M构造一个广义的状态图,其中只有一个初态S和终态Z,连接S和Z的有向弧标记为正规式。 (2)对正规式依次进行分解,分解的过程是一个不断加入结点和弧的过程,直到转换图上的所有弧标记上都是字母表Σ上的元素或ε为止。 Compiler 编 译 原 理 Wednesday, March 13, 2013 若s,t为Σ上的正规式 (a)对于正规式R=st x y st x y s t t (b)对于正规式R=s|t x y s|t x y s t (c)对于正规式R=rs* t x y rs*t x y r t t s Compiler 编 译 原 理 Wednesday, March 13, 2013 ? A Z S (a|b) * abb ? 例:为R=(a|b) abb构造NFA,使得L(N)=L(R) * S Z b a b A B b a ? Z bb S a|b A a Compiler 编 译 原 理 Wednesday, March 13, 2013 已证明:非确定的有穷自动机

文档评论(0)

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

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

1亿VIP精品文档

相关文档