CONTEXT FREE GRAMMAR
MODULE 3
MODULE – 3
MODULE III:
Context-Free Grammars(CFG): Introduction to Rewrite Systems and Grammars, CFGs and languages, designing
CFGs, simplifying CFGs, proving that a Grammar is correct, Derivation and Parse trees, Ambiguity, Normal
Forms.
Pushdown Automata (PDA):Definition of non-deterministic PDA, Deterministic and Non-deterministic PDAs,
Nondeterminism and Halting, alternative equivalent definitions of a PDA, alternatives that are not
equivalent to PDA.
Definition: Context-Free Grammar (CFG) has 4-tuple: G = (V, T, P, S)
Where,
V - A finite set of variables or non-terminals
T - A finite set of terminals (V and T do not intersect)
P - A finite set of productions, each of the form A –> α,
Where A is in V and α is in (V U T)*
Note: that α may be ε.
S - A starting non-terminal (S is in V)
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
• Example CFG:
S, SIGMA={0,1}
G = ({S}, {0, 1}, P, S)
P: S –> 0S1 or just simply S –> 0S1 | ε
S –> ε
L={01, 0011, 000111, 00001111, 0000011111,
}
S –> 0S1
0e1
01
S –> 0S1
0 0S1 1
00 e 1 1
0011
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
Example :
2. CFG to generate 0 or more a’s L{e, a, aa, aaaa………}
A –> Aa | a | ε
A => Aa
=> aa ; A->a
derivation
3. CFG to generate strings of a’s and b’s of any length L={e, aba, baba,………}
S –> ε |a|b|Sa|Sb
aba
S->Sa ; S->Sa
->Sb a ; S->Sb
-> aba ; S ->a
4. Grammar for L ={anbn |n>=1}
L ={ab,aabb,aaabbb…………}
P: S –> ab|aSb
V ={S} T={a,b} P:set of productions S:{S}
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
5. Grammar for L ={anbn |n>=0}
L ={ε , ab,aabb,aaabbb…………}
S –> ab|aSb | ε aabbbb
S->aSbb
6. Grammar for L ={anb2n |n>=0} L={e, abb, aabbbb, ……. } ->aabb bb ; S->abb
L ={ε , abb,aabbbb,aaabbbbbb…………}
S –> abb|aSbb | ε
7. Grammar for L ={anbn+1 |n>=0}
L ={b , abb,aabbb,aaabbbb…………}
S –> b|aSb
8 . Grammar for L ={anbn+2 |n>=0}
L ={bb , abbb,aabbbb,aaabbbbb…………}
anbn+2 = anbn b b
S –> Abb
A –> ε |aAb
abbb
S->Abb
->aAb bb ; A->aAb
->a e bbb ; A->e
abbb
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
9. Grammar for L ={ w : |w| mod 3 = 0} over Σ ={a}
L ={ε , aaa, aaaaaa…………} aaaa
S –> ε |Saaa S->Saaa
-> a aaa ;S->a
10. Grammar for L ={ w : |w| mod 3 > 0} over Σ ={a}
L ={a, aa, aaaa, aaaaa…………}
S –> a | aa|Saaa
aabbbbcc
11. Grammar for L ={a b c : m=n+k } over Σ ={a, b, c}
n m k
S->AB
->aAbB
L ={abbc, aabbbbcc, aaaacccccb,…………} ->aab bB A->ab
-> aabb bBc ; B->bBc
anbm ck = an bn+k ck = an bn bk ck -> aabbbbcc ; B->bc
S –> AB
A –> aAb | ab
B –> bBc | bc
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
13. Grammar for L ={WWR } over Σ ={a, b}
S –> aSa | bSb | a | b | ε
S –> aAc
L={abba, abbbba…….} a aAb c
aa aAb bc
14.Grammar to generate arithmetic expression { id } aaa e bbc
aaabbc
E -> E + E
E -> E – E
E -> E * E
abbbba
E -> E / E S ->aSa
E -> id | (E) a bSb a ; S->bSb
Generate: id + id*id : Left Most Derivation ab bSb ba ; S->bSb
E→E+E abb e bba ; S->e
E → id + E abbbba
E → id + E * E
E → id + id * E
E → id + id * id Id+id
Id*id-id/id
A+b-(a-d)
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
For some strings there exist more than one parse tree
Or more than one leftmost derivation or more than
one rightmost derivation
P:
E → E + E | E * E | E – E | E / E
E→ id
G=(V T P S) V={E} T={id,+,_,*,/} S =E
Example: id+id*id
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
Is the grammar ambiguous?
S -> aS | X
X -> aX | a
L={a, aa, aaa, aaaa}
Consider aaa
S -> aS S -> X
-> a X -> aX
-> aa X -> aaX
-> aa a -> aaa
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
Is the grammar ambiguous?
S -> aB | bA
A -> aS | bAA | a
B -> bS | aBB | b
Consider string : aabbab
Obtain string aaabbabbba by applying left most and right most derivations
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
Show that the grammar is ambiguous
S -> aSbS | bSaS | ε
Soln : derive aababb
S -> aSbS
aaSbSbS
aabSaS
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
Der1 --ibtibtibtaea
S->iCtSeS
-> ibtSeS ; C->b
-> ibt iCtS eS ; C->b
->ibtibt SeS ; S->iCtS
-> ibtibt iCtS eS ; C->b
->ibtibtibt SeS ; S->a
->ibtibtibt aeS ; S->a
->ibtibtibtaea
Der2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2
GEETHA MEGHARAJ, CSE, SKIT 18CS54
MODULE 2