编译技术教学课件作者陈文宇03课件幻灯片.pptVIP

编译技术教学课件作者陈文宇03课件幻灯片.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文档。上传文档
查看更多
例 ε-closure(0)={0,1,2,4,7} →A Dtran[A, a] →ε-closure(Move(A, a)) Move(A, a)={3,8} ε-closure({3,8})={1,2,3,4,6,7,8} →B Dtran[A, b]={1,2,4,6,7} →C 有限自动机 例(续)- DFA 转换表 有限自动机 NFA/DFA状态 a b A {0,1,2,4,7}/ B {1,2,3,4,6,7,8}/ {1,2,4,5,6,7}/ {1,2,4,5,6,7,9}/ {1,2,4,5,6,7,10}/ B B B B C C C D E B C D E 例(续) - DFA 状态转换图 start b E A B C D a b a b a a a b 有限自动机 有限自动机 从正则表达式构造 NFA 1.ε ε f i 2. a a f i 3. s|t ε f i N(s) N(t) ε ε ε N(s)是正则表达式s对应的NFA 有限自动机 N(t) N(s) 4. st f i 有限自动机 N(s) 5. s* f i ε ε ε ε 有限自动机 例:(a|b)*abb – 构造分析树 r11 r9 r7 r5 r4 r10 r8 r6 * b b a r3 r1 r2 ( ) a b | 有限自动机 例3.24 r11 r9 r7 r5 r4 r10 r8 r6 * b b a r3 r1 r2 ( ) a b | a 3 2 r1 b 5 4 r2 有限自动机 例(续) r11 r9 r7 r5 r4 r10 r8 r6 * b b a r3 r1 r2 ( ) a b | r3 ε 6 1 2 3 4 5 ε ε ε a b 有限自动机 例(续) start b 10 0 1 2 3 4 5 6 7 8 9 ε ε ε ε ε ε ε ε a a b b 有限自动机 有限自动机 DFA 的化简(最小化) 化简:为 DFA 寻找一个状态数比较少的等价 DFA 可以证明:任何 DFA (或 NFA)都存在(唯一)一个状态数最少的 DFA 与之等价 DFA的最小化: 基本思想:寻找等价状态,合并之 等价状态必须满足两个条件: 1、一致性条件 — 状态 s 和 t 必须同时为接受状态或非接受状态 2、蔓延性条件 — 对于所有的输入符号,状态 s 和 t 必须转移到等价的状态中 有限自动机 2、寻找到等价状态后,合并等价状态 (1)等价的状态集合作为一个新的状态 (2)原等价状态集合中的状态的入边和出边分别作为新的状态的入边和出边 有限自动机 start b E A B C D a b a b a a a b 例子 有限自动机 a b A B C B B D C B C D B E E B C 算法 把状态分成非接受和接受状态两组{ABCD}和{E} 对于{ABCD},输入a无法区分它们;输入b将其分成两组{ABC}和{D}。 同理{ABC}可以继续分成{AC}和{B}。 {AC}不可区分,算法结束。 例子(续) 有限自动机 start E A B D a b a b a a b 例子(续) 有限自动机 有限自动机 正则表达式与有限自动机的等价性 由正则式到有限自动机的转换算法知 例如 0(10)* q0 q1 start 1 0 0 q2 有限自动机 正则文法与有限自动机的等价性 对每个正则文法 G ,都存在一个 FA ,使 L(M)=L(G) 对每个 DFA ,都存在一个正则文法 G ,使 L(G)=L(M) G: S→0A A→1B|ε B→0A 有限自动机 正则文法与有限自动机的等价性 G: S→0A A→1B|ε B→0A q0 q1 start 1 0 0 q2 0(10)* 有限自动机 正则表达式与正则文法的等价性 由以上两个等价条件可知 有限自动机 正则文法、正则式和有限自动机都是描述正则语言的工具 用正则式表示 用正则文法产生 用有限自动机识别 研究这三个工具,是为了构造程序设计语言的词法分析器,一般过程是首先用正则式表示出单词符号的结构,再将其转化为有限自动机,在有限自动机的基础上编写程序 词法分析实现 将FA转成代码 人工实现 loop switch(State) { case state1: switch(input_Character) { case ‘a’: /*do something*/ State = state3;break; case ‘b’: /*do something*/

文档评论(0)

精品课件 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档