Fiche 04 :
Grammaire, grammaire r´eguli`ere
Licence 3 informatique 2020 / 2021
Exercice 1 : Grammaire et langage rationnel
Donner un exemple d’une grammaire non r´eguli`ere qui engendre un langage rationnel.
Exercice 2 : Automate et grammaire r´ eguli` ere (S. Julia)
Soit la grammaireG suivante :
— N ={A, B, C}
— T ={0,1}
— P ={A→0A|1B B →0C |1A | C→0B |1C}
— AxiomeA
Questions :
a) D´efinir l’automate fini reconnaissant le langageL(G) engendr´e par G.
b) Exprimer en langage fran¸cais courant le langage L(G).
Exercice 3 : Grammaire r´ eguli` ere ` a droite / ` a gauche (variation S. Julia)
a) Sur l’alphabet binaire Σ = {a, b}. D´efinir l’automate fini A reconnaissant les mots se terminant parbb.
b) D´efinir une grammaire r´eguli`ere `a droite Gdqui engendre le langageL(A).
c) Dessiner l’arbre de d´erivation d’un mot u de L(A) engendr´e par Gd.
d) D´efinir une grammaire r´eguli`ere `a gaucheGg qui engendre le langageL(A).
e) Dessiner l’arbre de d´erivation du u engendr´e par Gg.
f) Peut-on g´en´eraliser le passage de la grammaire `a droite `a la grammaire `a gauche ? Comment ?
Exercice 4 : Expression arithm´ etique
a) Ecrire une grammaire des expressions arithm´etiques correctes sur les entiers naturels ayant pour op´erations + et ∗, ainsi que la possibilit´e d’utiliser des parenth`eses.
b) Est-ce une grammaire r´eguli`ere ?
1
Exercice 5 : Union et intersection de langages (S. Julia)
Soient les grammairesG1 etG2 suivantes :
G1 = ({S, A},{0,1}, P1, S) et G2 = ({S, A},{0,1}, P2, S) avec
P1={S→0A |, A→0A |1A |} etP2 ={S →A0 |, A→A0|A1|}
a) Quels sont les langages L(G1) et L(G2) engendr´es respectivement parG1 etG2? b) D´efinir une grammaire pour engendrer le langageL(G1)∪L(G2).
c) D´efinir une grammaire pour engendrer le langageL(G1)∩L(G2).
2