Skip to main content
4 of 6
added 30 characters in body

Context Free Grammar - Starting with x Number of Chars and Ending with n != x Number of Chars

I am trying to create a context free grammar in Extended Backus–Naur form, which starts with a non-empty sequence of a's and is followed by a non-empty sequence of b's. With the special condition that the number of b's has to be unequal to the number of a's.

Thus, the grammar should generate words like:

  • aaaabbb
  • aaabb
  • abbb

So basically I could do something like this:

$\ G=(N,T,P,S)$

$\ N = \{S\}$

$\ T = \{a,b\}$

$\ P = \{S=aa(S|\epsilon)b\}$

But then the words would always have $\ 2n$ a's and n b's:

  • aab
  • aaaabb
  • aaaaaabbb

So how is it possible to make the number of a's uncorrelated of the number of b's, without being equal?

Update

This question was suggested as a duplicate. But it's not quite what I want. So I posted my own solution as an answer below.