Académique Documents
Professionnel Documents
Culture Documents
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
Th
eorie des langages
N
5 / 31
Expressions r
eguli`
eres
(Re)mise en contexte
Th
eorie des langages
N
5 / 31
Expressions r
eguli`
eres
(Re)mise en contexte
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
()
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
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
Th
eorie des langages
N
17 / 31
Expressions r
eguli`
eres
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
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
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
19 / 31
Expressions r
eguli`
eres
elimination d
etats
a
1
b
b
a
a
Th
eorie des langages
N
20 / 31
Expressions r
eguli`
eres
elimination d
etats
a
1
b
a
a
0
Th
eorie des langages
N
20 / 31
Expressions r
eguli`
eres
elimination d
etats
a
1
b
a
a
0
Th
eorie des langages
N
20 / 31
Expressions r
eguli`
eres
elimination d
etats
a
1
b
a
a
0
Th
eorie des langages
N
20 / 31
Expressions r
eguli`
eres
elimination d
etats
aa b
aa b
Th
eorie des langages
N
20 / 31
Expressions r
eguli`
eres
elimination d
etats
aa b
aa b
Th
eorie des langages
N
20 / 31
Expressions r
eguli`
eres
elimination d
etats
aa b
aa b
Th
eorie des langages
N
20 / 31
Expressions r
eguli`
eres
elimination d
etats
aa b
b aa b
bb aa b
Th
eorie des langages
N
20 / 31
Expressions r
eguli`
eres
elimination d
etats
aa b
b aa b
bb aa b
Th
eorie des langages
N
20 / 31
Expressions r
eguli`
eres
elimination d
etats
aa b + bb aa b
b aa b
Th
eorie des langages
N
20 / 31
Expressions r
eguli`
eres
elimination d
etats
aa b + bb aa b
b aa b
Th
eorie des langages
N
20 / 31
Expressions r
eguli`
eres
elimination d
etats
b aa b(aa b + bb aa b)
Th
eorie des langages
N
20 / 31
Expressions r
eguli`
eres
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
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
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
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
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
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
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
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
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
L2 = a = a .
6 a, Arden solution unique
L2 = aL2 +
Th
eorie des langages
N
23 / 31
Expressions r
eguli`
eres
Th
eorie des langages
N
24 / 31
Expressions r
eguli`
eres
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)
Th
eorie des langages
N
26 / 31
Expressions r
eguli`
eres
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
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
nest
pas
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.
31 / 31