Chapter 3 - Context Free Language
Chapter 3 - Context Free Language
1
Context Free Language(CFL)
To overcome the problem in regular language. We
needed the solution is called context free language.
Context free language is generated by the context
free grammar. Regular grammar is simple but
context grammar is complex compared to the
regular grammar.
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
3
Cont.,
Derivation and Languages:
Generation of language using specific rules is called derivation.
•Rightmost Derivation
- It’s a derivation in which, rightmost non-
terminal is replaced first from the sentential form
6
Derivation Tree
Derivation tree is a graphical representation for the
derivation of the given production rules for the given
CFG. Its called parse tree.
Properties:
•Root node indicating start symbol
•Leaf nodes are terminals
•The interior nodes are non terminals
7
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
Cont.,
Leftmost Derivation Rightmost
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
r7
baaabbabbA r1 baaabbAbba r2
baaabbabba r3 baaabbabba
r3 9
Cont.,
10
Cont.,
Try yourself:
1.Consider the following production
S aB| bA
A a |aS |bAA
B b | bS | aBB
Find the leftmost derivation, rightmost derivation
and parse tree.
11
Parsing
Parsing is the process of analyzing a string of
symbols, either in natural or computer language.
12
Ambiguity
13
Cont.,
Example 4.4: The given CFG is G = (N, T, P, S)
where
N={E}P={EE+E
T = { id } EE*E
S={E} E id } Is the given grammar
ambiguous?
Now if the string is id * id + id then we can draw the
parse tree
15
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: 16
Cont.,
P= { S 11A | 11
A0 }
17
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.
19
Cont.,
Example 4.8: for the given CFG below remove the
production
S aSa
S bSb
S
Apply the rule 3 in the rule1 and rule2
S aSa aa
S bSb bb
So the final CFG is
S aSa
S bSb
S aa
S bb
20
Cont.,
Removing the Unit production:
Unit productions are the productions in which one non-
terminal gives another non-terminal only without terminal.
X Y and Y Z
Then you can minimize the rule like X Z
Example 4.9: 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
21
Cont.,
Example 4.10: 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
After removal of useless symbols
S A | 0C1
A 01 | 10
C
Again remove the unit production S A
S 01 | 10 | 0C1
A 01 | 10
C 22
Cont.,
Remove the production:
S 10 | 01
A 01 | 10
Again in the above grammar A is useless symbol, so
remove that also. The final CFG is
S 10 | 01
23