- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理第3章概要
补充例: I = {1,2} Ia =ε-closure( move(I,a) ) =ε-closure( δ(1, a)? δ(2, a) ) =ε-closure( {5, 4, 3} ) = {5, 4, 3, 6, 2, 7, 8} 1 2 5 4 3 §3.3 正规式与有限自动机 3、确定化的步骤(子集法) 拓广NFA转换图:加X结为新初态结点连ε弧至原初态,加Y结为唯一的新终态结点,原终态连ε弧至Y结点; 按如下规则构造距阵(表): 第一行第一列为ε_Closure ({X}); 每行第一列为某子集I,该行其余各列为Ia1,Ia2,Ia3 …,(ai∈Σ); 检查各个Ia1,Ia2,Ia3…,未在第一列中出现者添入新行第一列; 重复 b)、c) ,直至矩阵不再增大。 4、实例(确定化NFA M ′) (1)拓广转换图 §3.3 正规式与有限自动机 (2)构造矩阵: 第1行:第1列ε_Closure ({X})=I 第1行第2列:Ia,第3列:Ib §3.3 正规式与有限自动机 (2)构造矩阵: §3.3 正规式与有限自动机 (3)构造状态转换表;(4)画出DFA M §3.3 正规式与有限自动机 七、DFA 的化简 1、问题:找一个状态数比M少的DFA M〞,使L(M) = L(M〞); 2、相关概念 状态s和t等价:若从s出发能读字α而停于终态,则从t出发也能读字α停于终态;反之亦然。 状态可区别:不等价(如初态和终态)。 §3.3 正规式与有限自动机 3、思路: DFA M的状态集分割→不相交子集→ 不同子集间状态可区别,同子集内状态等价→ 每子集留一个代表→得到的 DFA M〞 比M的状态少。 §3.3 正规式与有限自动机 4、步骤 M的状态集一分为二:终态集与非终态集; 设已划分过的状态子集类为Π= {I(1), I(2)…,I(M) },且不同子集间状态可区别; 对Π中每个子集检查是否可分:若存在a∈∑,使I(i)a不全包含在Π中任一子集内,则可一分为二;如对I(i)={s1,s2,…,sk}, s1 、s2经a弧分别可到达t1、t2,且t1 、t2属Π中不同子集,则I(i)可分为:I(i1) = {s | s∈I(i) 且经a 弧到达t1所在子集的某状态} ,I(i2) = I(i) - I(i1) §3.3 正规式与有限自动机 重复③,直至Π中子集不再增加; 最终,Π中每个子集留一个代表。如Π中某I = {s1, s2, s3},则可留s1,原来导入s2 、s3的弧改为导入s1且I中有初态,则s1为新初态,I中有终态,则s1为新终态。 §3.3 正规式与有限自动机 例:化简DFA M M的状态集分为Π= {I(1), I(2)},其中 终态集I(1)={3,4,5,6}, 非终态集I(2)={0,1,2}; 考察I(1) :I(1)a ={3,6}∈{3,4,5,6} , I(1)b ={4,5}∈{3,4,5,6},故I(1)不可分; 考察I(2) :I(2)a ={1,3}既不全在I(1) 也不全在I(2) , 可分。因1经a到达3∈I(1),0、2结经a到达1∈I(2),所以分为I(21) ={1}、I(22) ={0,2}, 即Π= {I(1), I(21),I(22)}, 考察I(22) :I(22) b={2, 5}不全在I(1)、I(21)、I(22) 故分为{0}、{2}; 最后划分为:{0},{1},{2},{3, 4, 5, 6}; 令3代表{3, 4, 5, 6},原来导入4、5、6的弧改为导入3,则得M〞 * 第三章 词法分析 词法分析器的设计、超前搜索方法、正规式、自动机 §3.1 对于词法分析器的要求 §3.1 对于词法分析器的要求 一、词法分析器:执行词法分析任务的程序模块,也称扫描器。 二、功能:输入并扫描源程序,识别出单词并输出单词序列。 三、单词符号的类别:关键字、标识符、常数、运算符、界符; 四、输出形式: 二元式,形如(单词种别,单词属性值) 1、单词种别:整数编码,以区别单词符号种类。种别分类为“一词一种”和“多词一种”。 2、 单词属性值:在多词一种情形下,为最终确定单词,又给出有关单词符号的属性信息。 3、 约定:关键字、运算符、界符为一词一种,无属性值; 所有标识符为一种,其每个单词的属性值表示成存放它的有关信息的符号表项的指针; 常数按类型分种,每类型一种。 §3.1 对于词法分析器的要求 例: 五、词法分析器的工作:通常设计成独立子程序,当语法分析器需要一个单词符号时,就调用这个子程序。每次调用
文档评论(0)