Ambiguous grammar $S\to ABA$, $A\to aA|\varepsilon$, $B\to bB|\varepsilon$

1.8k Views Asked by At

I need to show that: $$S \rightarrow ABA $$ $$A \rightarrow aA|\varepsilon$$ $$B \rightarrow bB|\varepsilon$$ is ambiguous and find an equivalent unambiguous grammar. I can't seem to see how this is ambiguous to begin with. Can someone explain how it is?

2

There are 2 best solutions below

1
On BEST ANSWER

There are (at least) two left derivations for $a$:

$S \to ABA \xrightarrow{A \to aA} aABA \xrightarrow{A \to \varepsilon} aBA \xrightarrow{B \to \varepsilon} aA \xrightarrow{A \to \varepsilon} a$

and

$S \to ABA \xrightarrow{A \to \varepsilon} BA \xrightarrow{B \to \varepsilon} A \xrightarrow{A \to aA} aA \xrightarrow{A \to \varepsilon} a$

1
On

It is ambiguous, because the string $a$ has more than one left derivation.

We have $$S\to ABA\to aA\epsilon\epsilon = aA\to a\epsilon = a,$$ but also $$S\to ABA\to \epsilon\epsilon aA = aA \to a\epsilon = a.$$