网站大量收购闲置独家精品文档,联系QQ:2885784924

第三章_词法分析.ppt

  1. 1、本文档共88页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1) 构造?上的NFA M’ 使得 L(V)=L(M’) 首先,把V表示成 X Y V 然后,按下面的三条规则对V进行分裂: 代之为 i j V1 V2 k i k V1V2 代之为 i j V1|V2 i j V2 V1 代之为 i k V1* i j ? ? k V1 若两个正规式所表示的正规集相同,则称这两个正规式等价。如 b(ab)*=(ba)*b (a*b*)*=(a|b)* 对正规式,下列等价成立: e1|e2 = e2|e1 交换律 e1(|e2|e3) = (e1|e2)|e3 结合律 e1(e2e3) = (e1e2)e3 结合律 e1(e2|e3) = e1e2|e1e3 分配律 (e2|e3)e1 = e2e1|e3 e1 分配律 e? = e? = e 但 e1e2 e2 e1 3.3.1 正规式与正规集 有限自动机 有限自动机(也称有穷自动机)作为一种识别装置,它能准确地识别正规集,即识别正规文法所定义的语言和正规式所表示的集合,引入有限自动机这个理论,正是为词法分析程序的自动构造寻找特殊的方法和工具。 有限自动机分为两类:确定的有限自动机(Deterministic Finite Automata)和不确定的有限自动机(Nondeterministic Finite Automata) 。 有限自动机 有限自动机所讨论的问题 确定的有限自动机DFA 不确定的有限自动机NFA NFA的确定化 DFA的最小化 3.3.2 确定有限自动机(DFA) 对状态图进行形式化,则可以下定义: 确定的有限自动机M是一个五元式M=(S, ?, f, S0, Z),其中: 1. S: 有穷状态集; 2. ?:输入字母表(有穷); 3. f: 状态转换函数,为S???S的单值部分映射,f(s,a)=s’表示:当现行状态为s,输入字符为a时,将状态转换到下一状态s’。我们把s’称为s的一个后继状态; 4. S0?S是唯一的一个初态; 5. Z:终态集(可空),Z?S。 3.3.2 确定有限自动机(DFA) 例如: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 3.3.2 确定有限自动机(DFA) 一个DFA可以用一个矩阵表示(状态转换矩阵),该矩阵的行表示状态,列表示输入字符,矩阵元素表示相应状态行和输入字符列下的新状态,即k行a列为f(k,a)的值。 状态转换矩阵 字符 状态 3.3.2 确定有限自动机(DFA) DFA也可以表示成一个状态图(或称状态转换图)。假定DFA M含有m个状态,n个输入字符,那么这个状态图含有m个结点,每个结点最多有n个弧射出,整个图含有唯一一个初态结点和若干个终态结点。 0 3 1 2 a a a a 状态转换图 b b b b 对于?*中的任何字?,若存在一条从初态到某一终态的道路,且这条路上所有弧上的标记符连接成的字等于?,则称?为DFA M所识别(接收) DFA M所识别的字的全体记为L(M)。 3.3.2 确定有限自动机(DFA) 3.3.2 确定有限自动机(DFA) 例:证明t=baab被下图的DFA所接受。 f(S,baab)=f(f(S,b),aab) = f(V,aab)= f(f(V,a),ab) =f(U,ab)=f(f(U,a),b) =f(Q,b)=Q Q属于终态。 得证。 b S U V Q a b b a , b a a 3.3.2 确定有限自动机(DFA) 对于任何两个有限自动机M和M′,如果L(M)=L(M′),则称M与M′是等价的.? 可以证明:?上的字集V??*是正规集,当且仅当存在?上的DFA M,使得V=L(M)。 3.3.2 确定有限自动机(DFA) DFA的确定性表现在转换函数f:K×Σ→K是一个单值函数,也就是说,对任何状态k∈K,和输入符号a∈Σ,f(k,a)唯一地确定了下一个状态。从状态转换图来看,若字母表Σ含有n个输入字符,那末任何一个状态结点最多有n条弧射出,而且每条弧以一个不同的输入字符标记。 3.3.2 确定有限自动机(DFA) DFA的行为很容易用程序来模拟 DFA M =(K,Σ,f,S,Z)的行为的模拟程序 K := S; C := getchar; while ceof do { K := f ( K, c ); c := getchar; }; i

文档评论(0)

xiaohuer + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档