Chapter 04 - Context Free Language
Chapter 04 - Context Free Language
Chapter 04 - Context Free Language
Definition:
G = (N, T, P, S)
N Set of non terminals
T set of terminals
P Production rules: this rules are used to derive the
certain string
S starting state
Cont.,
Derivation and Languages:
Generation of language using specific rules is called derivation.
Example 4.1: Construct the CFG for the language having any
number of as over the set = { a }.
R.E = a* = {, a, aa, aaa, aaaa, .}
Production rules for the same:
S aS
rule 1
S
rule 2
Now if you want to derive the string aaa. Start with the start
symbol.
S
aS
aaS
aaaS
aaa
aaa
rule1
rule1
rule1
rule2
4
Cont.,
Example 4.2: Construct the CFG for the given
language
L = {an bn | n > 0 }
L = { ab, aabb, aaabbb, .} = { equal number of a and
b}
Production rule for the same:
S aSb rule1
S
rule2
Now if you want to derive the string aabb. You can
start the derivation from the start symbol
S
aSb rule1
aaSbb
rule1
aabb
rule1
aabb rule2
5
Derivation Tree
Cont.,
Example 4.3: Let G be the grammar
S aB | bA
A a | aS | bAA
B b | bS | aBB
For the string baaabbabba find leftmost, rightmost
derivation and Derivation tree
First write the production rules separately like below
S aB
rule1
S bA
rule2
Aa
rule3
A aS
rule4
A bAA
rule5
Bb
rule6
B bS
rule7
B aBB
rule8
8
Leftmost
Derivation
Derivation
S
S
bA r1
bA r2
baS r4
baS r4
baaB r1
baaB r1
baaaBB
r8
baaaBB
r8
baaabSB r7
baaaBbS
r7
baaabbAB r2
baaaBbbA
r2
baaabbaB r3
baaaBbba
r3
baaabbabS
r6
baaabSbba
baaabbabbA
r1
baaabbAbba
baaabbabba
r3
baaabbabba
Cont.,
Rightmost
r7
r2
r3
9
Cont.,
10
Parsing
11
Ambiguity
12
Cont.,
given CFG is G = (N, T, P, S)
Simplification of CFG
14
Cont.,
Removal of useless symbols:
remove the useless non-terminals from the production
rules. It will lead to reduce the length of the grammar.
Example 4.5: remove the useless symbols from the given
production rule:
P = {S A11B | 11A
S B | 11
A0
B BB }
In the above production rule: non-terminals S and A are having
some terminal in the rules. But B is not containing any terminal
so it will not terminate at the production so non-terminal B is
useless symbol, so remove the non-terminal B from the
production rules. Remove the rules from the production rule
which are containing the non-terminal B in the rule, so the rule1,
rule3 and rule6 are removed from the Production rule, so the
minimize CFG is:
15
Cont.,
P= { S 11A | 11
A0 }
Example 4.6: Simplify the given CFG
S AB | CA
B BC | AB
A a
C aB | b
In the above production rule: non-terminals A and C are having
some terminals. But non-terminal B is not containing any terminal,
so it will not terminate the derivation process. So remove the rules
which are containing the non-terminal B from the production rule.
S CA
AA
Cb
16
Cont.,
Elimination of production rule:
Remove the symbol from the grammar without
affecting the meaning of the grammar. Thus is not
necessary for the grammar.
Example 4.7: Remove the production from the
following CFG
S XYZ
X 0X |
Y 1Y |
To remove the production, delete the production rule and
to preserve the meaning of the CFG, placing the value in the
other production instead of the corresponding non-terminal.
Step1: remove the production
Remove the rules X and Y
17
Cont.,
Step2: To preserve the meaning of grammar:
Place the X to rule 1:
S XY XY
S YX YX
SY Y
Place the Y to rule 1:
S X X XX
Place the X and Y to rule 1: S X X
Place the X to rule 2:
X00
Place the Y to rule 4:
Y11
Collectively can write the CFG:
S XY | YX | XX | X |Y
X0
Y1
18
Cont.,
Removing the Unit production:
Unit productions are the productions in which one nonterminal gives another non-terminal only without terminal.
X Y and Y Z
Then you can minimize the rule like X Z
Example 4.8: Remove the unit productions from given CFG
S 0A | 1B | C
A 0S | 00
B1|A
C 01
In the above production rule: S C is unit production so in rule3
you can replace the C value by rule8.
S 0A | 1B | 01
A 0S | 00
B1|A
C 01
19
Cont.,
Example 4.9: Optimize the given CFG by reducing
the grammar
S A | 0C1
A B | 01 | 10
C | CD
B and D are useless symbols because B and D is
not available
S A is a unit production
C - production
S 01 | 01
A 01 | 10
C
20
End of Chapter - 04
21