- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
陈火旺 编译原理 chapter3
二、扫描器——词法分析的主要部分 扫描器的构造原理 设置二个指示器(起点指示器、搜索指示器),一个可以互补使用的一分为二的扫描缓冲区,一个指向当前正在识别的单词的开始位置(指向新单词的首字符),另一个用于向前搜索以寻找单词的终点。扫描缓冲区总长度为2×120个字符,扫描器单词长度的要求是单词长度≤1/2扫描缓冲区长度。 2.扫描器的工作原理 调用预处理子程序,把120个输入字符装进扫描缓冲区的某半区,搜索指针从起点指针开始向前寻找单词的终点,若在该半区内查找到单词的终点,便输出二元式,再把起点指针移到此处的后一个字符,继续搜索下一个单词,如果在搜索到该半区的边缘,尚未到达单词终点,那么就调用预处理子程序,把后续的120个字符装进另半区,继续搜索。 三、状态转换图-设计词法分析器的好工具(好途径) 1.转换图是一张有限方向图 结点 代表状态,用圆圈表示 箭弧 状态之间的连接,箭弧上的标记(字符)代表 在射出结点状态下可能出现的输入字符或字符 类。 初态 识别出某一类字符串的开始,初态只有一个 终态 识别出某一单词,至少有一个。用双圈表示 ·由状态转换图编写扫描器的一般方法 2.表示形式 状态转换图 一个含有m个状态和n个输入字符的NFA可表示成如下状态转换图。该图含有m个状态结点,每个结点可射出若干条箭弧与别的结点相连接,每条弧用∑*中的一个字(可以相同的字且可以是空字ε)作标记(输入字),整张图至少含有一个初态结点以及若干个(可以是0个)终态结点,某些结点既可以是初态结点也可以是终态结点。 四、确定有限自动机的化简 一个确定有限自动机M的化简是指:寻找一个状态数比M少的DFA M′,使得L(M)=L(M′) 1.状态等价和可区别 (1)状态等价 假设s和t是M的两个不同状态,若从状态s出发能读出某个字ω而停于终态,那么,同样从t出发也能读出同样的字ω而停于终态,反之,若从t出发能读出某个字ω而停于终态,则从s出发也能读出同样的字ω而停于终态,则称s和t是等价的。 (2)可区别 若DFA M的两个状态s和t不等价,则称s和t是可区别的 2.化简(最少化) 一个DFA M的状态最少化过程旨在将M的状态集分割成一些 不相交的子集,使得任何不同的两子集中的状态都是可区 别的,而同一个子集中的任何两个状态都是等价的,在每 个子集中选出一个代表同时消去其它等价状态 分划步骤: (1)初始分划 将S的终态和非终态分开成2个子集(可区别的),形成基本划分∏; ∏ ={Z,S-Z}△{I(1),I(2)} (2)进一步分划 设∏含m个子集:∏={I(1),I(2),……,I(m)}并且属于不同子集的状态是可区别的。分析I(i)是否可进一步划分: 对于某I(i),令I(i)={q1,q2,…,qk},若存在一个输入字符a使得Ia(i)不全包含在现行Π的某一子集I(j)中,就将I(i)一分为二。例如,假定状态s1和s2经a弧分别达到状态t1和t2,而t1和t2属于现行Πm的两个不同子集。将I(i)分成两半,使得一半含有s1: I(i1)={s|s∈I(i1)且s经a弧到达t1所在子集中的某状态}, 另一半含有s2:I(i2)=I(i)-I(i1)。 I(i1)中状态与I(i2)中的状态是可区别的,形成新的分划。重复上述分划过程,直至分划中所含子集数不再增长为止。即每个子集中状态是互相等价的,而不同子集中的状态则是可互相区别的。 (3)选代表 对于最后分划∏中的每一个子集,选取子集中的一个状态代表其它状态,I={q1,q2,…,qk},挑选q1,凡导入到q2,…,qk的弧都改成导入到q1中,然后将q2,…,qk从原来的状态集s中删除。 (4)经如此化简之后得到的DFA Mˊ和原来的M是等价的,即L(M)=L(Mˊ)。 解:1° 初始分划 终态组{3,4,5,6} 非终态组{0,1,2} 2°进一步分划 考察{3,4,5,6} {3,4,5,6}a={3,6} {3,4,5,6} {3,4,5,6}b={4,5} {3,4,5,6} 则{3,4,5,6}不能分划 5°选代表 令状态3代表{3,4,5,6},把原来导入4,5,6的弧全都导入3,并删除4,5,6,最后可得下图 课堂练习 设文法G[A]为: G[A]:A→[B B →X]|BA X →Xa|Xb|a|b 试求出文法G[A]产生的语言对应的正规表达式。
您可能关注的文档
最近下载
- 2025年抖音本地生活服务业务深度分析报告 .pdf VIP
- 广西壮族自治区资源县农业局公务员招录事业单位招聘考试录用96人大全(含答案).docx VIP
- 清水河储能电站施工方案.doc VIP
- 2025至2030年中国美甲产业竞争现状及发展前景预测报告.docx
- 《新媒体营销》教学大纲.docx VIP
- 幼儿园小学生姓名卡片姓名贴纸.docx VIP
- 郑州市第四十七中学新初一分班(摸底)语文模拟试题(5套带答案).doc VIP
- 《边城》ppt.ppt VIP
- 2024凉山州专业技术人员继续教育公需科目-提升常态化监管水平,大力发展数字经济,支持平台经济发展试题及满分答案.docx VIP
- 口腔根尖周炎病例分析.pptx VIP
文档评论(0)