- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本章小结 例如定义“标识符”单词的正规式是 l (l | d)* 正规文法是 <标识符>→ l |<标识符>l | <标识符>d 2.程序语言单词符号的两种定义方式 正规文法 正规式 本章小结 3.有穷自动机有确定的和非确定两大类: NFA N = (Q , Σ , f , S , Z )其中f是多值映射函数,S为非空初态集。 有穷自动机通常表示为状态转换图,它是有穷自动机的非形式化描述。 DFA M = (Q , Σ , f , S , Z )其中是f单值映射函数,S是唯一初态 本章小结 从单词两种定义方式中构造词法分析程序的过程是: 正规式 正规文法 NFA 分裂法 转换规则 子集法 DFA 分化法 状态 最小化 DFA 词法 分析 程序 4.正规式、正规文法和有穷自动机三者都是描述正规集的工具, 它们的描述能力是等价的,它们之间可相互转换。 5.证明两正规式是等价的,如果它们的最小状态DFA是相同的。也可以利用正规式的基本等价关系将一个正规式化简来证明两正规式之间的等价性或两正规式识别的语言一样。 本章小结 本章小结 例1 构造正规式R=1(0|1)*101的状态最小化的DFA 分析 首先对R采用分裂法构造NFA,见下图: Y 5 4 3 2 1 X 1 1 1 0 1 0 ε ε 对NFA采用子集法构造其等价的DFA的状态转换矩阵,见右表 A F B C D E 字符 状态 0 1 {X} {1,2,3} {2,3,4} {2,3,5} {2,3,4,Y} {2,3} Φ {2,3} {1,2,3} {2,3,4} {2,3} {2,3,4} {2,3,5} {2,3,4} {2,3} {2,3,4,Y} {2,3,5} {2,3,4} Y 5 4 3 2 1 X 1 1 1 0 1 0 ε ε 对DFA采用分化的方法化简,得到状态最小化的DFA,见下图 : A B C D E 字符 状态 0 1 {X} {1,2,3} {2,3,4} {2,3,5} {2,3,4,Y} {2,3} Φ {2,3} {1,2,3} {2,3,4} {2,3} {2,3,4} {2,3,5} {2,3,4} {2,3} {2,3,4,Y} {2,3,5} {2,3,4} E D C B A 1 1 0 1 0 0 1 1 0 例2. 构造一个DFA它接收∑={0,1}上所有满足如下条件的字符串,每个1都有0直接跟在右边。 分析 首先给出描述语言的正规式R=(0|10)* 采用分裂法从正规式构造NFA Y A X B 0 1 0 ε ε 采用子集法将NFA确定化为DFA 采用分化方法将DFA化简 字符 状态 0 1 {X,A,Y} {B} {A,Y} {A,Y} {B} {B} {A,Y} {A,Y} Φ X B 0 1 0 Y A X B 0 1 0 ε ε 分析 给出描述语言的正规文法 S→0S | 1A | ε A →0S 根据右线性文法构造有穷自动机的方法, 构造出如下的状态转换图: S A 0 1 0 例2. 构造一个DFA它接收∑={0,1}上所有满足如下条件的字符串,每个1都有0直接跟在右边。 S→0A | 1B A→1S | 1 B→0S | 0 分析 根据正规文法转换成正规式的方法,首先给出该 正规文法对应的正规式方程组: S=0A+1B (1) A=1S+1 (2) B=0S+0 (3) 将(2)、(3)代入(1)得 S=01S+01+10S+10 (4) 对(4)使用求解规则得 S=(01|10)(01|10)* 即正规文法所生成语言的正规式是(01|10)(01|10)*。 例3. 给出下述文法所对应的正规式: 例4 将右图确定化和最小化。 图示是一个无ε 边转移的NFA,采用子集法将NFA确定化为DFA 采用分化方法将DFA化简 字符 状态 a b {0} {1} {0,1} {0,1} {1} {1} {0,1} {0} Φ 0 1 a b a 0 1 a,b a a 例4. 设字母表Σ={a,b},给出Σ上的正规式 R= b*ab(b|ab)* 1. 试构造状态最小化的DFA M,使得 L(M)=L(R)。 2. 求右线性文法G,使L(G)=L(M)。 对正规式R=b*ab(b|ab)*采用分列法构造NFA,见下图。 Y 5 4 3
原创力文档


文档评论(0)