Upload
sahbi-sk
View
231
Download
0
Embed Size (px)
DESCRIPTION
N
Citation preview
Theorie des langages
Expressions regulie`res
Elise Bonzonhttp://web.mi.parisdescartes.fr/vbonzon/
1 / 31Theorie des langages
N
Expressions regulie`res
Expressions regulie`res
IntroductionDefinitionsLe theore`me dArdenAutomates et expressions regulie`resCaracterisation des langages reguliersAu dela` des langages reguliers
2 / 31Theorie des langages
N
Expressions regulie`res
Expressions regulie`res
IntroductionDefinitionsLe theore`me dArdenAutomates et expressions regulie`resCaracterisation des langages reguliersAu dela` des langages reguliers
3 / 31Theorie des langages
N
Expressions regulie`res
(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
4 / 31Theorie des langages
N
Expressions regulie`res
(Re)mise en contexte
Compiler : Definir rigoureusement et reconnatre algorithmiquement (pourles langages source et cible) :
leur vocabulaire ou lexique : les mots autorises - analyse lexicaleleur syntaxe : la structure des phrases autorisees - analyse syntaxiqueleur semantique : la signification des phrases autorisees - analysesemantique
On se situe au niveau de lanalyse lexicale
Proble`me : etant donne un langage, comment decrire tous les motsacceptables? Comment decrire un langage?
Utiliser des expressions regulie`res (pour certains types de langages)
5 / 31Theorie des langages
N
Expressions regulie`res
(Re)mise en contexte
Compiler : Definir rigoureusement et reconnatre algorithmiquement (pourles langages source et cible) :
leur vocabulaire ou lexique : les mots autorises - analyse lexicaleleur syntaxe : la structure des phrases autorisees - analyse syntaxiqueleur semantique : la signification des phrases autorisees - analysesemantique
On se situe au niveau de lanalyse lexicale
Proble`me : etant donne un langage, comment decrire tous les motsacceptables? Comment decrire un langage?
Utiliser des expressions regulie`res (pour certains types de langages)
5 / 31Theorie des langages
N
Expressions regulie`res
(Re)mise en contexte
Compiler : Definir rigoureusement et reconnatre algorithmiquement (pourles langages source et cible) :
leur vocabulaire ou lexique : les mots autorises - analyse lexicaleleur syntaxe : la structure des phrases autorisees - analyse syntaxiqueleur semantique : la signification des phrases autorisees - analysesemantique
On se situe au niveau de lanalyse lexicale
Proble`me : etant donne un langage, comment decrire tous les motsacceptables? Comment decrire un langage?
Utiliser des expressions regulie`res (pour certains types de langages)
5 / 31Theorie des langages
N
Expressions regulie`res
Expressions regulie`res
IntroductionDefinitionsLe theore`me dArdenAutomates et expressions regulie`resCaracterisation des langages reguliersAu dela` des langages reguliers
6 / 31Theorie des langages
N
Expressions regulie`res
Langages reguliers
Langages reguliers
Lensemble R des langages reguliers sur un alphabet est le plus petitensemble (qui contient le moins delements) des langages satisfaisantles conditions :
1. R et {} R2. a , {a} R3. Si A,B R, alors A B R, A.B R et A R
7 / 31Theorie des langages
N
Expressions regulie`res
Expressions regulie`res
Expressions regulie`res
Les expressions regulie`res sur un alphabet sont les re`gles formeespar les re`gles suivantes :
1. et sont des expressions regulie`res2. a , a est une expression regulie`re3. Si et sont des expressions regulie`res alors
( + )(.)()
sont des expressions regulie`res
Priorite dans lordre decroissant : *, ., +
8 / 31Theorie des langages
N
Expressions regulie`res
Expressions regulie`res
Expressions regulie`res
Les expressions regulie`res sur un alphabet sont les re`gles formeespar les re`gles suivantes :
1. et sont des expressions regulie`res2. a , a est une expression regulie`re3. Si et sont des expressions regulie`res alors
( + )(.)()
sont des expressions regulie`resPriorite dans lordre decroissant : *, ., +
8 / 31Theorie des langages
N
Expressions regulie`res
Expressions regulie`res
Langage represente par une expression regulie`re
Soit r une expression regulie`re. L(r) est le langage represente par r .
1. L() = , L() = {}2. a , L(a) = {a}3. L(, ) = L() L() = L() + L()4. L(.) = L().L()5. L(()) = (L())
9 / 31Theorie des langages
N
Expressions regulie`res
Expressions regulie`res
Theore`me
Un langage est regulier si et seulement si il peut etre denote par uneexpression regulie`re.
Le langage L(M) engendre par lautomate M suivant est un langageregulier.
0 1a
a,b a,b
L(M) = (a + b)a(a + b)
10 / 31Theorie des langages
N
Expressions regulie`res
Expressions regulie`res
Theore`me
Un langage est regulier si et seulement si il peut etre denote par uneexpression regulie`re.
Le langage L(M) engendre par lautomate M suivant est un langageregulier.
0 1a
a,b a,b
L(M) = (a + b)a(a + b)
10 / 31Theorie des langages
N
Expressions regulie`res
Expressions regulie`res
Egalite dexpressions regulie`res
Deux expressions regulie`res sont egales si elles representent le memelangage.
Exemple :r = r + car r
11 / 31Theorie des langages
N
Expressions regulie`res
Expressions regulie`res
Egalite dexpressions regulie`res
Deux expressions regulie`res sont egales si elles representent le memelangage.
Exemple :r = r + car r
11 / 31Theorie des langages
N
Expressions regulie`res
Proprietes des expressions regulie`res
Soient r , s et t trois expressions regulie`res sur le meme alphabet .
1. r + s = s + r
2. r + = + r = r3. 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
12 / 31Theorie des langages
N
Expressions regulie`res
Proprietes des expressions regulie`res
Soient r , s et t trois expressions regulie`res sur le meme alphabet .
9. r = (r) = rr = (+ r) = r(r + ) = (r + )r = + rr = + rr
10. (r + s) = (rs) = (rs)r = (sr)s = r(sr)
11. r(sr) = (rs)r
12. (rs) = + (r + s)s
13. (rs) = + r(r + s)
14. (r + )(r + ) + s = sr
15. rr = rr = r+
13 / 31Theorie des langages
N
Expressions regulie`res
Expressions regulie`res
IntroductionDefinitionsLe theore`me dArdenAutomates et expressions regulie`resCaracterisation des langages reguliersAu dela` des langages reguliers
14 / 31Theorie des langages
N
Expressions regulie`res
Le theore`me dArden
Theore`me dArden
Une equation sur les langages de la forme X = AX + B, ou` 6 A, aune solution unique X = AB
Si A, AB est une solution mais ce nest pas une solution unique.(AB est inclus dans toutes les solutions.)Demonstration :
1. X = AB est solution : AX + B = A.AB + B = (A.A + )B = AB
2. AB est solution unique : si Y est solution, alors Y est de la forme AB.
15 / 31Theorie des langages
N
Expressions regulie`res
Le theore`me dArden
Theore`me dArden
Une equation sur les langages de la forme X = AX + B, ou` 6 A, aune solution unique X = AB
Si A, AB est une solution mais ce nest pas une solution unique.(AB est inclus dans toutes les solutions.)
Demonstration :
1. X = AB est solution : AX + B = A.AB + B = (A.A + )B = AB
2. AB est solution unique : si Y est solution, alors Y est de la forme AB.
15 / 31Theorie des langages
N
Expressions regulie`res
Le theore`me dArden
Theore`me dArden
Une equation sur les langages de la forme X = AX + B, ou` 6 A, aune solution unique X = AB
Si A, AB est une solution mais ce nest pas une solution unique.(AB est inclus dans toutes les solutions.)Demonstration :
1. X = AB est solution : AX + B = A.AB + B = (A.A + )B = AB
2. AB est solution unique : si Y est solution, alors Y est de la forme AB.
15 / 31Theorie des langages
N
Expressions regulie`res
Expressions regulie`res
IntroductionDefinitionsLe theore`me dArdenAutomates et expressions regulie`resCaracterisation des langages reguliersAu dela` des langages reguliers
16 / 31Theorie des langages
N
Expressions regulie`res
Interet du theore`me dArden
Grace au Theore`me dArden, il est possible de resoudre un syste`medequations et dobtenir une expression regulie`re qui represente le lan-gage reconnu par lautomate.
17 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :le theore`me dArden
q0 q1 q2
b
a
a
b
a,b L0 = aL0 + bL1L1 = aL0 + bL2L2 = aL2 + bL2 +
18 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :le theore`me dArden
q0 q1 q2
b
a
a
b
a,b L0 = aL0 + bL1L1 = aL0 + bL2L2 = aL2 + bL2 +
L0 = (a + ba)bb(a + b)
18 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
Methode delimination detat (algorithme BMC)
On cherche une expression regulie`re denotant le langage reconnu parun automate M. On proce`de par suppression successive de transitionset 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 latransition (qi , x + y , qj )supprimer un etat q (autre que et ) et remplacer, pour tous lesetats p, r 6= q, les transitions (p, x , q), (q, y , q), (q, z, r), par latransition (p, xyz, r).
Cet algorithme termine car on diminue le nombre de transitions etdetats, jusqua` obtenir une seule transition (, e, ). e est alors uneexpression regulie`re pour le langage L(M).
19 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
0
1
2
ab
b
a
a
b
20 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
0
1
2
ab
b
a
a
b
20 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
0
1
2
ab
b
a
a
b
20 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
0
1
2
ab
b
a
a
b
20 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
0 2
aabb aab
b
20 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
0 2
aabb aab
b
20 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
0 2
aabb aab
b
20 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
2
aab
bbaab
baab
20 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
2
aab
bbaab
baab
20 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
2
aab + bbaab
baab
20 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
2
aab + bbaab
baab
20 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
baab(aab + bbaab)
20 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
baab(aab + bbaab)
baab(aab + bbaab) = ba+b(a+b + b+a+b) R. 15. : rr = r+
21 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
baab(aab + bbaab)
baab(aab + bbaab) = ba+b(a+b + b+a+b) R. 15. : rr = r+
= ba+b((+ b+)a+b)
21 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
baab(aab + bbaab)
baab(aab + bbaab) = ba+b(a+b + b+a+b) R. 15. : rr = r+
= ba+b((+ b+)a+b)
= ba+b(ba+b)
21 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
baab(aab + bbaab)
baab(aab + bbaab) = ba+b(a+b + b+a+b) R. 15. : rr = r+
= ba+b((+ b+)a+b)
= ba+b(ba+b)
= (ba+b)ba+b R. 15. : rr = rr
21 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
baab(aab + bbaab)
baab(aab + bbaab) = ba+b(a+b + b+a+b) R. 15. : rr = r+
= ba+b((+ b+)a+b)
= ba+b(ba+b)
= (ba+b)ba+b R. 15. : rr = rr= (b + a+b)a+b R. 10. : (rs)r = (r + s)
21 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
baab(aab + bbaab)
baab(aab + bbaab) = ba+b(a+b + b+a+b) R. 15. : rr = r+
= ba+b((+ b+)a+b)
= ba+b(ba+b)
= (ba+b)ba+b R. 15. : rr = rr= (b + a+b)a+b R. 10. : (rs)r = (r + s)
= (ab)a+b r + s+r = s+r + r = r(s+ + ) = sr
21 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
baab(aab + bbaab)
baab(aab + bbaab) = ba+b(a+b + b+a+b) R. 15. : rr = r+
= ba+b((+ b+)a+b)
= ba+b(ba+b)
= (ba+b)ba+b R. 15. : rr = rr= (b + a+b)a+b R. 10. : (rs)r = (r + s)
= (ab)a+b r + s+r = s+r + r = r(s+ + ) = sr= (ab)aab R. 15. : rr = r+
21 / 31Theorie des langages
N
Expressions regulie`res
Transformation dun automate en ER :elimination detats
baab(aab + bbaab)
baab(aab + bbaab) = ba+b(a+b + b+a+b) R. 15. : rr = r+
= ba+b((+ b+)a+b)
= ba+b(ba+b)
= (ba+b)ba+b R. 15. : rr = rr= (b + a+b)a+b R. 10. : (rs)r = (r + s)
= (ab)a+b r + s+r = s+r + r = r(s+ + ) = sr= (ab)aab R. 15. : rr = r+
= (a + b)ab R. 10. : (rs)r = (r + s)
21 / 31Theorie des langages
N
Expressions regulie`res
Transformation dune ER en automate
Theore`me
Pour chaque expression regulie`re, il existe un automate fini qui recon-nat cette expression
22 / 31Theorie des langages
N
Expressions regulie`res
Transformation dune ER en automate :le theore`me dArden
L = ab(a + b) + ba = abL1 + bL2L1 = (a + b)
= (a + b).
6 (a + b), Arden solution uniqueL1 = (a + b)L1 + = aL1 + bL1 +
L2 = a = a.
6 a, Arden solution uniqueL2 = aL2 +
L = abL1 + bL2 = (aa + )bL1 + bL2 = aabL1 + bL1 + bL2
L = aL3 + bL1 + bL2
L3 = abL1
6 a, Arden solution uniqueL3 = aL3 + bL1
23 / 31Theorie des langages
N
Expressions regulie`res
Transformation dune ER en automate :le theore`me dArden
On obtient
L = aL3 + bL1 + bL2
L1 = aL1 + bL1 +
L2 = aL2 +
L3 = aL3 + bL1
0 2
3 1
a
b
b
a
ba a,b
24 / 31Theorie des langages
N
Expressions regulie`res
Transformation dune ER en automate :le theore`me dArden
On obtient
L = aL3 + bL1 + bL2
L1 = aL1 + bL1 +
L2 = aL2 +
L3 = aL3 + bL1
0 2
3 1
a
b
b
a
ba a,b
24 / 31Theorie des langages
N
Expressions regulie`res
Expressions regulie`res
IntroductionDefinitionsLe theore`me dArdenAutomates et expressions regulie`resCaracterisation des langages reguliersAu dela` des langages reguliers
25 / 31Theorie des langages
N
Expressions regulie`res
Caracterisation des langages reguliers
Les langages reguliers peuvent etre caracterises de 4 facons. En utilisant :
1. Les expressions regulie`re
2. Les automates finis deterministes
3. Les automates finis non deterministes
4. Les grammaires regulie`res (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 dechoisir la caracterisation la mieux adaptee.
26 / 31Theorie des langages
N
Expressions regulie`res
Caracterisation des langages reguliers
Les langages reguliers peuvent etre caracterises de 4 facons. En utilisant :
1. Les expressions regulie`re
2. Les automates finis deterministes
3. Les automates finis non deterministes
4. Les grammaires regulie`res (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 dechoisir la caracterisation la mieux adaptee.
26 / 31Theorie des langages
N
Expressions regulie`res
Rappels sur les langages reguliers
Soient L, L1 et L2 trois langages reguliers. Les langages suivants sontreguliers :
L1.L2
L1 + L2
L
L
L1 L2LR (miroir de L)
27 / 31Theorie des langages
N
Expressions regulie`res
Expressions regulie`res
IntroductionDefinitionsLe theore`me dArdenAutomates et expressions regulie`resCaracterisation des langages reguliersAu dela` des langages reguliers
28 / 31Theorie des langages
N
Expressions regulie`res
Observations de base
1. Tous les langages finis sont reguliers
2. Un langage non regulier comporte un nombre infini de mots
Attention! La reciproque nest pas vraie : est un langage infini etregulier
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 unnombre fini detats
5. Soit L un langage regulier infini, reconnu par un automate a` m etats. Soitw L tel que |w | m. Au cours de la reconnaissance de w parlautomate, il faut necessairement passer au moins 2 fois par un memeetat.
29 / 31Theorie des langages
N
Expressions regulie`res
Pumping theorem
Pumping theorem (theore`me de pompage. theore`me du gonfle-ment)
Soit L un langage regulier infini sur lalphabet .Alors, il existe p 0 tel que w L tel que |w | p, il existex , u, y , u 6= et |xu| p tels que w = xuy et n 0, xuny L
Autre formulation du theore`me de pompage
Soit L un langage regulier infini sur lalphabet , et soit w L tel que|w | |Q|, ou` Q est lensemble des etats dun automate deterministeacceptant L.Alors, x , u, y , avec u 6= , |xu| |Q|, et w = xuy .On a alors k 0, xuky L.
On utilise ces theore`mes pour montrer quun langage nest pas regulier.
30 / 31Theorie des langages
N
Expressions regulie`res
Pumping theorem
Pumping theorem (theore`me de pompage. theore`me du gonfle-ment)
Soit L un langage regulier infini sur lalphabet .Alors, il existe p 0 tel que w L tel que |w | p, il existex , u, y , u 6= et |xu| p tels que w = xuy et n 0, xuny L
Autre formulation du theore`me de pompage
Soit L un langage regulier infini sur lalphabet , et soit w L tel que|w | |Q|, ou` Q est lensemble des etats dun automate deterministeacceptant L.Alors, x , u, y , avec u 6= , |xu| |Q|, et w = xuy .On a alors k 0, xuky L.
On utilise ces theore`mes pour montrer quun langage nest pas regulier.
30 / 31Theorie des langages
N
Expressions regulie`res
Pumping theorem
Pumping theorem (theore`me de pompage. theore`me du gonfle-ment)
Soit L un langage regulier infini sur lalphabet .Alors, il existe p 0 tel que w L tel que |w | p, il existex , u, y , u 6= et |xu| p tels que w = xuy et n 0, xuny L
Autre formulation du theore`me de pompage
Soit L un langage regulier infini sur lalphabet , et soit w L tel que|w | |Q|, ou` Q est lensemble des etats dun automate deterministeacceptant L.Alors, x , u, y , avec u 6= , |xu| |Q|, et w = xuy .On a alors k 0, xuky L.
On utilise ces theore`mes pour montrer quun langage nest pas regulier.
30 / 31Theorie des langages
N
Expressions regulie`res
Montrer quun langage nest pasregulier : exemple
Soit = {a, b}, L = {anbn| n 0}. Supposons L regulier.Il existe donc p 0 tel que w L et |w | p, et il est possible dedecomposer w = xuy . On sait de plus que n 0, xuny L.Soit w = apbp = xuy . On a bien |w | = 2p p. Il y a trois possibilites :
1. u a : w = arx
asu
atbpy
, avec r + s + t = p et s > 0.
On a donc n 0, xuny L. Prenons n = 0. On a aratbp 6 L.Contradiction.
2. u b. Raisonnement identique.3. u = asbt : w = ar
x
asbtu
bqy
, avec r + s = t + q = p.
On a donc n 0, xuny L. Prenons n = 2. On a arasbtasbtbq 6 L.Contradiction.
Le theore`me de gonflement nest pas verifie. Ce langage nest donc pasun langage regulier.
31 / 31Theorie des langages
N
Expressions rguliresIntroductionDfinitionsLe thorme d'ArdenAutomates et expressions rguliresCaractrisation des langages rguliersAu del des langages rguliers