编译原理第五讲讲述素材.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
q0 q1 f1 q2 f0 m2 m1 ? ? ? ? f2 ? q1 f1 r=r1r2 r=r1* 上述证明方法,是对于一个正规表达式r,构造一个FA m,且L(m)=L( r )的算法,但假定知道r的计算顺序。 正规表达式r的语法是上下文无关文法。 例3.5构造与下列正规式 ( c) r=01*?1 等价的有限自动机。语法树如左下图。 ? * 0 1 1 q0 q1 0 q2 q3 1 q2 q3 q5 q4 1 ? ? ? ? 0 1 q0 q1 q6 q7 1 q2 q5 q4 ? ? ? ? ? q0 q1 q4 q2 q3 q3 q6 q7 1 1 0 ? ? ? ? ? q8 q5 q9 ? ? ? ? ? 对于?上任一NFA m,能构造?上一个正规表达式r,使得L( r )=L(m)。 把转换图的概念拓广,每条弧上可以用一个正规式标记。首先,在m的转换图上加进x,y两个结。从x用?弧连接到m的所有初态结点,从m的所有接受态结点用?弧连接到y,从而构成一个新的NFA m’,L(m)=L(m’)。 下面,逐步消去NFA m’中的状态结点,直至剩下x,y为止。在消结的过程中,逐步用正规式标记弧。消结的过程是直观的,只需反复使用下面的替换规则。 a b c a c a c a c a b c a c r1 r2 r2 r2 r1 r1 r3 r1r2 r1?r2 r1r2*r3 替换规则 代之以 代之以 代之以 3.5 正规文法与有限自动机(FA)的等价性 L(G)=L(m) 定理3.3 对于每一个右线性正规文法或左 线性正规文法G,都存在一个FA m,使 L(m)=L(G) 证 给定右线性正规文法G=(VT,VN,S,P),设 f? VN ,令m=(VT ,Q, S, F, ?), 其中,F= ?f? Q= VN??f?, 转移函数 ? 定义如下: (a) A?a, ?(A,a)=f (b) A ?aA1?aA2 ?... ?aAn ?(A,a)= ?A1,A2 ,... ,,An ? 给定左线性正规文法G=(VT, VN, S, P), 设q0?VN ,令m=(VT ,Q, q0 ,?S ?, ?), 其中, Q= VN?? q0 ?, 转移函数 ? 定义如下: (a) A?a, ?(q0,a)=A (b) A1 ?A,a, A2?Aa ,…, An ? Aa ?(A,a)= ?A1, A2 ,... , A n? 定理3.4 对于每一个DFA m,都存在一个右 线性正规文法G和一个左线性正规文法G’, 使L(m)=L(G)=L(G’)。 证 设m=(?, VN , S,F, ?),右线性正规文法G的构造方法如下: 若s?F, G=(?,V N ,S,P), P的定义如下: 对任何a ? ?及A,B ?VN, 若有?(A,a)=B, 则 (a) B ?F, A ?aB (b) B ?F A ?a?aB 若s ?F, S0 ? V N , S0 ?S ?? 构造左线性正规文法, P的定义如下: 对任何a ? ?及A1,A2 ?VN, 有?(A1,a)=A2, 则 (a) A1是初态, A2 ? a (b) A1不是初态, A2 ?A1a 例3.6 DFA m ?右线性正规文法G ? NFA m’?左线性正规文法G ’ A D C B 0, 1 1 1 1 0 0 0 A?0?0B ?1D B ? 0D ?1C C ?0 ?0B ?1D D ?0D ?1D ? A D C B 0, 1 1 1 1 0 0 0 S?0?C0 B ? 0?C0 C ?B 1 D ?1?B0 ?C1 ? D0 ?D1 ? f 0 0 NFA m 左线性正规文法 3.6词法分析程序的自动构造工具LEX简介 一.原理 单词的结构用正规式描述 正规式? NFA ?DFA ?min DFA 二.用LEX建立词法分析程序的过程 LEX 编译器 LEX 源程序 lex.1 Lex.yy.c C 编译器 Lex.yy.c a.out a.out 输入流 单词序列 三.lex源程序 lex源程序由三部分

文档评论(0)

502992 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档