正規文法與正規式

 3型文法也叫作正規文法,它對應於有限狀態自動機,它是在2型文法的基礎上滿足:A->a|aB(右線性)或A->a|Ba(左線性)。如果有A->a,A->aB,B->a,B->cB則符合3型文法的要求。但是A->ab,A->aB,B->a,B->cB或A->a,A->Ba,B->a,B->cB則不符合3型文法的要求。也就是說,不能夠推導出兩個終結符,而且左線性和右線性只能使用一種,不能夠同時出現。

1.分別寫出描述以下語言的正規文法和正規式:

(1)L1={abna|n≥0}。

(2)L2={ambn|n≥1,m ≥1}

(3)L3={(ab)n|n≥1}

 答:(1) S → aA

        A → bA | a

     L1 = ab*a

   (2)S → aA

      A → aA | bB | b

      B → bB | b

     L2 = a*b*

   (3)S → aA

       A → bB

      B → aA | ε

     L3 = (ab)*

2.將以下正規文法轉換到正規式

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

 答:Z = 0A

  A = 0A + 0B

  B = 1A + ε

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

  A = aA | b

  Z = 0(0 | 01)*0

 

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

答:Z = U0 + V1

  U = Z1 + 1

  V = Z0 + 0 

  Z = (Z1+1)0 + V1

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

  Z = Z10 + 10 +Z01 + 01

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

  Z = (10+01)*1001

  Z = (10 | 01)*1001

 

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

答:S = aA

  A = bA + aB + b

  B = aA

  A = bA + a(aA) +b  = (b + aa)A +b

  S = (b | aa)*b

 

I→l|Il|Id

答: I = l + Il + Id

   I = l + I(l +d)

   I = l(l | d)*

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章