Comment montrer qu'une grammaire est ambiguë ?

Table des matières:

Comment montrer qu'une grammaire est ambiguë ?
Comment montrer qu'une grammaire est ambiguë ?
Anonim

"Si une grammaire produit au moins 2 arbres d'analyse ou dérivations distincts, alors la grammaire est ambiguë." Une autre règle: tout CFG (sans symboles inutiles) avec une récursivité à gauche et une récursivité à droite pour le même non-terminal est également ambigu.

Comment savoir si une grammaire est ambiguë ?

Une grammaire est dite ambiguë s'il existe plus d'une dérivation la plus à gauche ou plus d'une dérivation la plus à droite ou plus d'un arbre d'analyse pour la chaîne d'entrée donnée. Si la grammaire n'est pas ambiguë, alors elle est dite non ambiguë. Si la grammaire est ambiguë, elle n'est pas bonne pour la construction du compilateur.

Qu'est-ce qu'un exemple de grammaire ambigu ?

En informatique, une grammaire ambiguë est une grammaire sans contexte pour laquelle il existe une chaîne qui peut avoir plus d'une dérivation ou arbre d'analyse le plus à gauche, tandis qu'une grammaire non ambiguë est une grammaire sans contexte pour laquelle chaque chaîne valide a une dérivation ou un arbre d'analyse unique le plus à gauche.

Comment prouver qu'une grammaire sans contexte est ambiguë ?

3 réponses

  1. Tous les CFG sans symboles inutiles et avec récursivité gauche et droite pour le même symbole, est ambigu. En général: …
  2. Pour sonder l'ambiguïté, vous devez trouver 2 dérivations les plus à gauche pour la même chaîne (ou 2 dérivations les plus à droite, ou 2 arbres de dérivation).

Comment résoudre une grammaire ambiguë ?

Méthodes pour supprimer l'ambiguïté-

  1. En corrigeant la grammaire.
  2. En ajoutant des règles de regroupement.
  3. En utilisant la sémantique et en choisissant l'analyse qui a le plus de sens.
  4. En ajoutant les règles de priorité ou d'autres règles d'analyse contextuelle.

Conseillé: