第03章作业.ppt

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

第三章 词法分析;(1)构造与1(0|1)*101等价的 NFA;(2)将NFA转换成DFA 采用子集法,即DFA的每个状态对应NFA的一个状态集合 构造DFA的状态集C,假定C={T0,T1,…Ti}, 其中T0= ε- closure(A0), 对于任何a∈Σ Tia= ε-closure(Move(Ti,a));A0;DFA的状态转换图;首先,将状态分成两个子集:一个由终态组成,一个由非终态组成: { T0,T1,T2,T3,T4 } { T5 } { T0,T1,T2,T3} { T4 } { T5 } { T0,T1,T2} {T3} { T4 } { T5 } { T0} {T1,T2} {T3} { T4 } { T5 } ;在等价状态子集{T1,T2}中选状态T2做代表,消去其他状态T1,把从消去状态T1射出和射入的弧都引到代表状态T2上;作业中的问题: 只给出了NFA,没有转换成DFA,或者没有进行DFA的化简 按课本上的方法构造的NFA,这种方法引进的状态个数和标记为ε的边较多,给转换成DFA带来了麻烦,容易出错;区分NFA和DFA: NFA有标记为ε的边而DFA没有 DFA中一个状态对应一个输入符,转向一个状态,而NFA中一个状态对应一个输入符,转向一个状态集合。 ;第2题 给出下述文法所对应的正则式: S → 0A | 1B A → 1S | 1 B → 0S | 0;1. 将每条产生式改写为正规式 由S → 0A | 1B 得 S=0A | 1B (用规则3:A→x A→y得 A=x|y) 由A → 1S | 1 得A=1S | 1 (用规则3) 由B → 0S | 0 得B=0S | 0 (用规则3);作业中的问题 正规文法到正规式可以直接转换,不用将正规文法转换成DFA,再将DFA转换成正规式 错误1:将(01|10)*(01|10)写成= (01|10)* 错误2:将(01|10)*(01|10)写成(01|10)+,在正规式中可以出现的算符只有‘.’,‘*’, ‘(’, ‘)’, ‘|’,没有‘+’;错误3:转换到这一步S = 01S|01|10S|10的时候, =(01S|01) | (10S|10) 由S=01S|01,得 S=(01)*(01) 由S=10S|10,得S=(10)*(10) 最终得正规式(01)*(01) | (01)*(01),是错误的 规则2 :A→xA|y 得A=x*y 规则3 :A→x|y (A→x A→y)得A=x|y 规则2和3都是描述“或”产生式如何转换,规则2中A递归定义,规则3不是,产生式递归定义的时候,产生式中的或关系,不能对应到正规式的或关系上 如规则2不能按规则3来转换,得A=x*x和 A=y,最终得正规式x*x|y。;从描述的语言上看: S→ 01S|01|10S|10,以及它的正确转换(01|10)*(01|10),描述的都是01和10,任意次序,任意多个组成的串,, 而错误的转换(01)*(01) | (01)*(01),描述的是01组成的任意长的串,如010101…或者10组成的任意长的串101010…,与原文法描述的语言不等

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档