Skip to main content

Cfg Solved Examples 💯

: [ S \Rightarrow aSb \Rightarrow aaSbb \Rightarrow aaaSbbb \Rightarrow aaabbb ] 5. Example 4 – ( a^n b^m ) with ( n \le m \le 2n ) Language : ( a^n b^m \mid n \ge 0, m \ge n, m \le 2n )

S → aSbb → a(aSbb)bb → aa(ε)bbbb → aabbbb (wrong). So that’s 4 b’s, not 3.

That means m=3 not reachable for n=2 in this grammar? Correct — known property: this grammar gives m = n + k where k is number of times you used aSbb. For n=2, k can be 0 or 1 or 2 → m=2,3,4 possible. Yes, so m=3 possible: n=2,k=1 → S → aSbb → a(aεbb)bb? Let’s do stepwise: cfg solved examples

: [ S \Rightarrow aSa \Rightarrow aba ] 7. Example 6 – ( a^i b^j c^k ) with i+j = k Language : ( a^i b^j c^i+j \mid i,j \ge 0 )

Derivation for abba : [ S \Rightarrow aSbS \Rightarrow a\varepsilon bS \Rightarrow abS \Rightarrow abbSaS \Rightarrow abb\varepsilon a\varepsilon = abba ] Language : Valid arithmetic expressions with a, b, +, *, (, ) : [ S \Rightarrow aSb \Rightarrow aaSbb \Rightarrow

: [ S \to aSb \mid \varepsilon ]

So to get m=3,n=2: S ⇒ aSbb (add a, b,b) Now S ⇒ aSb (add a, b) Total: a(aSb)bb ⇒ a(aεb)bb = a a b b b = 2 a, 3 b. Works. That means m=3 not reachable for n=2 in this grammar

Check: ( S \Rightarrow aA \Rightarrow abS \Rightarrow ab\varepsilon = ab ) (length 2). Works. Language : All strings of ( and ) that are balanced.

: [ S \to aSbS \mid bSaS \mid \varepsilon ]