Vous êtes sur la page 1sur 61

Th

eorie des langages

Expressions r
eguli`
eres
Elise Bonzon
http://web.mi.parisdescartes.fr/vbonzon/
elise.bonzon@parisdescartes.fr

Th
eorie des langages
N

1 / 31

Expressions r
eguli`
eres

Expressions r
eguli`
eres

Introduction
Definitions
Le theor`eme dArden
Automates et expressions reguli`eres
Caracterisation des langages reguliers
Au del`a des langages reguliers

Th
eorie des langages
N

2 / 31

Expressions r
eguli`
eres

Expressions r
eguli`
eres

Introduction
Definitions
Le theor`eme dArden
Automates et expressions reguli`eres
Caracterisation des langages reguliers
Au del`a des langages reguliers

Th
eorie des langages
N

3 / 31

Expressions r
eguli`
eres

(Re)mise en contexte
Un compilateur est un programme qui
prend en entree une donnee textuelle source (programme, donnee xml,
fichier de configuration, etc)
la reconnat (lanalyse) pour verifier sa correction
emet eventuellement un message derreur
le traduit dans un langage cible

programme source

Compilateur

programme cible

messages derreur

Th
eorie des langages
N

4 / 31

Expressions r
eguli`
eres

(Re)mise en contexte

Compiler : Definir rigoureusement et reconnatre algorithmiquement (pour


les langages source et cible) :
leur vocabulaire ou lexique : les mots autoris
es - analyse lexicale
leur syntaxe : la structure des phrases autoris
ees - analyse syntaxique
leur s
emantique : la signification des phrases autoris
ees - analyse
s
emantique

On se situe au niveau de lanalyse lexicale


Probl`eme : etant donne un langage, comment decrire tous les mots
acceptables? Comment decrire un langage?
Utiliser des expressions reguli`eres (pour certains types de langages)

Th
eorie des langages
N

5 / 31

Expressions r
eguli`
eres

(Re)mise en contexte

Compiler : Definir rigoureusement et reconnatre algorithmiquement (pour


les langages source et cible) :
leur vocabulaire ou lexique : les mots autoris
es - analyse lexicale
leur syntaxe : la structure des phrases autoris
ees - analyse syntaxique
leur s
emantique : la signification des phrases autoris
ees - analyse
s
emantique

On se situe au niveau de lanalyse lexicale


Probl`eme : etant donne un langage, comment decrire tous les mots
acceptables? Comment decrire un langage?
Utiliser des expressions reguli`eres (pour certains types de langages)

Th
eorie des langages
N

5 / 31

Expressions r
eguli`
eres

(Re)mise en contexte

Compiler : Definir rigoureusement et reconnatre algorithmiquement (pour


les langages source et cible) :
leur vocabulaire ou lexique : les mots autoris
es - analyse lexicale
leur syntaxe : la structure des phrases autoris
ees - analyse syntaxique
leur s
emantique : la signification des phrases autoris
ees - analyse
s
emantique

On se situe au niveau de lanalyse lexicale


Probl`eme : etant donne un langage, comment decrire tous les mots
acceptables? Comment decrire un langage?
Utiliser des expressions reguli`eres (pour certains types de langages)

Th
eorie des langages
N

5 / 31

Expressions r
eguli`
eres

Expressions r
eguli`
eres

Introduction
Definitions
Le theor`eme dArden
Automates et expressions reguli`eres
Caracterisation des langages reguliers
Au del`a des langages reguliers

Th
eorie des langages
N

6 / 31

Expressions r
eguli`
eres

Langages r
eguliers

Langages r
eguliers
Lensemble R des langages r
eguliers sur un alphabet est le plus petit
ensemble (qui contient le moins delements) des langages satisfaisant
les conditions :
1. R et {} R
2. a , {a} R
3. Si A, B R, alors A B R, A.B R et A R

Th
eorie des langages
N

7 / 31

Expressions r
eguli`
eres

Expressions r
eguli`
eres
Expressions r
eguli`
eres
Les expressions r
eguli`
eres sur un alphabet sont les r`egles formees
par les r`egles suivantes :
1. et  sont des expressions reguli`eres
2. a , a est une expression reguli`ere
3. Si et sont des expressions reguli`eres alors

( + )
(.)
sont des expressions reguli`eres

()

Th
eorie des langages
N

8 / 31

Expressions r
eguli`
eres

Expressions r
eguli`
eres
Expressions r
eguli`
eres
Les expressions r
eguli`
eres sur un alphabet sont les r`egles formees
par les r`egles suivantes :
1. et  sont des expressions reguli`eres
2. a , a est une expression reguli`ere
3. Si et sont des expressions reguli`eres alors

( + )
(.)
sont des expressions reguli`eres

()

Priorite dans lordre decroissant : *, ., +

Th
eorie des langages
N

8 / 31

Expressions r
eguli`
eres

Expressions r
eguli`
eres

Langage repr
esent
e par une expression r
eguli`
ere
Soit r une expression reguli`ere. L(r ) est le langage repr
esent
e par r .
1. L() = , L() = {}
2. a , L(a) = {a}
3. L(, ) = L() L() = L() + L()
4. L(.) = L().L()
5. L(() ) = (L())

Th
eorie des langages
N

9 / 31

Expressions r
eguli`
eres

Expressions r
eguli`
eres
Th
eor`
eme
Un langage est regulier si et seulement si il peut etre denote par une
expression reguli`ere.

Th
eorie des langages
N

10 / 31

Expressions r
eguli`
eres

Expressions r
eguli`
eres
Th
eor`
eme
Un langage est regulier si et seulement si il peut etre denote par une
expression reguli`ere.
Le langage L(M) engendre par lautomate M suivant est un langage
regulier.
a,b

a,b

L(M) = (a + b) a(a + b)

Th
eorie des langages
N

10 / 31

Expressions r
eguli`
eres

Expressions r
eguli`
eres

Egalit
e dexpressions r
eguli`
eres
Deux expressions reguli`eres sont
egales si elles representent le meme
langage.

Th
eorie des langages
N

11 / 31

Expressions r
eguli`
eres

Expressions r
eguli`
eres

Egalit
e dexpressions r
eguli`
eres
Deux expressions reguli`eres sont
egales si elles representent le meme
langage.
Exemple :
r = r +  car  r

Th
eorie des langages
N

11 / 31

Expressions r
eguli`
eres

Propri
et
es des expressions r
eguli`
eres
Soient r , s et t trois expressions reguli`eres sur le meme alphabet .
1. r + s = s + r
2. r + = + r = r
3. r + r = r
4. (r + s) + t = r + (s + t) = r + s + t
5. r . = .r = r
6. r . = .r =
7. (r .s).t = r .(s.t) = r .s.t
8. r .(s + t) = rs + rt

Th
eorie des langages
N

12 / 31

Expressions r
eguli`
eres

Propri
et
es des expressions r
eguli`
eres

Soient r , s et t trois expressions reguli`eres sur le meme alphabet .


9. r = (r ) = r r = ( + r ) = r (r + ) = (r + )r =  + rr =  + r r
10. (r + s) = (r s ) = (r s) r = (s r ) s = r (sr )
11. r (sr ) = (rs) r
12. (r s) =  + (r + s) s
13. (rs ) =  + r (r + s)
14. (r + ) (r + ) + s = sr
15. rr = r r = r +

Th
eorie des langages
N

13 / 31

Expressions r
eguli`
eres

Expressions r
eguli`
eres

Introduction
Definitions
Le theor`eme dArden
Automates et expressions reguli`eres
Caracterisation des langages reguliers
Au del`a des langages reguliers

Th
eorie des langages
N

14 / 31

Expressions r
eguli`
eres

Le th
eor`
eme dArden

Th
eor`
eme dArden
Une equation sur les langages de la forme X = AX + B, o`
u  6 A, a
une solution unique X = A B

Th
eorie des langages
N

15 / 31

Expressions r
eguli`
eres

Le th
eor`
eme dArden

Th
eor`
eme dArden
Une equation sur les langages de la forme X = AX + B, o`
u  6 A, a
une solution unique X = A B
Si  A, A B est une solution mais ce nest pas une solution unique.
(A B est inclus dans toutes les solutions.)

Th
eorie des langages
N

15 / 31

Expressions r
eguli`
eres

Le th
eor`
eme dArden

Th
eor`
eme dArden
Une equation sur les langages de la forme X = AX + B, o`
u  6 A, a
une solution unique X = A B
Si  A, A B est une solution mais ce nest pas une solution unique.
(A B est inclus dans toutes les solutions.)
Demonstration :
1. X = A B est solution : AX + B = A.A B + B = (A.A + )B = A B
2. A B est solution unique : si Y est solution, alors Y est de la forme A B.

Th
eorie des langages
N

15 / 31

Expressions r
eguli`
eres

Expressions r
eguli`
eres

Introduction
Definitions
Le theor`eme dArden
Automates et expressions reguli`eres
Caracterisation des langages reguliers
Au del`a des langages reguliers

Th
eorie des langages
N

16 / 31

Expressions r
eguli`
eres

Int
er
et du th
eor`
eme dArden

Grace au Theor`eme dArden, il est possible de resoudre un syst`eme


dequations et dobtenir une expression reguli`ere qui represente le langage reconnu par lautomate.

Th
eorie des langages
N

17 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :


le th
eor`
eme dArden

a,b

L0
L1

L2

b
q0

q1

q2

= aL0 + bL1
= aL0 + bL2
= aL2 + bL2 + 

Th
eorie des langages
N

18 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :


le th
eor`
eme dArden

a,b

L0
L1

L2

b
q0

q1

q2

= aL0 + bL1
= aL0 + bL2
= aL2 + bL2 + 

a
L0

(a + ba) bb(a + b)

Th
eorie des langages
N

18 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats
M
ethode d
elimination d
etat (algorithme BMC)
On cherche une expression reguli`ere denotant le langage reconnu par
un automate M. On proc`ede par suppression successive de transitions
et detats :
1. Ajouter `
a M deux nouveaux etats, notes et , et les transitions
(, , q0 ) pour q0 letat initial; et (qn , , ) pour qn F .
2. Iterer les reductions suivantes tant que possible :
sil existe deux transitions (qi , x, qj ) et (qi , y , qj ), les remplacer par la
transition (qi , x + y , qj )
supprimer un
etat q (autre que et ) et remplacer, pour tous les

etats p, r 6= q, les transitions (p, x, q), (q, y , q), (q, z, r ), par la


transition (p, xy z, r ).

Cet algorithme termine car on diminue le nombre de transitions et


detats, jusqu`a obtenir une seule transition (, e, ). e est alors une
expression reguli`ere pour le langage L(M).
Th
eorie des langages
N

19 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats
a

1
b
b

a
a

Th
eorie des langages
N

20 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats
a

1
b
a

a
0

Th
eorie des langages
N

20 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats
a

1
b
a

a
0

Th
eorie des langages
N

20 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats
a

1
b
a

a
0

Th
eorie des langages
N

20 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats
aa b

aa b

Th
eorie des langages
N

20 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats
aa b

aa b

Th
eorie des langages
N

20 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats
aa b

aa b

Th
eorie des langages
N

20 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats
aa b

b aa b

bb aa b

Th
eorie des langages
N

20 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats
aa b

b aa b

bb aa b

Th
eorie des langages
N

20 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats
aa b + bb aa b

b aa b

Th
eorie des langages
N

20 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats
aa b + bb aa b

b aa b

Th
eorie des langages
N

20 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats

b aa b(aa b + bb aa b)

Th
eorie des langages
N

20 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats

b aa b(aa b + bb aa b)

b aa b(aa b + bb aa b)

= b a+ b(a+ b + b+ a+ b)

R. 15. : rr = r +

Th
eorie des langages
N

21 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats

b aa b(aa b + bb aa b)

b aa b(aa b + bb aa b)

= b a+ b(a+ b + b+ a+ b)

R. 15. : rr = r +

= b a+ b(( + b+ )a+ b)

Th
eorie des langages
N

21 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats

b aa b(aa b + bb aa b)

b aa b(aa b + bb aa b)

= b a+ b(a+ b + b+ a+ b)

R. 15. : rr = r +

= b a+ b(( + b+ )a+ b)
= b a+ b(b a+ b)

Th
eorie des langages
N

21 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats

b aa b(aa b + bb aa b)

b aa b(aa b + bb aa b)

= b a+ b(a+ b + b+ a+ b)

= b a+ b(( + b+ )a+ b)
= b a+ b(b a+ b)
= (b a+ b) b a+ b

R. 15. : rr = r +

R. 15. : rr = r r

Th
eorie des langages
N

21 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats

b aa b(aa b + bb aa b)

b aa b(aa b + bb aa b)
=
=
=
=

= b a+ b(a+ b + b+ a+ b)

b a+ b(( + b+ )a+ b)
b a+ b(b a+ b)
(b a+ b) b a+ b
(b + a+ b) a+ b

R. 15. : rr = r +

R. 15. : rr = r r
R. 10. : (r s) r = (r + s)

Th
eorie des langages
N

21 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats

b aa b(aa b + bb aa b)

b aa b(aa b + bb aa b)
=
=
=
=
=

= b a+ b(a+ b + b+ a+ b)

b a+ b(( + b+ )a+ b)
b a+ b(b a+ b)
(b a+ b) b a+ b
(b + a+ b) a+ b
(a b) a+ b

R. 15. : rr = r +

R. 15. : rr = r r
R. 10. : (r s) r = (r + s)
r + s + r = s + r + r = r (s + + ) = s r

Th
eorie des langages
N

21 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats

b aa b(aa b + bb aa b)

b aa b(aa b + bb aa b)
=
=
=
=
=
=

= b a+ b(a+ b + b+ a+ b)

b a+ b(( + b+ )a+ b)
b a+ b(b a+ b)
(b a+ b) b a+ b
(b + a+ b) a+ b
(a b) a+ b
(a b) a ab

R. 15. : rr = r +

R. 15. : rr = r r
R. 10. : (r s) r = (r + s)
r + s + r = s + r + r = r (s + + ) = s r
R. 15. : r r = r +

Th
eorie des langages
N

21 / 31

Expressions r
eguli`
eres

Transformation dun automate en ER :

elimination d
etats

b aa b(aa b + bb aa b)

b aa b(aa b + bb aa b)
=
=
=
=
=
=
=

= b a+ b(a+ b + b+ a+ b)

b a+ b(( + b+ )a+ b)
b a+ b(b a+ b)
(b a+ b) b a+ b
(b + a+ b) a+ b
(a b) a+ b
(a b) a ab
(a + b) ab

R. 15. : rr = r +

R. 15. : rr = r r
R. 10. : (r s) r = (r + s)
r + s + r = s + r + r = r (s + + ) = s r
R. 15. : r r = r +
R. 10. : (r s) r = (r + s)
Th
eorie des langages
N

21 / 31

Expressions r
eguli`
eres

Transformation dune ER en automate

Th
eor`
eme
Pour chaque expression reguli`ere, il existe un automate fini qui reconnat cette expression

Th
eorie des langages
N

22 / 31

Expressions r
eguli`
eres

Transformation dune ER en automate :


le th
eor`
eme dArden
L = a b(a + b) + ba = a bL1 + bL2
L1 = (a + b) = (a + b) .
 6 (a + b), Arden solution unique
L1 = (a + b)L1 +  = aL1 + bL1 + 

L2 = a = a .
 6 a, Arden solution unique
L2 = aL2 + 

L = a bL1 + bL2 = (aa + )bL1 + bL2 = aa bL1 + bL1 + bL2


L = aL3 + bL1 + bL2
L3 = a bL1
 6 a, Arden solution unique
L3 = aL3 + bL1

Th
eorie des langages
N

23 / 31

Expressions r
eguli`
eres

Transformation dune ER en automate :


le th
eor`
eme dArden
On obtient
L = aL3 + bL1 + bL2
L1 = aL1 + bL1 + 
L2 = aL2 + 
L3 = aL3 + bL1

Th
eorie des langages
N

24 / 31

Expressions r
eguli`
eres

Transformation dune ER en automate :


le th
eor`
eme dArden
On obtient
L = aL3 + bL1 + bL2
L1 = aL1 + bL1 + 
L2 = aL2 + 
L3 = aL3 + bL1

a,b

a
a

Th
eorie des langages
N

24 / 31

Expressions r
eguli`
eres

Expressions r
eguli`
eres

Introduction
Definitions
Le theor`eme dArden
Automates et expressions reguli`eres
Caracterisation des langages reguliers
Au del`a des langages reguliers

Th
eorie des langages
N

25 / 31

Expressions r
eguli`
eres

Caract
erisation des langages r
eguliers
Les langages reguliers peuvent etre caracterises de 4 facons. En utilisant :
1. Les expressions reguli`ere
2. Les automates finis deterministes
3. Les automates finis non deterministes
4. Les grammaires reguli`eres (lineaires `
a droite)

Th
eorie des langages
N

26 / 31

Expressions r
eguli`
eres

Caract
erisation des langages r
eguliers
Les langages reguliers peuvent etre caracterises de 4 facons. En utilisant :
1. Les expressions reguli`ere
2. Les automates finis deterministes
3. Les automates finis non deterministes
4. Les grammaires reguli`eres (lineaires `
a droite)

Pour demontrer quun langage est regulier, il suffit donc de le decrire `a


laide de lune de ces caracterisaton.
Pour demonter des proprietes sur les langages reguliers, il est possible de
choisir la caracterisation la mieux adaptee.

Th
eorie des langages
N

26 / 31

Expressions r
eguli`
eres

Rappels sur les langages r


eguliers

Soient L, L1 et L2 trois langages reguliers. Les langages suivants sont


reguliers :
L1 .L2
L1 + L2
L
L
L1 L2
LR (miroir de L)

Th
eorie des langages
N

27 / 31

Expressions r
eguli`
eres

Expressions r
eguli`
eres

Introduction
Definitions
Le theor`eme dArden
Automates et expressions reguli`eres
Caracterisation des langages reguliers
Au del`a des langages reguliers

Th
eorie des langages
N

28 / 31

Expressions r
eguli`
eres

Observations de base
1. Tous les langages finis sont reguliers
2. Un langage non regulier comporte un nombre infini de mots
Attention! La r
eciproque nest pas vraie : est un langage infini et
r
egulier

3. Si un langage comporte un nombre infini de mots, il ny a pas de borne `


a
la taille des mots du langage
4. Tout langage regulier est accepte par un automate fini qui comporte un
nombre fini detats
5. Soit L un langage regulier infini, reconnu par un automate `
a m etats. Soit
w L tel que |w | m. Au cours de la reconnaissance de w par
lautomate, il faut necessairement passer au moins 2 fois par un meme
etat.

Th
eorie des langages
N

29 / 31

Expressions r
eguli`
eres

Pumping theorem
Pumping theorem (th
eor`
eme de pompage. th
eor`
eme du gonflement)
Soit L un langage regulier infini sur lalphabet .
Alors, il existe p 0 tel que w L tel que |w | p, il existe
x, u, y , u 6=  et |xu| p tels que w = xuy et n 0, xu n y L

Th
eorie des langages
N

30 / 31

Expressions r
eguli`
eres

Pumping theorem
Pumping theorem (th
eor`
eme de pompage. th
eor`
eme du gonflement)
Soit L un langage regulier infini sur lalphabet .
Alors, il existe p 0 tel que w L tel que |w | p, il existe
x, u, y , u 6=  et |xu| p tels que w = xuy et n 0, xu n y L
Autre formulation du th
eor`
eme de pompage
Soit L un langage regulier infini sur lalphabet , et soit w L tel que
|w | |Q|, o`
u Q est lensemble des etats dun automate deterministe
acceptant L.
Alors, x, u, y , avec u 6= , |xu| |Q|, et w = xuy .
On a alors k 0, xu k y L.

Th
eorie des langages
N

30 / 31

Expressions r
eguli`
eres

Pumping theorem
Pumping theorem (th
eor`
eme de pompage. th
eor`
eme du gonflement)
Soit L un langage regulier infini sur lalphabet .
Alors, il existe p 0 tel que w L tel que |w | p, il existe
x, u, y , u 6=  et |xu| p tels que w = xuy et n 0, xu n y L
Autre formulation du th
eor`
eme de pompage
Soit L un langage regulier infini sur lalphabet , et soit w L tel que
|w | |Q|, o`
u Q est lensemble des etats dun automate deterministe
acceptant L.
Alors, x, u, y , avec u 6= , |xu| |Q|, et w = xuy .
On a alors k 0, xu k y L.
On utilise ces theor`emes pour montrer quun langage nest pas regulier.
Th
eorie des langages
N

30 / 31

Expressions r
eguli`
eres

Montrer quun langage


r
egulier : exemple

nest

pas

Soit = {a, b}, L = {an bn | n 0}. Supposons L regulier.


Il existe donc p 0 tel que w L et |w | p, et il est possible de
decomposer w = xuy . On sait de plus que n 0, xu n y L.
Soit w = ap bp = xuy . On a bien |w | = 2p p. Il y a trois possibilites :
1. u a : w = |{z}
ar |{z}
as |{z}
at b p , avec r + s + t = p et s > 0.
x

On a donc n 0, xu n y L. Prenons n = 0. On a ar at bp 6 L.
Contradiction.
2. u b . Raisonnement identique.
as b t |{z}
b q , avec r + s = t + q = p.
3. u = as b t : w = |{z}
ar |{z}
x

On a donc n 0, xu n y L. Prenons n = 2. On a ar as b t as b t b q 6 L.
Contradiction.

Le theor`eme de gonflement nest pas verifie. Ce langage nest donc pas


un langage regulier.
Th
eorie des langages
N

31 / 31

Vous aimerez peut-être aussi