03 正规表达式与正规语言_第1页
03 正规表达式与正规语言_第2页
03 正规表达式与正规语言_第3页
03 正规表达式与正规语言_第4页
03 正规表达式与正规语言_第5页
已阅读5页,还剩21页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三讲

正规表达式与正规语言正规语言的不同表达形式

正规表达式正规表达式与正规语言

正规语言

正规表达式的代数性质正规表达式

用代数的方法表示正规语言

语义正规语言(RegularLanguages,RL)

作用于正规语言上的三种代数运算:

联合(union)L

M=wwLwM

连接(concatenation)L·M=w1w2w1

Lw2

M

(星)闭包(closure)

L*=

i0Li

语法基本正规表达式3个运算符vs.上述3个运算

对应不同应用形式会扩展一些助记运算符如LEX

中的正规表达式正规表达式

设

为字母表。

上的正规表达式集合R

递归定义如下:归纳.1.

,

R.2.Ifa

,thena

R.3.任一变量L

R.

1.IfERandF

R

,thenE+F

R

.2.IfERandFR

,thenEF

R.基础.3.IfER

,thenE*

R.4.IfER

,

then(E)

R.

语法正规表达式

设R为

上的正规表达式集合。对每个不含变量的

E

R

,E的语言L(E)

递归定义如下:归纳.1.L()={

}andL()=

.2.Ifa,thenL(a)={a}.1.IfERandFR,thenL(E+F)=L(E)L(F).2.IfERandFR,thenL(EF)=L(E)L(F).基础.3.IfER,thenL(E*)=(L(E))*.4.IfER,then

L((E))=L(E).

语义

算符优先级(precedence)依次为

•连接

正规表达式

正规表达式算符优先级正规表达式

L+=LL*=L*L

L?=

+L

Ln=LLn-1(n>0)L0=

正规表达式的几个派生运算符

设计表示如下语言的正规表达式:该语言中的每个字符串由交替的0和1

构成

(01)*+(10)*+0(10)*+1(01)*

(+1)(01)*(+0)

(+0)(10)*(+1)正规表达式

正规表达式举例正规表达式

正规表达式举例

课堂练习设计如下语言的正规表达式:

从右端数第5

个位置是1

的所有0,1

字符串的集合.

前5

位至少包含一个1

的所有0,1

字符串的集合.

(含长度小于5

的字符串,至少含一个字符)

归纳定义字母表

上的正规语言归纳定义如下:归纳1

{

}

和

是正规语言2

若a

,则

{a}是正规语言1

若L

和R

是正规语言,则L

R是正规语言2

若L和

R

是正规语言,则LR是正规语言基础3

若L是正规语言,则L*是正规语言正规语言

正规语言(regularlanguage)

利用正规表达式定义对于字母表

上的语言R,若存在

上的正规表达式E,满足L(E)=R

,则R是正规语言正规语言

正规语言(regularlanguage)

正规表达式的代数定律

交换律和结合律零元和幺元分配律等幂律与闭包相关的定律

代数定律的具体化

用于发现和测试定律正规表达式的代数定律

交换律(commutativity)和结合律(associativeity)

L+M=M+L

(L+M)+N=L+(M+N)

(LM)N=L(MN)

幺元(identities)和零元(annihilators)

+L=L+

=L

L=L

=L

L=L

=

正规表达式的代数定律

分配律(distributivelaw)

L(M+N)=LM+LN

(M+N)L=ML+NL

等幂律(idempotentlaw)

L+L=L正规表达式的代数定律

与闭包相关的定律

(L*)*=L*

*=

*=

L+=LL*=L*L(L+的定义)

L*=L++

与任选运算相关的定律

L?=

+L(L?的定义)正规表达式的代数定律

代数定律的具体化

具体化:将正规表达式中的每个变量用单个符号替换.

一般化:将具体表达式中的单个符号用变量表示.

结论:正规表达式的一般形式所代表的任何语言与其对应的具体表达式的语言之间可以建立特定的对应关系.

应用用于发现和测试关于正规表达式的定律正规表达式的代数定律

定理:正规表达式的一般形式所代表的任何语言与其对应的具体表达式的语言之间存在如下对应关系:

设E

为正规表达式,L1,L2,…,Lm为其中的变量.

(这里,假设E中不含非变量符号,否则需推广)将每一Li替换为符号ai

,得到对应E的一个具体表达式C.则对这些变量的任何实例语言S1,S2,…,Sm,L(E)中的任何串w可写成w=w1w2…wk

的形式,其中wi是某一语言Sji(1

ji

m)中的串,并且串aj1aj2…ajk属于语言L(C);另一方面,若串

aj1aj2…ajk属于语言L(C),wi

是某一语言Sji(1

ji

m)中的任意串,则w=w1w2…wk属于语言L(E)

代数定律的具体化正规表达式的代数定律

举例:正规表达式S*M对应的一个具体表达式为

a*b.任取S和M的一个实例,比如设

S={01,10},M=L(2*).则有:

任一w

L(S*M)={01,10}*L(2*),可以写成

w1w2…wk

的形式,wi是S或M中的串,且有

c1c2…ck

L(a*b)(另一方面类似).

其中,若wi是S中的串,则有ci=a

,否则

ci=b.

(注:默认的字母表包含了所涉及到的所有非变量符号。前述定理和后续证明皆视如此。)

代数定律的具体化正规表达式的代数定律(上述定理的)证明思路:(选讲)

归纳于正规表达式E的结构.(仅证一方面)

基础:若E为

,,

显然有E=C,定理成立;注:因我们假设E中不含非变量符号,所以E不为a若E为L,将唯一的变量L替换为符号c,则其具体表达式为c.L的任何一个实例语言中的串w,对应表达式c

的语言L(c)中的串c.(接下页)

代数定律的具体化正规表达式的代数定律归纳:若E=E1E2,E1中的变量为L1,L2,…,Lm,E2中的变量为L1’,L2’,…,Ln’

,可能有交叉.分别用a1,a2,…,am,

a1’,a2’,…,an’

替换它们(也可能有交叉),则E具体化为C,E1和E2分别具体化为C1和C2,并且C=C1C2.任意取定上述各变量的实例语言.设任何w

L(E),则存在w1

L(E1)和w2

L(E2),且满足w=

w1w2.由归纳假设,w1可写成s1s2…sk

的形式,其中si是某一语言Sji(1

ji

m)中的串,并且aj1aj2…ajk属于语言L(C1);同样,w2可写成t1t2…th

的形式,其中ti是某一语言Sli’

(1

li

n)中的串,并且al1’

al2’

…alh’属于语言L(C2).这样,w可写成w=s1s2…skt1t2…th

的形式,并且有aj1aj2…ajkal1’

al2’

…alh’属于语言L(C).对于E=E1+E2和E=E1*的情形,可以类似证明.

代数定律的具体化(接上页证明)正规表达式的代数定律

推论:设E,F为正规表达式,它们具有相同的变量集;采用同样的替换方式,得到对应于E,F的具体表达式分别为C,D.则对E,F中的变量对应的所有语言,满足

L(E)=L(F)iffL(C)=L(D)

证明思路:设E,F的变量集为L1,L2,…,Lm.

设c=c1c2…ck

L(C),其中每个ci均为单个符号.任取

w

L(E),满足

w=w1w2…wk

,且有if

wi

Lj,

then

E具体化为C时使用ci替换Lj.

∵L(E)=L(F),∴w

L(F).因而,有c

L(D).∴L(C)

L(D).同理可证L(D)

L(C).∴L(C)

=L(D).

假设L(C)

=L(D)

,证明L(E)=L(F).(留作思考)

代数定律的具体化正规表达式的代数定律

代数定律的具体化(应用举例)

用于发现和测试关于正规表达式的定律.

举例:对于具体符号a,容易证明aa*=a*a,由此可以发现定律

LL*=L*L,其中L为变量,可以实例化为任何语言.

举例:若要验证定律L(M+N)=LM+LN,只要验证,对于具体符号a、b、c,a(b+c)=ab+ac成立.

举例:若要验证L+ML=(L+M)L是否成立,可以验证对于具体符号a、b,a+ba=(a+b)a是否成立.但后者不成立,aa属于

(a+b)a代表的语言,而不属于a+ba代表

的语言.正规表达式的代数定律

必做题:Ex.3.1.1(b),(c)

!Ex.3.1.2(b)

*!Ex.3.1.5

Ex.3.4.1(c),(g)

Ex.3.4.2(b),(d)

!!Ex.3.1.3(a),(b)课后练习

自测题:试给出下列每个正规语言的一个正规表达式:

1){

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论