"Om en grammatik producerar minst 2 distinkta analysträd eller härledningar, är grammatiken tvetydig." En annan regel: alla CFG (utan värdelösa symboler) med vänsterrekursivitet och högerrekursivitet för samma icke-terminal är också tvetydiga.
Hur vet du om en grammatik är tvetydig?
En grammatik sägs vara tvetydig om det finns mer än en härledning längst till vänster eller mer än en härledning längst till höger eller mer än ett analysträd för den givna inmatningssträngen. Om grammatiken inte är tvetydig, kallas den entydig. Om grammatiken har tvetydighet är den inte bra för kompilatorkonstruktion.
Vad är en tvetydig grammatik, ge exempel?
Inom datavetenskap är en tvetydig grammatik en kontextfri grammatik för vilken det finns en sträng som kan ha mer än en avledning längst till vänster eller analysträd, medan en entydig grammatik är en kontextfri grammatik där varje giltig sträng har en unik härledning längst till vänster eller analysträd.
Hur bevisar man att en sammanhangsfri grammatik är tvetydig?
3 svar
- Alla CFG utan värdelösa symboler och med vänster- och högerrekursion för samma symbol är tvetydiga. I allmänhet: …
- För att undersöka tvetydighet måste du hitta 2 härledningar längst till vänster för samma sträng (eller 2 härledningar längst till höger eller 2 härledningsträd).
Hur löser du tvetydig grammatik?
Metoder för att ta bort tvetydigheter-
- Genom att fixa grammatiken.
- Genom att lägga till grupperingsregler.
- Genom att använda semantik och välja den analys som är mest meningsfull.
- Genom att lägga till prioritetsreglerna eller andra sammanhangskänsliga tolkningsregler.