Edit this page Backlinks This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== 9. Push Down Automata ====== ===== 9.1. Writing PDAs ===== Find PDAs that accept each of the languages below, both by empty stack and by final state. Identify which approach feels more suitable for each language. **9.1.1.** $ L = \{\: w \in \{A,B\}^* \ | \:w \text{ is a palindrome}\} $. **9.1.2.** $ L = \{ A^{m} B^{m+n} C^{n} \ | \: n, m \geq 0 \} $ **9.1.3.** $ L = \{w \in \{a, b\}^* | \#_a(w) = \#_b(w) \} $ **9.1.4.** $ L = \{w \in \{a, b\}^* | \#_a(w) \neq \#_b(w) \} $ **9.1.5.** $ L = \{a^ib^jc^k | i = j \lor j = k \} $ \\ ===== 9.2. Equivalence of the definitions ===== **9.2.1.** Prove that PDAs that accept by empty stack and PDAs that accept by final state are equivalent. More concretely: * starting from a PDA $math[A] which accepts by empty stack, **create** a PDA $math[A'] which accepts by final state, such that $math[L(A) = L(A')]. * perform the same task - vice-versa. **9.2.2.** Prove that the language $math[L(A)] where $math[A] is a PDA which uses only a fixed number of $math[k] stack cells, is **regular**.