# Practice Exam for CFG`s Solutions ```Name: ______________________________
COT 3210 Exam 2. Answer all questions. Each question worth 10 points.
1. Use the pumping lemma to prove that 0n1m, n  m, is not regular.
Let n be plc
z=0n12n, z=uvw. Let z’=uw. But z’ has fewer 0’s than 1’s.
2. Prove that L = 0nww0n , n &gt; 0, not regular, where w is a string.
Let n be plc. z=0n110n. z=uvw. z’=uvvw= 0n+q110n, q &gt;=1, but z’ is not in L.
3. Give a context-free grammar to generate the language 0n1m, n  m.
S -&gt; ASB | e
A -&gt; 0A|0
B -&gt; 1 | e
4. Give a context-free grammar to generate the language (0+1)0*(11)*.
S-&gt; ABC
A -&gt; 0 | 1
B -&gt; 0B | e
C -&gt; 11C | e
For the next two questions, consider the CFG (S is the start symbol):
S -&gt; SA | a
A -&gt; Aa | aB
B -&gt; bB | SB | b
5. Show how to derive the string aabab using this CFG using a left-most derivation.
S -&gt; SA -&gt; aA -&gt; aaB -&gt; aabB -&gt; aabSB -&gt; aabaB -&gt; aabab
6. Show a parse tree for the string aabb
7. Describe (at a very high level) a PDA to accept sets of “balanced” “{“ and “ }”
symbols from a “C” program. That is, the alphabet consists of the two symbols: “{“ and
“}” Strings are sequences of these symbols such that no prefix of the string has more “}”
than “{“. For example, the following is legal: {{}{}}, but the following string is not:
{}}{.
Push {‘s. Pop { when you read a }. Accept by empty stack.
8. Suppose we have a finite automata with TWO stacks (instead of just one stack as with
PDA). Describe at a very high level how we can accept 0n1n2n using this type of machine.
Push 0’s on stack 1 and stack 2 at same time. Read 1’s and pop 0’s from stack 1. Read 2’s
and pop 0’s from stack 2. Accept only if both stacks empty.
```