I gotta make a CFG and PDA for the grammar that has perfectly nested parentheses and brackets.
$\qquad\begin{align} S &\to [S] \\ S &\to (S) \\ S &\to SS \\ S &\to \varepsilon \end{align}$
Not sure if this is correct, or how to make the PDA from it?
I gotta make a CFG and PDA for the grammar that has perfectly nested parentheses and brackets.
$\qquad\begin{align} S &\to [S] \\ S &\to (S) \\ S &\to SS \\ S &\to \varepsilon \end{align}$
Not sure if this is correct, or how to make the PDA from it?
The language you study is a classic, the one-sided Dyck language (on two pairs of brackets). You can directly make a PDA by considering the following property of nested strings: every symbol closing bracket you read should match the last unmatched opening bracket. Keep the unmatched $[$ and $($ on the stack and you are ready to go.
A: your CFG looks good.
B: There is a very well-known method of converting CFGs to PDAs.
Check https://www.youtube.com/watch?v=MJ9xNavURY8
Or the Wikipedia article on Pushdown automata
also this question has some interesting details.
But mainly - google "Converting CFG ro PDA".