Adloun

informatique (MP2I/MPI) · Chapitre 30 · Application directe du cours

Symboles inutiles

Grammaires non contextuelles · niveau 2

Énoncé

Soit la grammaire de symbole initial sur :

  • Quel est le langage engendré ?
  • Identifier les symboles productifs et les symboles accessibles.
  • Écrire la grammaire émondée.

Corrigé

1. . Un seul mot.

2. Deux notions, indépendantes, et qui se calculent chacune par un point fixe.

  • Productif : le symbole engendre au moins un mot de terminaux. On part des non-terminaux ayant une règle entièrement terminale, et l'on ajoute tant qu'on peut. Ici (par ) et (par ), puis (par ). n'est pas productif : sa seule règle ne termine jamais. Productifs .
  • Accessible : le symbole apparaît dans une forme dérivée du symbole initial. Parcours depuis : on atteint (par ) et (par ). n'est pas accessible. Accessibles .

est accessible mais stérile ; est fertile mais inatteignable. Les deux défauts sont bien distincts.

3. On supprime d'abord les non-productifs — et toutes les règles où ils figurent, donc disparaît aussi — puis les inaccessibles :

ImportantL'ordre des deux nettoyages n'est pas indifférent

Il faut supprimer les non-productifs d'abord, les inaccessibles ensuite. Sur

n'est pas productif, et tout est accessible.

  • Productifs puis accessibles : on retire , donc la règle , donc devient inaccessible et disparaît. Il reste : correct.
  • Accessibles puis productifs : rien n'est inaccessible, on ne retire donc que ; il reste et , où n'est plus accessible. La grammaire contient encore un symbole inutile.

Supprimer un symbole peut en rendre un autre inaccessible ; cela ne peut jamais rendre un symbole non productif. Le sens de l'implication fixe l'ordre.

Le parallèle avec l'émondage d'un automate est exact : « productif » est le co-accessible, « accessible » est l'accessible, et l'on parcourt dans les deux sens.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre