《编译原理》课程简介 (16).pdf
《《编译原理》课程简介 (16).pdf》由会员分享,可在线阅读,更多相关《《编译原理》课程简介 (16).pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、编译原理 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
2、而停于终态。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。显然,属于这两
3、个不同子集的状态是可区别的。假定到某个时候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是可区别的
4、,即存在一个字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经过上述过程后,得到一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理 编译原理课程简介 16 编译 原理 课程 简介 16
限制150内