第六次作业——正规文法与正规式

1.分别写出描述以下语言的正规文法和正规式:

L1={abna|n≥0}。

 正规文法:

  S→aA,A→bna

  A→Ba,B→bn

  B→bB|ε

正规式:

  S=aA

  A=Ba

  B=b*

  S=ab*a

L2={ambn|n≥1,m ≥1}

 正规文法:

  S→aP,P→bn

  P→Bb,B→bn

  B→bB|b

  S→Qb,Q→am

  Q→Aa,A→am

  A→Aa|a

正规式:

  A=Aa|a

  B=bB|b

  S=aB|Ab

    =a(bB|b)|(aA|a)b

    =abb*|a*ab

    =(ab)(b|a)*

L2={(ab)n|n≥1}

 正规文法:

  S→anP,P→bn

  P→Bb,B→bn

  B→bB|b

  S→Q(bB|b),Q→an

  Q→aA,A→an

  A→aA|a

正规式:

  A=aA|a

  B=Bb|b

  S=(aA|a)(Bb|b)

    =aa*b*b

    =a(ab)*b

 2.将以下正规文法转换到正规式

Z→0A
A→0A|0B
B→1A|ε

  A=(0A+0(1A+ ε ))

    =0A+01A+0

    =(0+01)A+0

    =(0|01)A|0

    =(0|01)*0

  Z=0A=0(0|01)*0

Z→U0|V1
U→Z1|1
V→Z0|0

   Z=U0+V1

     =(Z1+1)0+(Z0+0)1

     =Z10+10+Z01+01

     =Z(10+01)+(10+01)

     =Z(10|01)|(10|01)

     =(10|01)*(10|01)

S→aA
A→bA|aB|b
B→aA

   A=bA+a(aA)+b

     =(b+aa)A+b

     =(b|aa)A|b

     =(b|aa)*b

  S=aA

     =a(b|aa)*b

I→l|Il|Id(太难识别,修改为:L→i|Li|Ld

  L=i+Li+Ld

    =i+L(i+d)

    =L(i|d)|i

    =(i|d)*i

 

posted @ 2019-10-16 23:48  酒大暗  阅读(426)  评论(0编辑  收藏  举报