Professional Documents
Culture Documents
Context Free Grammar
Context Free Grammar
Context Free Grammar
Napoleon
is a great warrior
Derivation
<S> → <NP1> <VP> Rules
or
<NP1> → <PN> Productions
<PN> → Napoleon or
Production
<VP> → <VER> <ART> <ADV> < rules
NP2>
<VER> → is → - rewritten
as
<ART> → a - directly
derives
<ADV> → great
< NP2> → warrior
<S> <NP1> <VP>
<NP1><VER> <ART> <ADV> < NP2>
<NP1><VER> <ART> <ADV> warrior
<NP1><VER> <ART> great warrior
<NP1><VER> a great warrior
<NP1> is a great warrior
Napoleon is a great warrior
Rightmost Derivation
Derivation
• Non terminals - N
• Terminals – T
• Total alphabet - V = N T
*
, V *
are strings in V
is obtained from in one step
* is obtained from in zero or more steps
N T
Note:
Grammar (Examples)
G = ({S, A}, {a, b}, P, S), where
P: S → aA
A→b S
a A
L(G) = { ab}
Grammar
G = ({S}, {a, b}, P, S), where
P: S → aS
S S S S
S→b
a S a S
b a S
a S a S
b
a S
b
L(G) = { b, ab, a2b, a3b,. . . } b
L(G) = { anb / n ≥ 0 }
Grammar (Examples)
G= ({E}, {+, *, (, ), id }, P, E), where
P: E → E + E (rule 1)
E E
E → E * E (rule 2)
E
E → (E) (rule 3) i E + E E *E
E → id (rule 4) d i
i i i
Leftmost derivation d d d d
1 4 2 4 4
E E E id E id E * E id id * E id id * id
Rightmost derivation
1 2 4 4 4
E E E E E * E E E * id E id * id id id * id
Grammar
Let G = (N, T, P, S) be a grammar.
Then L(G) is called the language generated by G.
*
L(G) = { w T * / S w }
any
Type Recursive languages Unrestricted Turing computab
Recursively
0 grammars machines le
enumerable languages
function
Chomsky Hierarchy
Non-recursively
enumerable
Recursively-enumerable
Recursive
Context-sensitive
Context-free
Regular
Grammars and Languages
1) G= ({S}, {a}, P, S), where
P: S → aS (rule 1) S a
S → a (rule 2) S aS aa
S aS aaS aaa
L(G) = { an / n ≥ 1 }
2) G = ({S}, {a, b}, P, S), where
P: S → aS (rule 1) S b
S → b (rule 2) S
aS ab
S aS aaS aab
L(G) = { anb/ n ≥ 0 }
Grammars and Languages
3) G= ({S}, {a, b }, P, S), where
P: S → aSb (rule 1) S ab
S → ab (rule 2) S aSb
aabb
L(G) = { anbn / n ≥ 1 } S aSb aaSbb aaabbb
5) L(G) = { anbm / n ≥ 0, m ˃ n }
G= ({S, S1}, {a, b }, P, S), where
P: S → aSb / S1
S1 → bS1 / b
6) L(G) = { anbn cm / n, m ≥ 1 }
G= ({S, S1, S2}, {a, b, c }, P, S), where
P: S → S1S2
S1 → aS1b / ab
S2 → cS2 / c
7) L(G) = { anbn cm dm / n, m ≥ 1 }
G= ({S, S1, S2}, {a, b, c, d}, P, S), where
P: S → S1S2
S1 → aS1b / ab
8) L(G) = { anbm cm dn / n, m ≥ 1 }
G= ({S, S1}, {a, b, c, d}, P, S), where
P: S → aSd / aS1d
S1 → bS1c /bc
9) L(G) = { anbm / n, m ≥ 1, m ≠ n}
G= ({S, A, B, S1 }, {a, b}, P, S), where
P: S → AS1 / S1B
S1 → aS1b / ab
A → aA / a
B → bB / b
10) L(G) = { w / w =uav, u, v {a, b}*, ui ≠ vn-i+1 ,1≤ i ≤ |
u|, na(w) = nb(w) + 1 }
G= ({S}, {a, b}, P, S), where ababa , ababababa
P: S → aSb / bSa / a
For the grammar given below, find out the context free language. The grammar G = ({S}, {a, b}, S, P) with
the productions are;
• S → aSa, (Rule: 1)
S → bSb (Rule: 2)
S → ε (Rule: 3)
P: S → aaaS /
b) L ={ w / |w| mod 3 ˃ 0}
w a a2 a4 a5 a7 a8 a10 a11
|w| 1 2 4 5 7 8 10 11
P: S → a / aa
S → aaaS
c) L ={ w / |w| mod 3 ≠ |w| mod 2}
w a a 2 a3 a 4 a 5 a 6 a 7
|w| mod 3 0 1 2 0 1 2 0 1
|w| mod 2 0 1 0 1 0 1 0 1
P: S → a2
S → a3
S → a4
S → a5
S → a6 S
d) L ={ w / |w| mod 3 ≥ |w| mod 2}
w a a2 a3 a4 a5 a6 a7 a8 a9
|w| mod 3 0 1 2 0 1 2 0 1 2 0
|w| mod 2 0 1 0 1 0 1 0 1 0 1
L ={ , a ,a2 , a4 , a5, a6, a7 , a8 , a10 , a11 , a12 , a13, a14 , a16, a17 , a18 , a19 ,
a20 , . . . }
P: S → / S1
S→a
S → a2
S1 → a4 / a5 / a6 / a7 / a8
S 1 → a6 S 1