Je comprends que les grammaires sans contexte peuvent être utilisées pour représenter des langues sans contexte, ce qui peut avoir des ambiguïtés. Nous avons également des formes normales comme la forme normale de Chomsky et Greibach . Je ne pouvais pas comprendre le besoin de cela.
Pourquoi sont-ils importants dans la théorie des langues? Tous les manuels auxquels j'ai fait référence parlent de ces formes normales mais ne disent rien de leur importance.
Réponses:
Il existe au moins deux utilisations pertinentes.
Simplicité des preuves
Il existe de nombreuses preuves concernant les grammaires hors contexte, notamment la réductibilité et l'équivalence avec les automates. Ce sont les plus simples, le plus restreint l'ensemble de grammaires auquel vous devez faire face. Par conséquent, les formulaires normaux peuvent y être utiles.
Active l'analyse
Bien que les PDA puissent être utilisés pour analyser des mots avec n'importe quelle grammaire, cela est souvent gênant. Les formulaires normaux peuvent nous donner plus de structure avec laquelle travailler, résultant en des algorithmes d'analyse plus faciles.
À titre d'exemple concret, l'algorithme CYK utilise la forme normale de Chomsky. La forme normale de Greibach, en revanche, permet une analyse de descente récursive; même si le retour en arrière peut être nécessaire, la complexité de l'espace est linéaire.
la source
La forme normale de Chomsky permet à un algorithme de temps polynomial de décider si une chaîne peut être générée par une grammaire. L'algorithme est assez lisse si vous connaissez la programmation dynamique ...
Je sais que les index semblent assez fous. Mais en gros, voici ce qui se passe.
sub
la source
la source