EPAL, la langue des palindromes pairs, est définie comme la langue générée par la grammaire sans contexte suivante sans ambiguïté:
EPAL est le «fléau» de nombreux algorithmes d'analyse: je n'ai pas encore rencontré d'algorithme d'analyse pour les CFG sans ambiguïté qui puisse analyser toute grammaire décrivant le langage. Il est souvent utilisé pour montrer qu'il existe des CFG sans ambiguïté qui ne peuvent pas être analysés par un analyseur particulier. Cela a inspiré ma question:
Existe-t-il un algorithme d'analyse qui accepte uniquement les CFG sans ambiguïté qui fonctionnent sur EPAL?
Bien sûr, on peut concevoir un analyseur ad hoc à deux passes pour la grammaire qui analyse la langue en temps linéaire. Je suis intéressé par l'analyse de méthodes qui n'ont pas été conçues spécifiquement avec EPAL à l'esprit.
la source
Réponses:
Considérez l'esquisse suivante d'une stratégie d'analyse à vos risques et périls.
Au lieu de lire l'entrée uniquement d'une extrémité, nous lisons des deux côtés et recherchons des règles de correspondance. Nous pouvons le faire dans un style de descente récursive; dans un appel à , trouvez le préfixe w et le suffixe v à l'entrée de telle sorte qu'il y ait une règle A → w B v , descendez à B ( ) sur le mot restant. S'il n'y a pas de règle de correspondance, rejetez le mot.A ( ) w v A → w B v B ( )
L'idée ne fonctionne pas du tout pour les grammaires non linéaires. Les grammaires linéaires mais ambiguës ne peuvent en général pas être analysées sans retour en arrière (pour les entrées négatives au moins).
la source