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++.
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.
20/11/13 15:32
dmr
Capito ok, grazie mille !!
aaa