形式语言-第4章-正则表达式-课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《形式语言-第4章-正则表达式-课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 形式语言 正则 表达式 课件
- 资源描述:
-
1、2022-10-291第第4章章 正则表达式正则表达式 正则文法擅长语言的产生,有穷状态自动正则文法擅长语言的产生,有穷状态自动机擅长语言的识别。机擅长语言的识别。本章讨论正则语言的正则表达式描述。它本章讨论正则语言的正则表达式描述。它在对正则语言的表达上具有特殊的优势,在对正则语言的表达上具有特殊的优势,为正则语言的计算机处理提供了方便条件。为正则语言的计算机处理提供了方便条件。简洁、更接近语言的集合表示和语言的计算机简洁、更接近语言的集合表示和语言的计算机表示等。表示等。2022-10-292第第4章章 正则表达式正则表达式 主要内容主要内容 典型典型RE的构造。的构造。与与RE等价等价F
2、A的构造方法。的构造方法。与与DFA等价的等价的RE的构造。的构造。重点重点 RE的概念。的概念。RE与与DFA的等价性。的等价性。难点:难点:RE与与DFA的等价性证明。的等价性证明。2022-10-2934.启示启示 产生语言产生语言anbmck|n,m,k1aicnbxam|i0,n1,m2,x为为d和和e组成的串组成的串 的正则文法为的正则文法为AaA|aB|cEBbB|bCCcC|cE cE|bFFdF|eF|aHHaH|a2022-10-2944.启示启示 接受此语言的接受此语言的NFA M 2022-10-2954.启示启示 计算集合计算集合 set(q)set(A)=an|n0
3、=a*set(B)=set(A)abn|n0 =anabm|m,n0 =a*ab*=a+b*set(C)=set(B)bc*=a*ab*bc*=a+b+c*set(D)=set(C)c=a+b+c*c =a+b+c+2022-10-2964.启示启示 set(E)=set(A)cc*=a*cc*=a*c+set(F)=set(E)bd,e*=a*c+bd,e*set(H)=set(F)aa*=a*c+bd,e*aa*=a*c+b d,e*a+set(I)=set(H)a=a*c+b d,e*a+aL(M)=set(D)set(H)=a+b+c+a*c+bd,e*a+a2022-10-2974.
4、启示启示 根据集合运算的定义,根据集合运算的定义,d,e=de。从而,从而,d,e*=(de)*。这样可以将这样可以将L(M)写成如下形式:写成如下形式:L(M)=a+b+c+a*c+b(de)*a+a 记作:记作:a+b+c+a*c+b(d+e)*a+a=aa*bb*cc*+a*cc*b(d+e)*aaa*2022-10-2984.2 RE的形式定义的形式定义 正则表达式正则表达式(regular expression(regular expression,RE)RE)是是上的上的RERE,它表示语言,它表示语言;是是上的上的RERE,它表示语言,它表示语言;对于对于 aa,a a是是上的上
5、的RERE,它表示,它表示语言语言aa;2022-10-2994.2 RE的形式定义的形式定义 如果如果r r和和s s分别是分别是上表示语言上表示语言R R和和S S的的RERE,则:则:r r与与s s的的“和和”(r+s)(r+s)是是上的上的RERE,(r+s)(r+s)表表达的语言为达的语言为RSRS;r r与与s s的的“乘积乘积”(rs)(rs)是是上的上的RERE,(rs)(rs)表表达的语言为达的语言为RSRS;r r的克林闭包的克林闭包(r(r*)是是上的上的RERE,(r(r*)表达的语表达的语言为言为R R*。只有满足、的才是只有满足、的才是上的上的RERE。2022-
6、10-29104.2 RE的形式定义的形式定义 例例 4-1 4-1 设设=0=0,11 0 0,表示语言,表示语言00;1 1,表示语言,表示语言11;(0+1)(0+1),表示语言,表示语言00,11;(01)(01),表示语言,表示语言0101;(0+1)(0+1)*),表示语言,表示语言00,11*;(00)(00)(00)(00)*),表示语言,表示语言00000000*;2022-10-29114.2 RE的形式定义的形式定义 (0+1)(0+1)*)(0+1)(0+1)(0+1)(0+1)*),),表示语言表示语言00,11+;(0+1)(0+1)*)000)(0+1)000)(
7、0+1)*),表示,表示00,11上的至少含有上的至少含有3 3个连续个连续0 0的串组成的语言;的串组成的语言;(0+1)(0+1)*)0)1)0)1),表示所有以,表示所有以0101结尾的结尾的0 0、1 1字符串组成的语言;字符串组成的语言;(1(0+1)(1(0+1)*)0)0),表示所有以,表示所有以1 1开头,并开头,并且以且以0 0结尾的结尾的0 0、1 1字符串组成的语言。字符串组成的语言。2022-10-29124.2 RE的形式定义的形式定义 约定约定 r r的正闭包的正闭包r r+表示表示r r与与(r(r*)的乘积以及的乘积以及(r(r*)与与r r的乘积:的乘积:r
8、r+=(r(r=(r(r*)=(r)=(r*)r)r)闭包运算的优先级最高,乘运算的优先级闭包运算的优先级最高,乘运算的优先级次之,加运算次之,加运算“+”+”的优先级最低。所以,的优先级最低。所以,在意义明确时,可以省略其中某些括号。在意义明确时,可以省略其中某些括号。(0+1)(0+1)*)000)(0+1)000)(0+1)*)=(0+1)=(0+1)*000(0+1)000(0+1)*2022-10-29134.2 RE的形式定义的形式定义(0+1)(0+1)*)(0+1)(0+1)(0+1)(0+1)*)=(0+1)=(0+1)*(0+(0+1)(0+1)1)(0+1)*在意义明确时
9、,在意义明确时,RE rRE r表示的语言记为表示的语言记为L(r)L(r),也可以直接地记为,也可以直接地记为r r。加、乘、闭包运算均执行左结合规则。加、乘、闭包运算均执行左结合规则。2022-10-29144.2 RE的形式定义的形式定义 相等相等(equivalence)(equivalence)r r、s s是字母表是字母表上的一个上的一个RERE,如果,如果L(r)=L(s)L(r)=L(s),则称,则称r r与与s s相等,记作相等,记作r=s r=s。相等也称为等价。相等也称为等价。几个基本结论几个基本结论 结合律:结合律:(rs)t=r(st)(rs)t=r(st)(r+s)
10、+t=r+(s+t)(r+s)+t=r+(s+t)分配律:分配律:r(s+t)=rs+rtr(s+t)=rs+rt (s+t)r=sr+tr (s+t)r=sr+tr2022-10-29154.2 RE的形式定义的形式定义 交换律:交换律:r+s=s+rr+s=s+r。幂等律:幂等律:r+r=rr+r=r。加法运算零元素:加法运算零元素:r+r+=r=r。乘法运算单位元:乘法运算单位元:r=r=rr=r=r。乘法运算零元素:乘法运算零元素:r r=r=r=。L(L()=)=。L()=L()=。L(a)=aL(a)=a。2022-10-29164.2 RE的形式定义的形式定义 L(rs)=L(r
11、)L(s)L(rs)=L(r)L(s)。L(r+s)=L(r)L(s)L(r+s)=L(r)L(s)。L(rL(r*)=(L(r)=(L(r)*。L(L(*)=)=。L(r+)L(r+)*)=L(r)=L(r*)。L(rL(r*)*)=L(r)=L(r*)。L(rL(r*s s*)*)=L(r+s)=L(r+s)*)。如果如果L(r)L(r)L(s)L(s),则,则r+s=sr+s=s。2022-10-29174.2 RE的形式定义的形式定义 L(r L(rn n)=(L(r)=(L(r)n n。r rn nr rm m=r=rn+m n+m。一般地,一般地,r+rr+r,(rs)(rs)n
12、n r rn ns sn n,rssrrssr。幂幂 r r是字母表是字母表上的上的RERE,r r的的n n次幂定义为次幂定义为 r r0 0=。r rn n=r=rn-1n-1r r。2022-10-29184.2 RE的形式定义的形式定义 例例 4-2 4-2 设设=0=0,110000表示语言表示语言0000;(0+1)(0+1)*00(0+1)00(0+1)*表示所有的至少含两表示所有的至少含两个连续个连续0 0的的0 0、1 1串组成的语言;串组成的语言;(0+1)(0+1)*1(0+1)1(0+1)9 9表示所有的倒数第表示所有的倒数第1010个个字符为字符为1 1的串组成的语言
13、;的串组成的语言;2022-10-29194.2 RE的形式定义的形式定义L(0+1)L(0+1)*011)=x|x011)=x|x是以是以011011结尾的结尾的0 0、1 1串串;L(0L(0+1 1+2 2+)=0)=0n n1 1m m2 2k k|m|m,n n,k1k1;L(0L(0*1 1*2 2*)=0)=0n n1 1m m2 2k k|m|m,n n,k0k0;L(1(0+1)L(1(0+1)*1+0(0+1)1+0(0+1)*0)=x|x0)=x|x的开头字符的开头字符与尾字符相同与尾字符相同。2022-10-29204.3 RE与与FA等价等价 正则表达式正则表达式r
14、r称为与称为与FA MFA M等价,如果等价,如果L(r)=L(M)L(r)=L(M)。从开始状态出发,根据状态之间按照转移从开始状态出发,根据状态之间按照转移所确定的后继关系,依次计算出所给所确定的后继关系,依次计算出所给FAFA的的各个状态各个状态q q对应的对应的set(q)set(q),并且最终得到相,并且最终得到相应的应的FAFA接受的语言的接受的语言的RERE表示。表示。寻找一种比较寻找一种比较“机械机械”的方法,使得计算的方法,使得计算机系统能够自动完成机系统能够自动完成FAFA与与RERE之间的转换。之间的转换。2022-10-29214.3.1 RE到到FA的等价变换的等价变
15、换 0 0对应的对应的FAFA 0101对应的对应的FAFA2022-10-29224.3.1 RE到到FA的等价变换的等价变换 0+1对应的对应的FA2022-10-29234.3.1 RE到到FA的等价变换的等价变换 0*对应的对应的FA2022-10-29244.3.1 RE到到FA的等价变换的等价变换 定理定理 4-1 RE4-1 RE表示的语言是表示的语言是RLRL。证明:证明:施归纳于正则表达式中所含的运算符施归纳于正则表达式中所含的运算符的个数的个数n n,证明对于字母表,证明对于字母表上的任意上的任意正则表达式正则表达式r r,存在,存在FA MFA M,使得,使得L(M)=L
16、(M)=L(r)L(r)。M M恰有一个终止状态。恰有一个终止状态。M M在终止状态下不作任何移动。在终止状态下不作任何移动。2022-10-29254.3.1 RE到到FA的等价变换的等价变换 n=0 r=r=r=a 2022-10-29264.3.1 RE到到FA的等价变换的等价变换 设结论对于设结论对于n=k时成立,此时有如下时成立,此时有如下FA:M1=(Q1,1,q01,f1)M2=(Q2,2,q02,f2)L(M1)=L(r1),L(M2)=L(r2)。Q1Q2=。n=k2022-10-2927n=k+1 r=r1+r2取取q q0 0,f f Q Q1 1QQ2 2,令,令M=(
展开阅读全文