Vous êtes sur la page 1sur 3

Université Nice Sophia Antipolis L3 Info, L3 Math-MI

Automates & Langages 2017–2018

TD no 4

Grammaires régulières

Exercice 1) On se place sur l’alphabet binaire Σ = {0, 1}. Soit l’automate fini minimal A =
(Σ, Q, δ, q0 , F ) où Q = {q0 , q1 , q2 , q3 } et F = {q3 }. La fonction δ se déduit aisément du schéma
suivant :
0

q0 0 q2
0
1 0 1
q1 q3
1
1
Trouvez une grammaire régulière pour engendrer le langage L(A).

Exercice 2) Considérons la grammaire G suivante :


Grammaire G
Axiome = A
N = {A, B, C }
T = {0, 1}
P={ A→0A|1B }
B→0C|1A|ε
C→0B|1C
1. Transformez cette grammaire qui est régulière à droite en un automate fini A.
2. Décrivez en français le langage L(G) = L(A).

Exercice 3) Considérons la grammaire G suivante :


Grammaire G
Axiome = S
N = {S, X }
T = {0, 1}
P={ S →0X }
X→S1
X→ε

1
1. La grammaire G est-elle régulière ? Pourquoi ?
2. Quel est le langage L(G) engendré par cette grammaire ?
3. Ce langage est-il rationnel ?
4. Si oui, trouvez un automate fini reconnaissant L(G).

Exercice 4) Considérons les quatre grammaires suivantes :

G1 = ({S, A, B}, {0, 1}, P1 , S) G2 = ({S, A, B}, {0, 1}, P2 , S)


   
 S → ε|0A|B1   S → 1S|0A 
P1 = A → 1|S1 P2 = A → 1S|0B|0
B → 0|0S B → 0|1|0B|1B
   

G3 = ({S}, {0, 1}, P3 , S) G4 = ({S, A, B, C}, {0, 1}, P4 , S)


 

 S → AB 

A → ǫ|0
  
P3 = S → ε|0|01S|1S P4 =

 B → 10B|C 

C → ǫ|1
 

1. Pour chacune de ces grammaires, dites si elle est régulière ou pas.


2. Trouvez les langages engendrés par chacune de ces grammaires.
3. Parmi ces langages, lesquels sont rationnels ?
4. Trouvez une grammaire régulière pour chaque langage dès lors qu’il est rationnel.
5. Trouvez l’automate fini minimal reconnaissant chaque langage dès lors qu’il est rationnel.

Exercices complémentaires

Exercice 5) Considérez les grammaires G1 et G2 suivantes :


G1 = 
({A, B}, {0, 1}, P1
, A) ({C ′ , D}, {0, 1}, P2, 
G2 =  C)
A → 0B|1A C → 0C|1C|0D
P1 = P2 =
B → 0A|1B|ε D→ε

1. Quels sont les langages respectivement engendrés par G1 et par G2 ?


2. Ecrivez une grammaire pour engendrer le langage L(G1 ) ∪ L(G2 ).
3. Ecrivez une grammaire pour engendrer le langage L(G1 ) ∩ L(G2 ).
4. Ecrivez deux grammairew pour engendrer les langages L(G1 ) et L(G2 ).

2
Exercice 6) On se place sur l’alphabet binaire {0, 1}.
1. Trouvez l’automate fini minimal A reconnaissant le langage des mots qui terminent par le mo-
tif 00.
2. Déduire de l’automate A une grammaire régulière à droite G qui engendre les mots de L(A).
3. On construit la grammaire G′ en remplaçant dans G les productions de la forme A → a B par
de nouvelles productions de la forme A → B a. Quel est donc le langage engendré par L(G′ ) ?
On pourra raisonner sur les arbres de dérivation.
4. Donnez le principe de deux algorithmes permettant respectivement de passer d’une grammaire
régulière à gauche à un automate fini et vice-versa.
5. En déduire que tout langage est rationnel si et seulement si il est engendré par une grammaire
régulière à gauche.