Perché non usare la ricorsione destra per evitare la ricorsione sinistra?
-
04-11-2019 - |
Domanda
Sto leggendo le grammatiche rappresentative del libro, dove ho incontrato la seguente grammatica:
$$ e destrorrow e + t | T $$ $$ t destrorrow t * f | F $$ $$ f destrorrow (e) | id $$
La grammatica sopra è a sinistra, il che è cattivo. Quindi, al fine di eliminare la ricorsione di sinistra, l'hanno cambiata in quanto segue:
$$ e destrowarrow te '$$ $$ e' destrowarrow +te ' | ; Epsilon $$ $$ f Rightarrow (e) | id $$
Ma perché preoccuparsi così tanto? Perché non semplicemente usare una giusta ricorsione, come la seguente:
$$ E Rightarrow t + e | T $$ $$ t destrorrow f * t | F $$ $$ f destrorrow (e) | id $$
- Quindi sono confuso sul fatto che la grammatica ricorsiva giusta a cui ho pensato sia uguale alla grammatica originale o no?
- In caso contrario, qual è la differenza?
- Se sono uguali, perché non scriviamo tutte le grammatiche come ricorsione giusta?
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange