0% found this document useful (0 votes)
206 views6 pages

CFG 2

This document contains the solutions to homework problems for a course on formal languages. It includes derivations, context-free grammars, and explanations for various language concepts such as ambiguity, Chomsky normal form, and the CYK parsing algorithm. Problems cover topics like grammar transformations, language membership, and generating specific formal languages.

Uploaded by

JunaidWahid
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
206 views6 pages

CFG 2

This document contains the solutions to homework problems for a course on formal languages. It includes derivations, context-free grammars, and explanations for various language concepts such as ambiguity, Chomsky normal form, and the CYK parsing algorithm. Problems cover topics like grammar transformations, language membership, and generating specific formal languages.

Uploaded by

JunaidWahid
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

DCP3122 Introduction to Formal Languages, Spring 2015 27-Apr-2015

Homework 4 - Solution
Instructor: Prof. Wen-Guey Tzeng Due: 4-May-2015

1. Draw the derivation tree corresponding to the following context-free grammar G = ({S}, {a, b}, S, P )
with productions
S aSa, S bSb, S .
A typical derivation in this grammar is S aSa aaSaa aabSbaa aabbaa. It is clear
that L(G) = {wwR : w {a, b} }.
Ans.

2. Find context-free grammars for the following languages (n 0, m 0, k 0).


(a) L = {an bm : n 6= m 1}.
(b) L = {w {a, b} : na (v) nb (v), where v is any prefix of w}.
(c) L = {an bm ck : n = m or m 6= k}.
Ans.
(a) L = {an bm : n m > m 1} {an bm : n m 2 < m 1}. A context-free grammar
for L is G = ({S, S1 , A, B, B1 }, {a, b}, S, P ) with the productions
S AS1 |S1 B,
S1 aS1 b|, A aA|,
S2 aS1 b|, B bbB1 , B1 bB1 |.

(b) L = {w {a, b} : na (w) = nb (w), na (v) nb (v), where v is any prefix of w} {w


{a, b} : na (w) > nb (w), na (v) nb (v), where v is any prefix of w}. A context-free
grammar for L is G = ({S, A}, {a, b}, S, P ) with the productions
S aSb|SS|A,
A aA|.

1-1
(c) L = {an bm ck : n = m} {an bm ck : m 6= k}. A context-free grammar for L is G =
({S, A, B, C, D, D1 , D2 , E, F }, {a, b, c}, S, P ) with the productions

S AB|CD,
A aAb|, B cB|,
C aC|, D ED1 |D1 F, D1 bD1 c|, E bE|b, F cF |c.

3. Show that L = {w {a, b, c} : |w| = 3na (w)} is a context-free languages.


Ans. A context-free grammar for L is G = ({S, F }, {a, b, c}, S, P ) with the productions

S aSF SF S|F SaSF S|F SF SaS|,


F b|c.

4. Show that the following language is context-free.

L = {uvwv R : u, v, w {a, b}+ , |u| = |w| = 2}.

Ans. A context-free grammar for L is G = ({S, A, B, C}, {a, b}, S, P ) with the productions

S AB,
A aa|ab|ba|bb,
B aBa|bBb|aAa|bAb.

5. Show a derivation tree for the string aabbbb with the grammar S AB|, A aB, B Sb.
Give a verbal description of the language generated by this grammar.
Ans. This grammar produces the strings of the form an b2n , n 0, i.e., it generates the
language L(G) = {an b2n : n 0}.

1-2
6. Define what one might mean by properly nested parenthesis structures involving two kinds of
parentheses, say () and []. Intuitively, properly nested strings in this situation are ([]), ([[]]),
and [()], but not ([)] or ((]]. Using your definition, give a context-free grammar for generating
all properly nested parentheses.
Ans. A context-free grammar for generating all properly nested parentheses is G = ({S}, {(, ), [, ]}, S, P )
with production
S [S]|(S)|.

7. Construct an unambiguous grammar equivalent to the grammar: S AB|aaB, A a|Aa,


B b.
Ans. This grammar produces the strings ab, aab, aaab, . . ., i.e., it generates G = ({S, A}, {a, b}, S, P )
with productions S Ab, A a|Aa.

8. Show that the grammar S aSbS|bSaS| is ambiguous.


Ans. The string w = abab has the following two derivation trees:

9. Eliminate all useless productions from the grammar S aS|AB, A bA, B AA. What
language does this grammar generate?
Ans. This grammar generates the language with nothing, i.e., L(G) = {}. A procedure of
eliminating all useless productions is as follows.

Substitute B: S aS|AAA, A bA.


Remove useless variable A (since A has no way to get a terminal string): S aS.
Remove useless variable S (since S has no way to get a terminal string).

10. Eliminate all -productions from S AaB|aaB, A , B bbA|.


Ans. A procedure of removing all -productions is as follows.

The -production A can be removed after adding new productions obtained by


substituting for A where it occurs on the right: S AaB|aaB|aB, B bbA||bb.
The -production B can be removed after adding new productions obtained by
substituting for B where it occurs on the right: S AaB|aaB|aB|Aa|aa|a, B
bbA|bb.

11. Eliminate all unit-productions, all useless productions, and all -productions from the gram-
mar S aA|aBB, A aaA|, B bB|bbC, C B.
Ans. A removing procedure is as follows.

1-3
Removing useless productions A aBB, B bB|bbC, and C B since they cannot
be transformed into terminal strings: S aA|aBB, A aaA|
Removing -productions to have S aA|a, A aaA|aa.
The result in the last step is the final answer since there is no any unit-production.

12. Eliminate all unit-productions from S a|aA|B|C, A aB|, B Aa, C cCD,


D ddd.
Ans. We first eliminate all -productions and obtain

S a|aA|B|C,
A aB,
B Aa|a,
C cCD,
D ddd.

The we eliminate all unit-productions and obtain

S a|aA|Aa|cCD,
A aB,
B Aa|a,
C cCD,
D ddd.

13. Transform the grammar with productions S abAB, A bAB|, B BAa|A| into
Chomsky normal form.
Ans. The transform procedure is as follows.

Removing -productions:
Removing A : S abAB|abB, A bAB|bB, B BAa|A||Ba.
Removing B : S abAB|abB|abA|ab, A bAB|bB|bA|b, B BAa|A|Ba|Aa|a.
Removing unit-production B A: S abAB|abB|abA|ab, A bAB|bB|bA|b, B
BAa|bAB|bB|bA|b|Ba|Aa|a.
Convert the grammar into Chomsky normal form:
Introduce new variables Sa for each a T :

S Sa Sb AB|Sa Sb B|Sa Sb A|Sa Sb ,


A Sb AB|Sb B|Sb A|Sb ,
B BASa |Sb AB|Sb B|Sb A|Sb |BSa |ASa |Sa ,
Sa a,
Sb b.

Introduce additional variables to get the first two productions into normal form and

1-4
we get the final result
S Sa U |Sa X|Sa Y |Sa Sb ,
A Sb V |Sb B|Sb A|Sb ,
B BZ|Sb V |Sb B|Sb A|Sb |BSa |ASa |Sa ,
U Sb V,
V AB,
X Sb B,
Y Sb A,
Z ASa ,
Sa a,
Sb b.
14. Use the CYK method to determine if the string w = aaabbbbab is in the language generated
by the grammar S aSb|b.
Ans. Firstly, we convert the grammar S aSb|b into Chomsky normal form:
S ASB|b, A a, B b.
S AX|b, X SB, A a, B b.
Then for w = w1 w2 w9 = aaabbbbab, we have
V11 = {A}, V22 = {A}, V33 = {A}, V44 = {B, S}, V55 = {B, S},
V66 = {B, S}, V77 = {B, S}, V88 = {A}, V99 = {B, S},
By using the equation
[
Vij = {A BC, with B Vik , C Vk+1,j },
k{i,i+1,...,j1}

we have
V12 = {A : A BC, B V11 , C V22 } = {},
V23 = {A : A BC, B V22 , C V33 } = {},
V34 = {A : A BC, B V33 , C V44 } = {},
V45 = {A : A BC, B V44 , C V55 } = {X},
V56 = {A : A BC, B V55 , C V66 } = {X},
V67 = {A : A BC, B V66 , C V77 } = {X},
V78 = {A : A BC, B V77 , C V88 } = {},
V89 = {A : A BC, B V88 , C V99 } = {};

V13 = {A : A BC, B V11 , C V23 } {A : A BC, B V12 , C V33 } = {},


V24 = {A : A BC, B V22 , C V34 } {A : A BC, B V23 , C V44 } = {},
V35 = {A : A BC, B V33 , C V45 } {A : A BC, B V34 , C V55 } = {},
V46 = {A : A BC, B V44 , C V56 } {A : A BC, B V45 , C V66 } = {S},
V57 = {A : A BC, B V55 , C V67 } {A : A BC, B V56 , C V77 } = {},
V68 = {A : A BC, B V66 , C V78 } {A : A BC, B V67 , C V88 } = {},
V79 = {A : A BC, B V77 , C V89 } {A : A BC, B V78 , C V99 } = {};

1-5
Continue this procedure, we have

V14 = {}, V25 = {}, V36 = {X}, V47 = {}, V58 = {}, V69 = {};
V15 = {}, V26 = {S}, V37 = {}, V48 = {}, V59 = {};
V16 = {}, V27 = {X}, V38 = {}, V49 = {};
V17 = {S}, V28 = {}, V39 = {};
V18 = {}, V29 = {};
V19 = {}.

Because V19 = {}, we conclude that w is not in the language generated by the grammar
S aSb|b by using the CYK algorithm.

1-6

You might also like