Eliminate left recursion from the following grammar:

E → E + A | A
A → A B | B
B → B # | C
C → a | b

We will eliminate left recursion step-by-step from each non-terminal using the standard rule:

If a production has the form:
A → A α | β, then
Convert to:
A → β A'
A' → α A' | ε

Step 1: Eliminate Left Recursion from

E → E + A | A

This has direct left recursion.

Match the rule:

  • α = + A (left recursive part)
  • β = A (non-left recursive part)

Apply the rule:

E → A E’
E’ → + A E’ | ε

Step 2: Eliminate Left Recursion from

A → A B | B

This is also direct left recursion.

Match the rule:

  • α = B
  • β = B

Apply the rule:

A  → B A'
A' → B A' | ε

Step 3: Eliminate Left Recursion from

B → B # | C

Again, this is direct left recursion.

Match the rule:

  • α = #
  • β = C

Apply the rule:

B  → C B'
B' → # B' | ε

Step 4: C → a | b

No left recursion here. Keep as it is C → a | b

Final Grammar after Removing Left Recursion:

E → A E’
E’ → + A E’ | ε

A → B A’
A’ → B A’ | ε

B → C B’
B’ → # B’ | ε

C → a | b

Summary Table Format (Easy to remember):

Original RuleLeft Recursion Eliminated Form
E → E + A | AE → A E’
E’ → + A E’ | ε
A → A B | BA → B A’
A’ → B A’ | ε
B → B # | CB → C B’
B’ → # B’ | ε
C → a | b(No change) C → a | b

Leave a Reply

Your email address will not be published. Required fields are marked *