欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    《编译原理》课程简介 (16).pdf

    • 资源ID:67733284       资源大小:1.87MB        全文页数:14页
    • 资源格式: PDF        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《编译原理》课程简介 (16).pdf

    编译原理 C O M P I L A T I O N P RIN C IP LE第三章 词法分析3.3 正规式与有限自动机3.3 正规式与有限自动机一、基本概念二、确定有穷状态自动机(DFA)三、非确定有穷状态自动机(NFA)四、正规式和有限自动机的等价性五、DFA的化简3.3 正规式与有限自动机n一个确定有限自动机M的化简是指:寻找一个状态数比M少的DFA M,使得L(M)=L(M)n假定s和t是M的两个不同状态,我们称s和t是等价的:如果从状态s出发能读出某个字w而停于终态,那么同样,从t出发也能读出同样的字w而停于终态;反之,若从t出发能读出某个字w而停于终态,则从s出发也能读出同样的w而停于终态。n可区别的:如果DFA M的两个状态s和t不等价。五、DFA的化简相关概念3.3 正规式与有限自动机n字符串W把状态s和状态t区别开:n等价状态:无法区别开的两个状态n基本思想:把状态集划分成互不相交的子集,使子集中的状态是等价的n化简DFA的算法步骤:u划分状态集u合并状态:取每组状态中的代表状态,删去其他等价状态u若有死状态或不可达状态,则把它们删去。死状态:无法达到终止状态的非终止状态不可达状态:不能从开始状态达到它的那些状态五、DFA的化简3.3 正规式与有限自动机n对M的状态集S进行分划的步骤是:首先,把S的终态和非终态分开,分成两个子集,形成基本分划II。显然,属于这两个不同子集的状态是可区别的。假定到某个时候II已含m个子集,记II=I(1),I(2),I(m),并且属于不同子集的状态是可区别的。检查 II 中的每个I(i)看能否进一步分划。对于某个I(i),令I(i)=q1,q2,qk,若存在一个输入字符a使得I(i)a不全包含在现行II的某一子集I(i)中,就将I(i)一分为二。例如,假定状态s1和s2经a弧分别达到状态t1和t2,而t1和t2属于现行 II 的两个不同子集,那就将I(i)分成两半,使得一半含有s1:I(i1)=s|s I(i)且s经a弧到达t1所在子集中的某状态n另一半含有s2:I(i2)=I(i)-I(i1)由于t1和t2是可区别的,即存在一个字w。t1将读出w而停于终态,而t2或读不出w或虽然可以读出w但不到达终态;或情形恰好相反。因而字aw将状态s1和s2区别开来。也就是说,I(i1)中的状态与I(i2)中的状态是可区别的。至此我们将I(i)分成两半形成了新的分划。3.3 正规式与有限自动机n一般地,若I(i)a落入现行II中N个不同子集,则应将I(i)划分为N个不相交的组,使得每个组J的Ja都落入II的同一个子集,这样形成新的分划。重复上述过程,直至分划中所含的子集数不再增长为止。至此,II中的每个子集已不可再分。也就是说,每个子集中的状态是互相等价的,而不同子集中的状态则是可互相区别的。n经过上述过程后,得到一个最后分划II。对于这个II中的每一个子集,我们选取子集中的一个状态代表其他状态。例如,假定I=q1,qk是这样一个子集,我们即可挑选q1代表这个子集。在原来的自动机中,凡导入到q2,qk的弧都改成导入到q1.然后,将q2,qk从原来的状态集S中删除。若I中含有原来的初态,则q1是新初态;若I中含有原来的终态,则q1是新终态。可以证明,经如此化简之后得到的DFA M和原来的M是等价的。若从M中删除所有无用状态,则M便是最简的(包含最少状态)。3.3 正规式与有限自动机举 例n划分状态集为4和 0,1,2,3n对于0,1,2,3和输入字符a和b:M(0,a)=1 M(1,a)=1M(2,a)=1 M(3,a)=1M(0,b)=2 M(1,b)=3M(2,b)=2 M(3,b)=4只有状态3在输入为b时映像的后继状态不在0,1,2,3中,因此该状态集划分为3和0,1,2n对于0,1,2:状态1在输入为b时的后继状态不在0,1,2中,因此划分为1和0,202314bbbbbaaaaau对于0,2:对于相同输入字符,该子集中每一状态映像得到的后继状态都相同,因此不再可划分u最后划分为:4 3 1 0,2 3.3 正规式与有限自动机举 例(续1)n对于划分结果4,3,1,0,2,把0,2合并为一个状态,其状态转换图如图:02314bbbbbaaaaa0213aaaabbbb3.3 正规式与有限自动机课堂教学实例第三章 词法分析教会学生如何设计出一个高级语言的词法分析器目的是设计一个功能等价的DFA,每个节点一段程序方法是设计DFA,DFA化简,程序实现过程是如何设计出DFA?是否唯一?简化后是否一样?困惑是书上算法是否完备?自己能否完善之?挑战是3.3 正规式与有限自动机设计一个DFA M,它识别二进制偶数(不以0开头的无符号数)知识点讲解示范:DFA的设计例v解1写出正规式 1(1|0)*0 3.确定化为DFA M2画出NFA M 细化为:1y1(1|0)*01Xy1001NAMENAMEI I0 0I I1 1A11,Y1,Y1,Y1113.3 正规式与有限自动机v或细化为:同学们重新做v结果:102101102X10113y03121011001 I II I0 0I I1 10X1,2,32,3,Y2,32,3,Y2,3,Y2,3,Y1,2,32,32,32,31323.3 正规式与有限自动机n根据前面学习的DFA的词法分析程序实现,方法是每个节点对应一段程序。n对于图2,显然节点个数多余图1,也就是说需要辨析的子程序个数多。n化简就是优化,寻找等价的DFA,但节点个数少。n根据书上的算法,可以考虑如下:p初始分划为非终态集和终态集:0,1,3,2p考虑 0,1,3读入0为2;0,1,3读入1为1,3p全部落在上述分划的某一个子集,根据书上算法,不需要再分。n所以简化为2个节点,图3:讲解示范2:DFA的化简10210110021003.3 正规式与有限自动机n没有问题,两个都正确,那必然两个相等自然导出 DFA化简与等价 两个结果不一样,问题出在哪?课后思考n根据书上化简算法,发现问题,让学生回家思考如何解决,下次课程随机回答v下一堂课内容

    注意事项

    本文(《编译原理》课程简介 (16).pdf)为本站会员(奉***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开