第3章词法分析.ppt

  1. 1、本文档共127页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

举例②考察当前划分Π。 ABC在一个组,查看它们的状态转移:f(A,a)=B, f(A,b)=Cf(B,a)=B, f(B,b)=Df(C,a)=B, f(C,b)=C其中f(B,b)=D使得B与AC不能在同一组中,分离B形成新的划分:Πnew={{A,C},{B},{D},{E}}ABCDEabbbaaabba3.4.4NFA到DFA的转换1.基本思想: 让DFA的每个状态对应NFA的一个状态集合。即DFA用它的一个状态记录在NFA读入一个输入符号后可能达到的所有状态。2.输入输出:输入:一个NFAN输出:一个接受(识别)相同语言的DFAM方法:利用构造ε-闭包的方法将NFA确定化为 DFAijkmεaban(a)i,jmkaabn(b)S1S2ε转换需解决的问题:消除ε弧状态合并0123aabc(a)01,23abc(b)状态子集合I的ε闭包ε_closure(I) 是状态集I中的任何状态S以及从S出发经任意条ε弧而能到达的状态的集合。ε_Closure(I)即DFA的一个状态εεεIIS2S2S1S1S3S33.对状态子集合I的有关运算以下将ε_closure(I)简写为Closure(I) Closure(I)=I?{Sk|存在SjSk,Sj?Closure(I),Sk?Closure(I)}ε注意:这是一个递归定义,通过多条ε边才能到达的状态也将被合并到closure中3.对状态子集合I的有关运算设I={0},则ε_closure(I)={例NFA:ε100124536789ababbεεεεεεε}74,2,1,0,这个状态集合即为DFA的初态ε_closure({6})={7,1,2,3}Ia子集。 I是状态集,由I中的状态出发,经过一条a弧可能到达的状态的集合称为 f(I,a),则 Ia=ε_closure(f(I,a))3.对状态子集合I的有关运算Ib=ε_closure({例NFA:εε100124536789ababbεεεεεε设I={0,1,2,4,7}则Ia=ε_closure({})3,8={3,8,6,7,1,2,4}56,})={}5,7,2,1,4重点回顾DFA也可表示成状态转换矩阵DFA也可表示成状态转换图DFA识别(接受)的字符串DFAM所能接受的符号串的全体记为L(M),即为DFAM所识别的语言重点回顾一个不确定的有穷自动机M是一个五元组:M=(Q,Σ,f,S,Z),其中Q是一个有穷集,它的每个元素称为一个状态;∑是一个有穷字母表,它的每个元素称为一个输入字符;f是一个从Q×∑*至Q的子集的映射;f(qi,a)={某些状态的集合}S?Q,是一个非空初态集Z?Q,是一个终态集。重点回顾NFA也可表示成状态转换矩阵NFA也可表示成状态转换图NFA识别(接受)的字符串NFAM所能接受的符号串的全体记为L(M),即为NFAM所识别的语言对于每个NFAM,存在一个与其等价的DFAM’重点回顾从正规式构造NFA输入:字母表∑上的正规式R。输出:识别(接受)语言L(R)的NFAM方法:(1)引进初始节点X,终止节点Y,R表示成拓广转换图(2)分析R的语法结构,用如下规则构造NFA对于R=?,构造的NFA为:yx?对于正规式R=a,a?∑构造的NFA为:yxayx对于R=?,构造的NFA为:yxR复合正规式R的构造规则 先构造如下的NFAyxR然后按下述三种情况进行分解,直至每条弧上标记一个字符。e1Xye=e1|e2e2X1e1ye2e=e1e2X1εyεe1e=e1*(3)整个分裂过程中,所有新结采用不同名字,X\Y保留重点回顾NFA到DFA的转换状态子集合I的ε闭包ε_closure(I)Ia子集子集法假设NFAN=(Q,Σ,f,S,

文档评论(0)

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

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

1亿VIP精品文档

相关文档