Syntax error Explain the elimination of epsilon productions in CFG

Explain the elimination of epsilon productions in CFG



All grammars are not always optimized, which means the grammar may consist of some extra symbols (non-terminals) which increase the length of grammar.

So, we have to reduce the grammar by removing the useless symbols.

Properties

The properties to reduce grammar are explained below −

  • Each non-terminal and terminal of G appears in the derivation of some word in L.
  • There should not be any production as X->Y where X and Y are non-terminals.
  • If epsilon is not in language L then there need not be in the production X-> ε.

The diagram given below depicts the use of reduce grammar−

The productions of type S-> ε are called ε productions

These types of production can only be removed from the grammars that do not generate ε

Step 1

First find all null-able non terminals which derive.

Step 2

For each production A->a construct all productions A. where X is obtained from 'a' by removing 1 or more non-terminals from step 1.

Step 3

Now combine the result of step 2 with the original production and remove ε production.

Example

S->XYX

X->0X| ε

Y->1Y| ε

Explanation

While removing ε production we are deleting the rule X-> ε and Y-> ε

To preserve the meaning of CFG we are placing ε at right hand side wherever X and Y appear

S->XYX

If the first X at the right hand side is ε

S->YX

Similarly, if the last X at the right hand side is ε

S->XY

If Y= ε,

S->XX

If both Y and X are ε,

S->X

If both x are replaced,

S->Y

Now S->XY|YX|XX|X|Y

Now let us consider,

X->0X| ε

If we replace ε at right hand side for X then,

X->0X|0

Similarly Y->1Y|1

The CFG with removal of epsilon production as follows,

S->XY|YX|XX|X|Y

X->0X|0

Y->1Y|1

Updated on: 2021-06-16T12:38:15+05:30

11K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements