右線性正規文法到有窮自動機的轉換方法

2021-10-08 22:03:41 字數 947 閱讀 5777

設給定乙個右線性正規文法 g = (v n , v t , p , s ),則相應的有窮自動機 m = ( q , σ , f , q 0 , z )。

(1 )將 v n 中的每乙個非終結符視作 m 中的乙個狀態,並增加乙個狀態 d 且 d ∉ v n ,令q = v n ∪ , z = , σ = v t , q 0 = s 。

(2 )對 g 中每一形如 a → ab 的產生式( a , b ∈ v n , a ∈ v t ∪ ),令 f ( a , a ) = b 。

(3 )對 g 中每一形如 a → a 的產生式( a ∈ v n , a ∈ v t ),令 f ( a , a ) = d 。

(4 )對 g 中每一形如 a → ε 的產生式( a ∈ v n ),令 a 為接受狀態或令 f ( a , ε ) = d 。

顯然,這樣構造的 m 是具有乙個開始狀態的 nfa ,這個 nfa 能夠且只能夠識別正規文法g 所描述的語言。

【例 3.19 】構造下述文法 g [ z ]的有窮自動機。

z →0 a

a →0 a |0 b

b →1 a | ε

根據上述轉換方法,與文法 g [z ]等價的自動機 m = (,, f ,,),其中

f ( z , 0 ) = 	 f ( z , 1 ) = ø	 f ( a , 0 ) = 

f ( a , 1 ) = ø f ( b , ε ) = d f ( b , 1 ) =

其狀態圖如圖 3.21 ( a )或( b )所示。

顯然,自動機 m 是非確定的,它識別的語言就是文法 g [ z ]所描述的語言,即 l ( g [ z ]) = l ( m ) =0 ( 0|01 )* 0

正規式到正規文法與自動機

正規式到正規文法 對任意正規式r選擇乙個非終結符z生成規則z r 1.對形如a ab的規則,轉換成a ab,b b 2.將形如a a b的規則,轉換成a a,a b a a b 3.將形如a a b的規則,轉換成a aa,a b 將形如a ba 的規則,轉換成a aa,a b 不斷利用上述規則進行轉...

正規式到正規文法與自動機

1.正規式轉換到正規文法 對任意正規式r選擇乙個非終結符z生成規則z r 1.對形如a ab的規則,轉換成a ab,b b 2.將形如a a b的規則,轉換成a a,a b a a b 3.將形如a a b的規則,轉換成a aa,a b 將形如a ba 的規則,轉換成a aa,a b 不斷利用上述規...

07 正規式到正規文法與自動機

1.正規式轉換到正規文法 對任意正規式r選擇乙個非終結符z生成規則z r 1.對形如a ab的規則,轉換成a ab,b b 2.將形如a a b的規則,轉換成a a,a b a a b 3.將形如a a b的規則,轉換成a aa,a b 將形如a ba 的規則,轉換成a aa,a b 不斷利用上述規...