第四篇词法分析.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文档。上传文档
查看更多
1 1 对于∑上的一个正规式R,可以构造一个∑上的NFA  M,似的L(M)=L(R) 语法制导方法:按正规式的语法结构指引构造过程,首先  将正规式分解成一系列子表达式,然后使用下面规则为r  构造NFA,对r的各种语法结构的构造规则具体描述如下: 1. ①对于正规式?,所构造的NFA为: 例4.11 为r=(a|b)*abb构造NFA N,使得L(N)=L(r) 从左到右分解r,令r1=a,第1个a,则有    令r2=b,则有    令r3=r1|r2,则有 令r4=r3,则有: 令r5=a, 令r6=b, 令r7=b, 令r8=r5r6, 令r9=r8r7,则有: 令r10=r4r9,则最终得到图4.4的NFA N即为所求。   其实,分解R的方式很多,用图4.10(a)(b)(c)(d)分别表明另一种分解方式和所构造的NFA。 图4.10 从正规式r构造NFA 4.5 正规文法和有穷自动机的等价性 采用下面的规则可以从正规文法G直接构造一个有穷  自动机NFA M;使得L(M)=L(G): M的字母表与G的终结符集相同 为G中的每个非终结符生成M的一个状态,G的开始符S  是开始状态S 增加一个新状态Z,作为NFA的终态 对G中的形如A  tB的规则(其中t为终结符或?,A和B为  非终结符的产生式),构造M的一个转换函数f(A,t)=B 对G中形如A  t的产生式,构造M的一个转换函数  f(A,t)=Z 例4.12:与文法G[S]等价的NFA M如图4.11 G[S]: S  a A S  bB S  ε A  aB A  bA B  aS B  bA B   ε 有穷自动机转换成等价的正规文法: 对转换函数f(A,t)=B,可写一产生式:A  tB 对可接受状态Z,增加一产生式:Z  ε 有穷自动机的初态对应文法开始符 有穷自动机的字母表为文法的终结符集 例4.13:给出与图4.12的NFA等价的正规文法G G=({A,B,C,D},{a,b},P,A),其中P为: A  a B C   ε A  bD D  aB B  bC D  bD C  aA D   ε C  bD 图4.1 状态图表示 例4.6中的DFA的状态图表示如图4.1所示: 一个DFA可以表示成一个矩阵表示,该矩阵的行表示状  态,列表示输入符号,矩阵元素表示相应状态和输入符  号将转换成的新状态,即k行a列为f(k,a)的值。用    标明初态;否则第一行即是初态,相应终态行在表的右  端标以1,非终态标以0 图4.2 矩阵表示 例4.5中的DFA的矩阵表示如图4.2所示: 若t? ∑*,f(S,t)=P,其中S为 M的开始状态,P ? Z,  Z为终态集,则称t为DFA M所接受(识别) 设Q∈K,函数f(Q,ε)=Q,一个输入符号串t(t1tx,t1  ∈∑,tx ∈∑*),在DFA M上运行的定义为:  f(Q,t1tx)=f(f(Q,t1),tx) 例如,证明t=baab被例4.6的DFA所接受 f(S,baab)=f(f(S,b),aab)=f(V,aab)=f(f  (V,a),ab)=f(U,ab)=f(f(U,a),b)=f(  Q,b)=Q Q属于终态 得证 DFA M所能接受的符号串的全体记为L(M) 结论:?上一个符号串集V???是正规的,当且仅当存     在一个?上的确定有穷自动机M,使得V=L(M) DFA的确定性表现在转换函数f:K×∑→K是一个单值  函数,也就是说,对任何状态k∈K和输入符号a ∈∑,  f(k,a)唯一地确定了下一个状态 二.不确定的有穷自动机NFA 一个NFA:M=(K,?,f,S,Z) K是一个有穷集,它的每个元素称为一个状态 ?是一个有穷字母表,它的每个元素称为一个输入符号 f是一个从K? ?* 到K的子集的映像,即:K* ?* →2 K S?K是一个非空初态集 Z?K是一个终态集 例4.7:一个NFA M=({0,1,2,3,4},{a,b},f,  {0},{2,4})其中 f(0,a)={0,3} f(2,b)={2} f(0,b)={0,1} f(3,a)={4} f(1,b)={2}

文档评论(0)

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

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

1亿VIP精品文档

相关文档