Oppure

Loading
18/11/13 19:50
dmr
Ciao a tutti, stavo studiando il parser LR(1), e facendo alcune ricerche su internet ho notato che il linguaggio C++ non può essere analizzato dal parser LR(1) e quindi tanto meno dal parser LALR(1) a causa della sua ambiguità. La mia curiosità è questa: se la grammatica del C++ venisse riscritta in modo da non essere piu' ambigua, sarà poi possibile analizzare il C++ con il parser LR(1) oppure LALR(1) ???
Grazie in anticipo !!
Ultima modifica effettuata da dmr 18/11/13 19:59
aaa
19/11/13 0:26
pierotofy
Come no; ma a quel punto non si chiamerebbe C++.
Il mio blog: piero.dev
19/11/13 5:28
dmr
Postato originariamente da pierotofy:

Come no; ma a quel punto non si chiamerebbe C++.


Però comunque il linguaggio generato dalla grammatica è sempre quello, no?
aaa
19/11/13 14:11
pierotofy
Se definisci delle regole di precedenza allora e' possibile lasciare la grammatica cosi' come e'. Ma se si parla solamente di definire una grammatica non ambigua, non sarebbe possibile.

Esempio: 4 + 5 * 2 <-- ambiguo

Ma una regola di precedenza ci permette di dettare che l'espressione dev'essere eseguita come 4 + (5 * 2) invece di (4 + 5) * 2.
Il mio blog: piero.dev
20/11/13 15:32
dmr
Capito ok, grazie mille !!
aaa