ImageVerifierCode 换一换
格式:PPT , 页数:53 ,大小:1.83MB ,
文档编号:5108089      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-5108089.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(第三章-正则语言课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

第三章-正则语言课件.ppt

1、Principles of Compiler第三章 正则语言第三章第三章 正则语言正则语言l 正则语言(Regular Language)一种最简单的形式语言。计算机程序设计语言的词法属于正则语言的范畴。l 本章内容:正则语言的三种模型 有穷状态自动机 正则表达式 正则文法3.1 有穷状态自动机有穷状态自动机l一个识别=a,1 中所有标识符的程序:int nStatus=0;while(ch=getch()if(nStatus=0)if(ch=a)nStatus=1;else return ERROR;else if(ch!=a&ch!=1)return ERROR;return 0;3.1

2、有穷状态自动机有穷状态自动机l识别算法可以用图形表示:3.1 有穷状态自动机有穷状态自动机l 有穷状态自动机(Finite Automata)一台只有一个变量的计算机。变量的取值范围有限,变量的一个值称为该计算机的状态。计算机从初始状态开始运行,从坐向右读入输入的字符。每读一个字符,根据一定规则修改状态值。如果输入结束,当前状态为接受状态,则接受输入的串;否则拒绝输入串。3.1 有穷状态自动机有穷状态自动机lFA的表示方法-状态图:状态:用圆圈表示,圆圈中符号标识状态迁移:用连接两个状态的箭头表示,箭头上的符号为迁移的激活符号初始状态:无源的箭头标识初始状态接受状态:用双圈表示接受状态3.1

3、有穷状态自动机有穷状态自动机lFA的表示方法-迁移表:a101111FA的语法的语法l一台FA M=(Q,q0,F),其中:Q为一个非空有穷的状态集合;为有穷的字母表(符号集);:Q Q为状态迁移函数;q0 Q为初始状态;F Q为接受状态集合。3.1 有穷状态自动机有穷状态自动机l M=(Q,q0,F),其中:Q=0,1;=a,1 ;=(0,a),1),(1,a),1),(1,1),1);q0=0;F=1。FA的语义的语义(FA与语言的关系与语言的关系)lFA的运行:给定一台FA M=(Q,q0,F)M的一个运行是一个有穷的状态序列=s0s1sn,其中:s0=q0;sn F;0in(a(si,

4、a)=si+1)。l例:01,011,0111都是图中自动机的运行。FA的语义的语义(FA与语言的关系与语言的关系)lFA接受(识别)的串:给定一台FA M=(Q,q0,F)称一个串=a1a2an被M接受(识别),如果M存在一个运行=s0s1sn,使得:0in(si,ai+1)=si+1)。如果串不被M接受,则称M拒绝。lFA M的语言L(M)为所有M接受的串的集合。FA的语义的语义(FA与语言的关系与语言的关系)l例:FA与正则语言与正则语言l定义:称FA M识别语言L,如果M恰好接受L中的所有串。l定义:一个语言是正则的,当且仅当存在一台FA识别它。3.2 正则语言的封闭性正则语言的封闭性

5、l 正则语言在并运算下的封闭性l 定理:如果L1与L2为正则语言,则L1L2也是正则语言。证明思路:构造一台FA恰好识别L1L2。l语言的性质 语言是符号串的集合 补运算l封闭性 如果语言A为正则语言,那么A的补集也是正则语言 语言封闭性的意义3.2.3 正则语言的补运算正则语言的补运算全集为*,即所有可能的符号串的集合。证明思路证明思路l 由于A为正则语言所以存在一台DFA M恰好识别Al 根据M,构造一台DFA M,恰好识别A的补集 对任何一个符号串,如果M接受,则M拒绝 如果M拒绝,则M接受l 证明L(M)=A的补集例:一个正则语言的补集例:一个正则语言的补集10A 所有以开头的串10A

6、 所有不以开头的串MM0()11()MMLL01补自动机的构造补自动机的构造l原始自动机0(,)MQqFl 补自动机0(,)MQqF QQZ 00qq(,),(,)(,)aZ a Zs t Qas a ts a Z FQ FZ证明证明l证明方法()=()MML LL L*()()()()MMMM LLLLl引理1*()()MM LL12.,()naaaM令L0100+1+1,.=0(,)=)nniiiMs sssqsFi ns as 不存在的运行使得12001nnaaaqsssF 1nsF情况:12(0(,)kkkk nt Q s at 情况:12001()nnaaaqsssFM 存在L121

7、00()kkknZZaaaqssaFM 存在Ll在FA的计算过程中,有的时候需要“猜测”的功能 例:证明正则语言在乘积运算下封闭l普通的FA无法“猜测”l需要一种机制能够同时计算所有的可能-非确定性3.3 非确定性的有穷自动机非确定性的有穷自动机lNFA(Nondeterministic Finite Automata)lDFA(Deterministic Finite Automata)lNFA与DFA的区别 从DFA的每一个状态出发,对于字母表中的每一个符号,最多只有一条迁移,而NFA可以有多条。NFA允许“空转移”,也就是能够不读入任何符号就迁移到另外的状态。3.3 非确定性的有穷自动机

8、非确定性的有穷自动机3.3 非确定性的有穷自动机非确定性的有穷自动机对同样的符号有多条迁移允许空转移3.3 非确定性的有穷自动机非确定性的有穷自动机lNFA的计算方式 每当遇到多种选择的时候就分裂,并发计算这些选择。当输入结束的时候,只要有一个分支接受,则接受。l例:输入为1011l一台NFA M=(Q,q0,F),其中:Q为一个非空有穷的状态集合;为有穷的字母表(符号集);:Q 2Q为状态迁移函数,其中=;q0 Q为初始状态;F Q为接受状态集合。3.3.1 NFA的形式定义的形式定义3.3.1 NFA的形式定义的形式定义l表格表示方法01q1q1q1,q2q2q3q3q3q4q4q4q4l

9、NFA的运行:M的一个运行是一个有穷的状态序列=s0s1sn,其中:s0=q0;sn F;0in(a(si+1 (si,a)。3.3.2 NFA的语言的语言lNFA接受的串:称一个串=a1a2am被M接受(识别),如果存在一个串=a1a2an,其中a1,a2,an,使得=,而且M存在一个运行=s0s1sn,使得:0in(si+1 (si,ai+1)。如果串不被M接受,则称M拒绝。l例:0111可以写为01113.3.2 NFA的语言的语言lNFA M的语言L(M)为所有M接受的串的集合。3.3.2 NFA的语言的语言l定义:如果两台自动机识别相同的语言,则称这两台自动机等价。l定理:对于任意一

10、台NFA,都存在等价的DFA。l证明思路:对任意的NFA,构造一台DFA,模拟NFA的运行,用DFA的一个状态去记录所有分支的状态。3.3.3 NFA与与DFA的等价性的等价性3.3.3 NFA与与DFA的等价性的等价性l例:l证明:首先不考虑空转移的情况 令NFA N=(Q,q0,F)构造DFA M=(Q,q0,F),其中 Q=2Q 对所有q Q,a,令(q,a)=rq(r,a)q0=q0 F=q Q|q包含N的一个接受状态 3.3.3 NFA与与DFA的等价性的等价性l考虑空转移的情况l定义函数-Closure 对M的一个状态q Q,-Closure(q)表示从q中的状态出发,只经过空转移

11、能到达的所有状态的集合l改写转移函数:(q,a)=qQ|存在r q,使得q -Closure(r,a)。l改写起始状态 q0=-Closure(q0)3.3.3 NFA与与DFA的等价性的等价性l子集法 构造状态集的幂集,作为DFA的状态集;对DFA的每一个状态,构造由其出发的迁移。l造表法(On-the-fly)首先构造DFA的初始状态;对于现有DFA的状态,构造由其出发的迁移,如果迁移的目标为新状态则构造一个新的状态。3.3.4 从从NFA到到DFA的转换的转换l例:3.3.4 从从NFA到到DFA的转换的转换l推论:一个语言是正则的,当且仅当存在一台NFA识别它。l定理:正则语言在并运算

12、、乘积运算、闭包运算下封闭。3.3.5 正则语言的封闭性正则语言的封闭性l并运算3.3.5 正则语言的封闭性正则语言的封闭性l乘积运算3.3.5 正则语言的封闭性正则语言的封闭性l闭包运算3.3.5 正则语言的封闭性正则语言的封闭性l利用运算符来构造语言运算的表达式,从而得到复杂的语言。l如果这些运算符为正则运算,则称这样的表达式为正则表达式。l正则运算:并、乘积、闭包。3.4 正则表达式正则表达式l语法:归纳定义l称R为一个正则表达式,如果R为以下情况的一种:a,a R1|R2,R1 R2,如果R1与R2都是正则表达式 R1 R2,如果R1与R2都是正则表达式 R1*,如果R1是正则表达式3

13、.4.1 正则表达式的定义正则表达式的定义l语义:归纳定义l如果R为一个正则表达式,那么R的语言L(R)可以归纳定义如下:L(a)=a L()=L()=L(R1|R2)=L(R1)L(R2)L(R1 R2)=L(R1)L(R2)L(R1*)=L(R1)*3.4.1 正则表达式的定义正则表达式的定义lR1|R2=R2|R1 l(R1 R2)R3=R1 (R2 R3)l(R1 R2)R3=R1 (R2 R3)lR1 (R2 R3)=(R1 R2)(R1 R3)3.4.2 正则表达式的性质正则表达式的性质l定理:一个语言是正则的,当且仅当存在一个正则表达式描述它。l引理1:如果一个语言可以用正则表达

14、式描述,则它是正则语言。l引理2:如果一个语言是正则的,那么可以用正则表达式描述它。3.4.3 正则表达式与正则表达式与FA的等价的等价l引理1:如果一个语言可以用正则表达式描述,则它是正则语言。l证明思路:对任意一个正则表达式,都存在等价的FA。l证明方法:归纳法,按照正则运算的次数归纳 归纳基础:运算次数n=0;归纳假设:假设运算次数n 0;|p。l证明思路:令DFA M识别L,p为M的状态数。的长度大于等于p,对应的运行=s0s1sm,满足m p,因此中存在重复的状态。3.7 附录:正则语言的泵引理附录:正则语言的泵引理令k为使得 中状态发生重复的最小下标,=s0s1sjsksm,sj=sk l例:L1=0n1n|n 0 不是正则语言l证明:假设L1是正则语言,那么必然存在泵长度p 选择串=0p1p,将分为三段,考虑以下情况:只包含0:m中0比1多只包含1:m中1比0多包含0与1:m中0与1的次序混乱。所以0p1p不能分割,与假设矛盾,即证。3.7 附录:正则语言的泵引理附录:正则语言的泵引理

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|