Eliminazione ricorsione sinistra diretta
Non mi è chiara una cosa. In tutti gli esempi che ho visto a lezione, la ricorsione sinistra era solo sul non terminale che la contiene, ovvero una cosa del tipo:
[tex]A → Aa | Ab | ab[/tex]
e fin qui tutto ok, applico il metodo "classico" e via. Però oggi mi sono imbattuto in qualcosa di diverso, ovvero una cosa del tipo
[tex]A → AAAd | Bx | Bcc | ADAaA[/tex]
[tex]B → aa | bb | cc | dd | aaB | BBcd[/tex]
le produzioni di A che contengono B a sinistra, come vanno trattate? anche questi casi rientrano nella ricorsione sinistra, oppure quel "diretta" indica il semplice fatto che essa si verifica solo quando il non terminale a sinistra è lo stesso che ha quella produzione?
[tex]A → Aa | Ab | ab[/tex]
e fin qui tutto ok, applico il metodo "classico" e via. Però oggi mi sono imbattuto in qualcosa di diverso, ovvero una cosa del tipo
[tex]A → AAAd | Bx | Bcc | ADAaA[/tex]
[tex]B → aa | bb | cc | dd | aaB | BBcd[/tex]
le produzioni di A che contengono B a sinistra, come vanno trattate? anche questi casi rientrano nella ricorsione sinistra, oppure quel "diretta" indica il semplice fatto che essa si verifica solo quando il non terminale a sinistra è lo stesso che ha quella produzione?
Risposte
"giozh":
[tex]A → AAAd | Bx | Bcc | ADAaA[/tex]
[tex]B → aa | bb | cc | dd | aaB | BBcd[/tex]
le produzioni di A che contengono B a sinistra, come vanno trattate? anche questi casi rientrano nella ricorsione sinistra, oppure quel "diretta" indica il semplice fatto che essa si verifica solo quando il non terminale a sinistra è lo stesso che ha quella produzione?
La ricorsione sinistra può essere diretta (o immediata) oppure indiretta (o generale), sempre di ricorsione sinistra si tratta.
Si ha ricorsione sinistra immediata in una produzione siffatta:
$A -> A\alpha$
dove $alpha$ è un qualunque elenco di terminali/non terminali.
Si ha ricorsione sinistra se ci sono due (o più produzioni)
$A->B\alpha$
$B->A\beta$
Nota che potresti avere cicli (e in quel caso il problema è un altro).
PS. Nel tuo esempio non c'è ricorsione a sinistra indiretta.
