Automata-theory-pda-context-free-grammar

提供:Dev Guides
移動先:案内検索

PDAと文脈自由文法

文法 G がコンテキストフリーの場合、コンテキストフリーの文法 G によって生成される言語を受け入れる同等の非決定性PDAを構築できます。 文法 G のパーサーを構築できます。

また、 P がプッシュダウンオートマトンである場合、同等の文脈自由文法Gを構築できます。

  • L(G)= L(P)*

次の2つのトピックでは、PDAからCFGへ、またはその逆への変換方法について説明します。

特定のCFGに対応するPDAを見つけるアルゴリズム

入力-A CFG、G =(V、T、P、S)

出力-等価PDA、P =(Q、∑、S、δ、q〜0〜、I、F)

  • ステップ1 *-CFGの制作物をGNFに変換します。
  • ステップ2 *-PDAには1つの状態\ {q}のみがあります。
  • ステップ3 *-CFGの開始記号はPDAの開始記号になります。
  • ステップ4 *-CFGのすべての非端末はPDAのスタックシンボルになり、CFGのすべての端末はPDAの入力シンボルになります。

ステップ5 *- *A→aX の形式の各制作物に対して、aは終端で、 A、X は終端と非終端の組み合わせであり、遷移*δ(q、a、A)*を行います。

問題

次のCFGからPDAを構築します。

  • G =(\ {S、X}、\ {a、b}、P、S)*

プロダクションがあります-

*S→XS | ε、A→aXb | Ab | ab*

溶液

同等のPDAを、

P =(\ {q}、\ {a、b}、\ {a、b、X、S}、δ、q、S)

ここで、δ−

δ(q、ε、S)= \ {(q、XS)、(q、ε)}

δ(q、ε、X)= \ {(q、aXb)、(q、Xb)、(q、ab)}

δ(q、a、a)= \ {(q、ε)}

δ(q、1、1)= \ {(q、ε)}

特定のPDAに対応するCFGを見つけるアルゴリズム

入力-A CFG、G =(V、T、P、S)

出力-文法Gの非終端が\ {X〜wx〜|になるような等価PDA、P =(Q、∑、S、δ、q〜0〜、I、F) w、x∈Q}であり、開始状態はA〜q0、F〜になります。

  • ステップ1 *-δ(w、a、ε)に(y、m)および(z、b、m)が含まれる場合、w、x、y、z∈Q、m∈S、およびa、b∈∑ごとに(x、ε)を含む場合、生成規則X〜wx〜→a X〜yz〜bを文法Gに追加します。
  • ステップ2 *-w、x、y、z∈Qごとに、生成規則X〜wx〜→X〜wy〜X〜yx〜を文法Gに追加します。
  • ステップ3 *-w∈Qの場合、文法Gに生成規則X〜ww〜→εを追加します。