...

/

From PDA to CFG (General Case)

From PDA to CFG (General Case)

Learn about the general case of conversion of a PDA to a CFG.

Converting an arbitrary PDA to CFG

To convert an arbitrary PDA to a CFG, we somehow need to relate the states and transitions of the PDA, including stack operations, to variables and rules in a CFG. This is a tall order but a doable one. To understand the algorithm, we need to take a deeper look at stack behavior in PDAs. We start with the simple, one-state PDA for Leq={na(w)=nb(w)w(a+b)}L_{eq} = \{n_a(w)\:=\:n_{b}(w)\:|\:w \in (a+b)^* \} found in the figure below.

Press + to interact
Accepts the language Leq
Accepts the language Leq

While referring to this figure, let’s study the following trace of aaababbbbbaaaaababbbbbaa.

Step Input Stack
0 aaababbbbbaaaaababbbbbaa λ1\lambda_1
1 aababbbbbaaaababbbbbaa X1X_1
2 ababbbbbaaababbbbbaa X2X1X_2X_1
3 babbbbbaababbbbbaa X3X2X1X_3X_2X_1
4 abbbbbaaabbbbbaa X2X1X_2X_1
5 bbbbbaabbbbbaa X4X2X1X_4X_2X_1
6 bbbbaabbbbaa X2X1X_2X_1
7 bbbaabbbaa X1X_1
8 bbaabbaa
...
Access this course and 1400+ top-rated courses and projects.