Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
lfa:2024:lab10 [2024/12/16 18:21] cata_chiru |
lfa:2024:lab10 [2024/12/16 19:34] (current) cata_chiru |
||
|---|---|---|---|
| Line 5: | Line 5: | ||
| Write CF grammar for the following languages. For each grammar, make sure it is not ambiguous. (Start with any CF grammar that accepts L. Then write another non-ambiguous grammar for the same language). | Write CF grammar for the following languages. For each grammar, make sure it is not ambiguous. (Start with any CF grammar that accepts L. Then write another non-ambiguous grammar for the same language). | ||
| - | **9.1.1.** $ L = \{\: w \in \{A,B\}^* \ | \:w \text{ is a palindrome}\} $. | + | **9.1.1.** $ L = \{\: w \in \{a,b\}^* \ | \:w \text{ is a palindrome}\} $. |
| <hidden Solution 9.1.1> | <hidden Solution 9.1.1> | ||
| - | $ S \leftarrow ASA\ |\ BSB \ |\ A \ |\ B \ |\epsilon $ \\ | + | $ S \leftarrow aSa\ |\ bSb \ |\ a \ |\ b \ |\ \epsilon $ \\ |
| </hidden> | </hidden> | ||
| - | **9.1.2.** $ L = \{ A^{m} B^{m+n} C^{n} \ | \: n, m \geq 0 \} $ | + | **9.1.2.** $ L = \{ a^{m} b^{m+n} c^{n} \ | \: n, m \geq 0 \} $ |
| + | |||
| + | <hidden Solution 9.1.2> | ||
| + | |||
| + | $ S \leftarrow AB $ \\ | ||
| + | $ A \leftarrow aAb\ |\ \ \epsilon $ \\ | ||
| + | $ B \leftarrow bBc\ |\ \ \epsilon $ \\ | ||
| + | |||
| + | </hidden> | ||
| **9.1.3.** $ L = \{w \in \{a, b\}^* | \#_a(w) = \#_b(w) \} $ | **9.1.3.** $ L = \{w \in \{a, b\}^* | \#_a(w) = \#_b(w) \} $ | ||
| + | |||
| + | <hidden Solution 9.1.3> | ||
| + | |||
| + | $ S \leftarrow aBS\ |\ bAS\ |\ \epsilon $ \\ | ||
| + | $ A \leftarrow a\ |\ bAA $ \\ | ||
| + | $ B \leftarrow b\ |\ aBB $ \\ | ||
| + | |||
| + | </hidden> | ||
| + | |||
| **9.1.4.** $ L = \{w \in \{a, b\}^* | \#_a(w) \neq \#_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.1.5.** $ L = \{a^ib^jc^k | i = j \lor j = k \} $ \\ | ||
| + | |||
| + | <hidden Solution 9.1.5> | ||
| + | |||
| + | $ S \leftarrow C\ |\ A $ \\ | ||
| + | $ C \leftarrow Cc\ |\ B $ \\ | ||
| + | $ B \leftarrow aBb\ |\ \ \epsilon $ \\ | ||
| + | $ A \leftarrow aA\ |\ D $ \\ | ||
| + | $ D \leftarrow bDc\ |\ \ \epsilon $ \\ | ||
| + | |||
| + | </hidden> | ||
| + | |||
| ===== 9.2. Ambiguity ===== | ===== 9.2. Ambiguity ===== | ||
| Line 30: | Line 59: | ||
| $ A \leftarrow aA\ |\ B $ \\ | $ A \leftarrow aA\ |\ B $ \\ | ||
| $ B \leftarrow bB\ |\ \epsilon $ | $ B \leftarrow bB\ |\ \epsilon $ | ||
| + | |||
| + | <hidden Solution 9.2.1> | ||
| + | |||
| + | $ S \leftarrow A $ \\ | ||
| + | $ A \leftarrow aA\ |\ B $ \\ | ||
| + | $ B \leftarrow bB\ |\ \epsilon $ | ||
| + | |||
| + | </hidden> | ||
| **9.2.2.** | **9.2.2.** | ||
| Line 36: | Line 73: | ||
| $ A \leftarrow 0A1\ |\ 01\ |\ B $\\ | $ A \leftarrow 0A1\ |\ 01\ |\ B $\\ | ||
| $ B \leftarrow B1\ |\ \epsilon $ | $ B \leftarrow B1\ |\ \epsilon $ | ||
| + | |||
| + | <hidden Solution 9.2.2> | ||
| + | |||
| + | $ S \leftarrow AS\ |\ A $ \\ | ||
| + | $ A \leftarrow 0A1\ |\ B $\\ | ||
| + | $ B \leftarrow B1\ |\ \epsilon $ | ||
| + | |||
| + | </hidden> | ||
| + | |||
| **9.2.3.** | **9.2.3.** | ||
| Line 42: | Line 88: | ||
| $ A \leftarrow aA\ |\ \epsilon $\\ | $ A \leftarrow aA\ |\ \epsilon $\\ | ||
| $ B \leftarrow bB\ |\ \epsilon $ | $ B \leftarrow bB\ |\ \epsilon $ | ||
| + | |||
| + | <hidden Solution 9.2.3> | ||
| + | |||
| + | $ S \leftarrow aS\ |\ bS\ |\ \epsilon $ \\ | ||
| + | |||
| + | </hidden> | ||
| + | |||
| + | |||
| **9.2.4.** Write an ambiguous grammar for $ L(a^*) $. | **9.2.4.** Write an ambiguous grammar for $ L(a^*) $. | ||
| + | <hidden Solution 9.2.4> | ||
| + | |||
| + | $ S \leftarrow aS \ |\ A\ |\ \epsilon $\\ | ||
| + | $ A \leftarrow aA\ |\ \epsilon $\\ | ||
| + | |||
| + | </hidden> | ||
| ===== 9.3 Regular Grammars ===== | ===== 9.3 Regular Grammars ===== | ||
| Line 64: | Line 124: | ||
| $ Y \leftarrow 1Y\ |\ 0\ |\ \epsilon $ | $ Y \leftarrow 1Y\ |\ 0\ |\ \epsilon $ | ||
| + | |||
| + | <hidden Solution 9.3.1> | ||
| + | |||
| + | Y produces $ 1^* (0 | \epsilon) $ | ||
| + | |||
| + | X produces $ 0^* 1Y \rightarrow 0^* 1^+ (0 | \epsilon) $ | ||
| + | </hidden> | ||
| **9.4.1.** Prove that the languages accepted by regular grammars are exactly the regular languages | **9.4.1.** Prove that the languages accepted by regular grammars are exactly the regular languages | ||