Vous êtes sur la page 1sur 14

Dérivations à gauche et à droite

Équivalence entre grammaires régulières et langages réguliers

Chapitre 5 : Dérivations et Les grammaires régulières

1 Dérivations à gauche et à droite

2 Équivalence entre grammaires régulières et langages réguliers

1
Dérivations à gauche et à droite
Équivalence entre grammaires régulières et langages réguliers

Plan

1 Dérivations à gauche et à droite

2 Équivalence entre grammaires régulières et langages réguliers

2
Dérivations à gauche et à droite
Équivalence entre grammaires régulières et langages réguliers

Dérivations à gauche et à droite

Lorsqu’un mot est engendré par une grammaire, il peut l’être de


plusieurs façons. Par exemple dans la grammaire:

𝑆 → 𝐴𝑆𝑆
G
𝑆→b

Le mot abb peut être obtenu par les deux dérivations :

aSb Dérivation à gauche

S aSS abb

abS Dérivation à droite


3
Dérivations à gauche et à droite
Équivalence entre grammaires régulières et langages réguliers

Dérivations à gauche et à droite

Exemple :
G = {(a , + , * , (,)}, {E, T, F}, E , R }

R: ET E E + T TF

T T * F Fa F  (E)
 La dérivation à gauche du mot a + a est :

E  E + T  T+ T  F + T  a + T  a + F  a+ a

 La dérivation à droite du mot a + a est :

E  E + T  E + F  E + a  T + a  F + a  a+ a

4
Dérivations à gauche et à droite
Équivalence entre grammaires régulières et langages réguliers

Dérivations à gauche et à droite

Exercice :

Soit la grammaire G ayant pour axiome S et pour règles de


production :

R : S  aTb | c T cSS | S

Donner une dérivation à droite et à gauche du même mot :


accacbb

5
Dérivations à gauche et à droite
Équivalence entre grammaires régulières et langages réguliers

Équivalence entre grammaires régulières et langages réguliers

Définition

 Un langage est linéaire s’il peut être engendré par une grammaire
linéaire.

 Un langage est régulière si et seulement si il peut être engendré


par une grammaire linéaire gauche (ou droite).

6
Dérivations à gauche et à droite
Équivalence entre grammaires régulières et langages réguliers

Équivalence entre grammaires régulières et langages réguliers

Correspondances entre grammaire régulière et automate finis

Théorème: Pour chaque alphabet X, l’ensemble des langages


générés par toutes le grammaires régulières est égal à l’ensemble
des langages reconnus par tous les automate finis.

{L(G): G est une grammaire régulières sur X} = {L(M): M est un


automate fini sur X}

7
Dérivations à gauche et à droite
Équivalence entre grammaires régulières et langages réguliers

Équivalence entre grammaires régulières et langages réguliers

Correspondances entre grammaire régulière et automate finis

Variables de grammaire Les états de l’automate


Règles de production Transitions
Axiome S de Grammaire Etat initiale de l’automate

Exemple
On considère la grammaire G = ({S, A} , {a, b} , S ,R)

R : S  aA A  bA | ɛ

a
S A b

8
Dérivations à gauche et à droite
Équivalence entre grammaires régulières et langages réguliers

Équivalence entre grammaires régulières et langages réguliers

Correspondances entre grammaire régulière et automate finis

Exemple

G = ({X0, X1, X2} , {a, b} , X0 ,R)

R : X0  a X1

X1  a X2 | b X0 | ɛ

X2  a X0 | b X2

X0  a X1  a a X2  a a b X2  a a b a X0  a a b a a X1  a a b a a

9
Dérivations à gauche et à droite
Équivalence entre grammaires régulières et langages réguliers

Équivalence entre grammaires régulières et langages réguliers

Correspondances entre grammaire régulière et automate finis

Remarque

Il est possible d’éliminer les règles de la forme : S  a en les remplaçant par


: SaX
X ɛ
Où X est le nouveau symbole n’apparaissant pas dans la grammaire initiale.

Cette opération est un exemple simple de transformation d'une grammaire en


une autre grammaire qui lui est équivalente : le langage engendré reste
inchangé

10
Dérivations à gauche et à droite
Équivalence entre grammaires régulières et langages réguliers

Équivalence entre grammaires régulières et langages réguliers

Correspondances entre grammaire régulière et automate finis

Exemple :

S  aS | aaT | bb
T  a | bT | S | bS | ɛ

S  aS | aaT | bbF
T  aF | bT | S | bS | F
Fɛ

11
Dérivations à gauche et à droite
Équivalence entre grammaires régulières et langages réguliers

Équivalence entre grammaires régulières et langages réguliers

Correspondances entre grammaire régulière et automate finis

Exercice :
Soit l’automate suivant, trouver la grammaire correspondante G= (VT, VN , S ,R)

12
Dérivations à gauche et à droite
Équivalence entre grammaires régulières et langages réguliers

Équivalence entre grammaires régulières et langages réguliers

Correspondances entre grammaire régulière et automate finis

Exemple :
Soit G= ({a, b}, {S, A , B}, S ,R)
Avec R :

S aB | bA
A  a | aS S = a(b + bS) + b(a + aS)
B  b | bS = ab + abS + ba + baS
= (ab + ba)S +( ab +ba)
S = aB + bA = (ab + ba)*( ab +ba)
A = a + aS = (ab + ba)+
B = b + bS
13
Dérivations à gauche et à droite
Équivalence entre grammaires régulières et langages réguliers

Équivalence entre grammaires régulières et langages réguliers

Correspondances entre grammaire régulière et automate finis

Exercice :
Quel est le langage reconnu par la grammaire suivante ?

S aA | ɛ
A  aA | abB
B  bB | bC
C  cC | c

14

Vous aimerez peut-être aussi