Adloun

informatique (MP2I/MPI) · Chapitre 30 · Exercice de TD

Quel langage cette grammaire engendre-t-elle ?

Grammaires non contextuelles · niveau 2

Énoncé

Toujours avec et :

  • Lister les mots engendrés de longueur au plus .
  • Montrer que la longueur de tout mot engendré est congrue à modulo .
  • Décrire le langage en français.

Corrigé

1. Une énumération exhaustive de tous les mots sur jusqu'à la longueur , chacun soumis à un analyseur, donne quatre mots :

Aucun mot de longueur , , , , .

2. Par induction mutuelle sur les dérivations. Notons la longueur.

  • Si par la règle , alors .
  • Si par , alors avec et .
  • Si , alors avec , donc .

Donc . Le pas d'induction est le milieu : un bloc ajoute toujours un multiple de .

3. Le langage est celui des textes balisés : une suite de blocs, chaque bloc étant un contenu entre une balise ouvrante a et sa fermante b, le tout terminé par un c — et le contenu d'un bloc est lui-même un texte de ce genre. C'est exactement la structure d'un document XML ou html, avec c pour « fin de la liste » et a…b pour une paire de balises.

Pourquoi cette grammaire est l'exemple du programme. Elle exhibe l'imbrication non bornée — la seule chose qu'un automate fini ne sait pas faire — sur trois lettres et deux règles. Et l'intersection avec donne à un c près : c'est le langage du chapitre chap:automates, habillé.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre