西安电子科技大学编译原理.ppt

西安电子科技大学编译原理.ppt

ID:56397923

大小:1010.50 KB

页数:19页

时间:2020-06-16

西安电子科技大学编译原理.ppt_第1页
西安电子科技大学编译原理.ppt_第2页
西安电子科技大学编译原理.ppt_第3页
西安电子科技大学编译原理.ppt_第4页
西安电子科技大学编译原理.ppt_第5页
西安电子科技大学编译原理.ppt_第6页
西安电子科技大学编译原理.ppt_第7页
西安电子科技大学编译原理.ppt_第8页
西安电子科技大学编译原理.ppt_第9页
西安电子科技大学编译原理.ppt_第10页
资源描述:

《西安电子科技大学编译原理.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库

1、3)--终态判断2)--循环1)--准备初值2.3.2确定的有限自动机(续3)s:=s0;ch:=nextchar();whilech≠eofloopendloop;ifthenreturn“yes”;elsereturn“no”;endif;■用算法2.1识别abb:1.s=0,ch=a2.s=1,ch=b3.s=2,ch=b4.s=3,ch=eof5.yes用算法2.1识别abab:1.s=0,ch=a2.s=1,ch=b3.s=2,ch=a4.s=1,ch=b5.s=2,ch=eof6.no输入DFAD和输入字符串x(eof)。D的初态为s0,终态集为F。

2、输出若D接受x,回答“yes”,否则回答“no”。方法用下述过程识别x:算法2.1模拟DFAs:=move(s,ch);ch:=nextchar();s∈F算法2.312.3.3有限自动机的等价定义2.6若有限自动机M和M’识别同一正规集,则称M和M’是等价的,记为M=M’。■正规式(a

3、b)*abb的NFA正规式(a

4、b)*abb的DFA特别提示:正规式与有限自动机从两个侧面表示正规集。正规式是描述,自动机是识别。因此,当它们表示相同集合时,均存在等价的问题。22.4从正规式到词法分析器构造词法分析器的一般方法和步骤:用正规式描述模式(为记号设计正规式);为每

5、个正规式构造一个NFA,它识别正规式所表示的正规集;将构造的NFA转换成等价的DFA,这一过程也被称为确定化;优化DFA,使其状态数最少,这一过程也被称为最小化;根据优化后的DFA构造词法分析器。问题:1.为何不直接从正规式构造DFA? 2.为何不从NFA直接构造词法分析器?原因:正规式→NFA:有规范的一对一的构造算法DFA→分析器:便于实现记号识别的算法32.4.1从正规式到NFA算法2.2Thompson算法输入字母表∑上的正规式r输出接受L(r)的NFAN方法首先分解r,然后根据下述步骤构造NFA:<1>对ε,构造NFAN(ε)如下。其中,s0为初态,f

6、为终态,此NFA接受{ε};<2>对∑上的每个字符a,构造NFAN(a)如右上,它接受{a};<3>若N(P)和N(Q)是正规式P和Q的NFA,则(a)对正规式P

7、Q,构造NFAN(P

8、Q)如下。其中,s0为初态,f为终态,此NFA接受L(P)∪L(Q);参照P20 正规式定义s0εεfεε42.4.1从正规式到NFA(续1)(b)对正规式PQ,构造NFAN(PQ)如下。其中s0为初态,f为终态,此NFA接受L(P)L(Q);(c)对正规式P*,构造NFAN(P*)如下。其中,s0为初态,f为终态,此NFA接受L(P*)(等价于(L(P))*);(d)对于正规式

9、(P),使用P本身的NFA,不再构造新的NFA。■εs0εfεε52.4.1从正规式到NFA(续2)正规式、正规集、NFA的对应关系:正规式正规集NFAε2.a3.P

10、Q4.PQ5.P*6.(P)L(ε)={ε}L(a)={a}L(P)∪L(Q)L(P)L(Q)(L(P))*L(P)s0εεfεεεs0εfεε62.4.1从正规式到NFA(续3)例2.11用Thompson算法构造正规式r=(a

11、b)*abb的NFAN(r)<1>分解正规式<2>自下而上构造NFA强调:构造过程与正规式一一对应构造一个新的NFA最多增加两个状态72.4.2从NFA到DFA<1>N

12、FA识别记号的“并行”方法例2.12从甲地到乙地,可以乘车也可以骑自行车,具体路线如右图。其中c表示乘车,b表示骑自行车。现在要求从甲地到乙地,只许乘车而不许骑自行车,该如何走?问题抽象:识别是否有从甲到乙标记为全c的路径试探(串行):甲c2无路可走,回退甲c1c3无路可走,回退甲c1c乙到达乙地,成功假设有足够多的小汽车,每次均到达小汽车可能到达的全体并行:甲c{1,2}c{3,乙}到达乙地,成功82.4.2从NFA到DFA(续1)并行的方法,核心思想是将不确定的下一状态确定化:在每试探一步时,考虑了所有的下一状态转移,因此所走的每一步都是确定的。NFA上识别

13、记号的确定化方法确定化的两个方面(回顾DFA定义)计算下一状态转移时:<1>消除ε状态转移:ε-闭包(T)<2>消除多于一个的下一状态转移:smove(S,a)因此,用NFA识别记号,常用并行方法,而不采用串行的方法(算法不易构造,复杂度高且回溯)92.4.2从NFA到DFA(续2)定义2.7状态集T的ε-闭包(T)是一个状态集,且满足:(1)T中所有状态属于ε-闭包(T);(2)任何smove(ε-闭包(T),ε)属于ε-闭包(T);(3)再无其他状态属于ε-闭包(T)。■根据定义,ε-闭包({s2})应是:1.s2自身{s2}(1)2.s4{s2,s4}(2

14、)3.s5{s2,s4,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。