- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 词法分析 第三章 词法分析 3.1 单词的描述工具 第一节 正规文法 举例 程序设计语言中的几类单词可用下述规则描述: 标识符→l|l字母数字 字母数字→l|d|l字母数字|d字母数字 无符号整数→d|d无符号整数 运算符→+|-|*|/|=|等号|等号…… 等号→= 界符→,|;|(|)|…… 其中l表示a~z中的任何英文字母,d表示0~9中的任一数字。 一、正规文法、正规集与正规式 举例: 例: 令S={a,b},S上的正规式和相应的正规集的例子有: 正规式 正规集 a {a} a|b {a,b} ab {ab} (a|b)(a|b) {aa,ab,ba,bb} a* {e ,a,aa,…任意个a的串} (a|b)* {e,a,b,aa,ab,……所有a,b组成的串} (a|b)*(aa|bb)(a|b)* S*上所有含有两个相继的a或两个相继b组成的串 二、正规式等价定理一 二、正规式等价示例 三、正规式等价定理二 3.1.3 正规文法转换成相应正规式示例 示例 例:将r=a(a|d)*转换成相应的正规文法。 解:令S是文法的开始符号,首先形成S→a(a|d)*,然后形成S→aA和A→(a|d)*,再变换成 S→aA A→(a|d)B A→e B→(a|d)B B→e 进而变换为全部符合正规文法产生式的形式: S→aA B→aB A→aB B→dB A→dB B→e A→e 3.2 有限自动机(Finite automation FA) 2、有限自动机模型 二、有限自动机(Finite automation -FA) 二、有限自动机(Finite automation FA) 二、有限自动机(Finite automation FA) 例: DFA M=({0,1,2,3},{a,b},f,0,{3}) f:f(0,a)=1 f(0,b)=2 f(1,a)=3 f(1,b)=2 f(2,a)=1 f(2,b)=3 f(3,a)=3 f(3,b)=3 (2)NFA→DFA确定化算法 由NFA M=(S,∑,f,S0,Z)构造一个等价的DFA M‘=(Q,∑,δ,I0,F)算法如下: 1.取I0=S0, 2.若状态集Q中有状态Ii={S0,S1……Sj},SK∈S,0≤K≤j; 而且M中有f({S0,S1,…..Sj},a) =f(s0,a)∪f(s1,a)∪…..∪f(sj,a)= ∪f(sk,a) =(s0,s1,….st)=It, 若It不在Q中,则将It加入Q 3.重复步骤2,直到Q中无新状态加入为止。 4.取终态F={I|I∈Q,且I∩Z Φ} 注:1)上述过程可在有限步内完成,因为M机状态的幂集是有限的; 2)上述过程也可用表格法来描述,其中列是字符集∑中的字符;行是Q中的各状态,开始仅包含I0状态,随着算法的执行,Q的状态逐渐增多直至不再增加为止;表格元素就是δ映射函数。 例:设NFA M=({q0,q1},{0,1},f,{q0},{q1}) 映射为下表所示,试将其确定化。 解: 1.M‘的状态:I0={q0},则Q中就有了I0状态。 2.由Q中的状态I0 ={q0},查看M机,有f({q0},0)={q0}= I0 f({q0},1)={q1}= I1 此时,Q={I0,I1} 3.由Q中的状态I1={q1},查看M机。 有:f({q1},0)= {q0, q1}= I2, f({q1},1)={q0}= I0 此时,Q={I0, I1, I2} 4.由Q中的状态I2={q0, q1},查看M机, 有: f({q0, q1},0)= {q0, q1}= I2, f({q0, q1},1)= {q0, q1}= I2, 此时,Q={I0,I1,I2} 5. F={I1,I2} 注:1)当一个自动机没有任何多余的状态,并且它的状态中没有两个是互相等价的时候,可以说这个有限自动机是化简了的。 2)可以通过消除多余状态
文档评论(0)