61
 Th´ eor ie des langa ge s Expressions r´ eguli` eres Elise Bonzon http://web.mi.parisdescartes.fr/ bonzon/ [email protected] 1 / 31 Th´ eorie des langage s

04 Expr Regulieres

Embed Size (px)

DESCRIPTION

N

Citation preview

  • Theorie des langages

    Expressions regulie`res

    Elise Bonzonhttp://web.mi.parisdescartes.fr/vbonzon/

    [email protected]

    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