設給定乙個右線性正規文法 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 不斷利用上述規...