"Si una gramàtica produeix almenys 2 arbres d'anàlisi o derivacions diferents, aleshores la gramàtica és ambigua." Una altra regla: tots els CFG (sense símbols inútils) amb recursivitat esquerra i recursivitat dreta per al mateix no terminal també són ambigus.
Com saps si una gramàtica és ambigua?
Es diu que una gramàtica és ambigua si existeix més d'una derivació a l'esquerra o més d'una derivació a la dreta o més d'un arbre d'anàlisi per a la cadena d'entrada donada. Si la gramàtica no és ambigua, s'anomena inequívoca. Si la gramàtica té ambigüitat, no és bo per a la construcció del compilador.
Què és un exemple de gramàtica ambigua?
En informàtica, una gramàtica ambigua és una gramàtica sense context per a la qual existeix una cadena que pot tenir més d'una derivació a l'esquerra o un arbre d'anàlisi, mentre que una gramàtica sense ambigüitats és una gramàtica sense context per a la qual cada cadena vàlida té una derivació o arbre d'anàlisi únic a l'esquerra.
Com es demostra que una gramàtica sense context és ambigua?
3 respostes
- Tots els CFG sense símbols inútils i amb recursivitat esquerra i dreta per al mateix símbol, són ambigus. En general: …
- Per investigar l'ambigüitat, heu de trobar 2 derivacions més a l'esquerra per a la mateixa cadena (o 2 derivacions a la dreta o 2 arbres de derivacions).
Com resoleu la gramàtica ambigua?
Mètodes per eliminar l'ambigüitat-
- En arreglar la gramàtica.
- Afegiu regles d'agrupació.
- Usant la semàntica i escollint l'anàlisi que tingui més sentit.
- Afegiu les regles de precedència o altres regles d'anàlisi sensibles al context.