4第4章词法分析.pptVIP

  1. 1、本文档共72页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4第4章词法分析

;;4.1 单词的描述工具 4.2 有穷自动机 4.3 正规式和有穷自动机的等价性 4.4 正则文法和有穷自动机间的转换 4.5 词法分析程序的设计 4.6 词法分析程序的自动构造工具;4.1 单词的描述工具;4.2.1 正规文法;;4.2.2 正规式(正则表达式) Regular Expression;正规式与正规集的递归定义 ε和φ都是∑上的正规式,它所表示的正规集分别为{ε}和Ф; 任何a∈∑,a是∑上的正规式,它所表示的正规集为{a}; 假定e1和e2都是∑上的正规式,他们所表示的正规集分别为L(e1)和L(e2),那么,以下也都是正规式和他们所表示的正规集;;说明: 算符的优先顺序: ‘*’ ‘.’ ‘|’ ‘.’和‘|’都是左结合 仅由有限次使用上述三步定义的表达式才是∑上的正规式,仅由这些正规式所表示的字集才是∑上的正规集。;例子 令?={a,b}, ?上的正规式和相应的正规集有 正规式 正规集 a {a} a?b {a,b} ab {ab} (a?b)(a?b) {aa,ab,ba,bb} a ? {? ,a,aa,…任意个a串} (a?b)? {? ,a,b,aa,ab ……所有由a和b 组成的串};正规式的代数性质 设 r,s,t 是正规式,正规式服从的代数规律是: r|s = s|r “或”满足交换律 r|(s|t) = (r|s)|t “或”的结合律 (r s) t = r (s t) “连接”的结合律 r(s|t) = r s|r t (r|s) t = r t|s t 分配律 εr = rε= r ε是“连接”的恒等元素 r?r=r “或”的抽取律 r?=??r?rr?… ;程序中的单词都能用正规式来定义 令l为a~z的字母,d为0~9的数字 e1= l ( l | d)* e1表示标识符集合 e2= dd* e2表示无符号整数 注: 标识符→l|l字母数字 字母数字→l|d|l字母数字|d字母数字 正规式比正规文法更容易让人理解单词是按怎样的规律构成的,且可以从某个正规式自动地构造识别程序。;4.2.3 正规文法和正规式间的转换;将∑上的一个正规式r转换成文法G=(VN,VT,S,P) VT= ∑,首先形成产生式S→r,S为G的开始符 不断利用下面的规则做变换,直到每个产生式最多含有一个终结符为止;例: 将R=a(a|d)*转换成相应的正则文法 令转换成文法G=(VN,VT,P,S) 其中VT={a,d}, 文法开始符为S 首先形成S→a(a|d)*,然后变换 S→aA A→(a|d)*;将正规文法转换成正规式 将每条产生式改写为正规式 用代入法解正规式方程组 最后只剩下一个开始符号定义的正规式,其中不含非终结符 正规文法到正规式的转换规则:;例:将文法G[S]转换成正规式 G:S→a A|a A→dA|d 先由产生式得: S=aA|a A=d*d 将A代入S中得: S=ad*d|a 利用正规式变换得 S=a(d*d|ε)=ad* 说明:d*d|ε =(ε|d|dd|…)d|ε =d|dd|…|ε= d* 所求正规式为ad*;4.2 有穷自动机(也称有限自动机);4.3.1 确定的有穷自动机(DFA);例 DFA M=({S,U,V,Q},{a,b},f,S,{Q}) 其中f定义为: f(S,a)=U f(S,b)=V f(V,a)=U f(V,b)=Q f(U,a)=Q f(U,b)=V f(Q,a)=Q f(Q,b)=Q ;DFA表示成状态转换图(Transition Diagram) 每个状态对应图中的一个结点: 初态为唯一初态结点,用=〉标记; 终态对应终态结点,用双圈表示。 若有f(ki,a)=kj,则从结点ki到结点kj画标记为a的弧。;例 DFA M=({S,U,V,Q},{a,b},f,S,{Q}) f(S,a)=U f(S,b)=V f(V,a)=U f(V,b)=Q f(U,a)=Q f(U,b)=V f(Q,a)=Q f(Q,b)=Q;DFA表示成状态转换矩阵;DFA识别(接受)的字符串 对于Σ*中的任何字符串t,若存在一条从初态结到某一终态结的通路,且该通路上所有弧的标记符连接成的字符串等于t,则称t可以为 DFA M所识别 若DFA M的初态结同时又是终态结,则ε可为M所识别。;DFA M所能接受的符号串的全体记为L(M). 结论: ?上一个符号串集V???

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档