Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Théorie des langages
Introduction
Elise Bonzonhttp://web.mi.parisdescartes.fr/∽bonzon/[email protected]
2012-2013
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 1 / 8
Introduction
Organisation du cours
Cours : Amphi Fourier, lundi 11h30-13h
TDs :Groupe(s) Horaire SalleGPA Lundi 16h30-18h30 Cordier FGPB Lundi 14h-16h Cordier D
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 2 / 8
Introduction
Contrôle des connaissances
Contrôle continu CC :Contrôle continu CC : épreuve écrite de 1h30Examen E : épreuve écrite de 1h30
Note session 1 = max(E ; (E + CC) / 2)
Note session 2 =Si CC � 10 alors max(E ; (E + CC) / 2)Sinon E
Avec E = note de l’examen de la session concernée
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 3 / 8
Introduction
Motivations
Concept de langage formelCréé par les linguistes pour décrire les langages naturels
→ Effectuer des traductions automatiques
Noam CHOMSKY: modèle mathématique pour les grammaires1958: langage ALGOL décrit à l’aide d’une grammaire “Hors-Contexte”
Pourquoi étudier les langages formels?Conception de langages : syntaxe, grammaireAnalyse
lexicale (déterminer les entités syntaxiques)syntaxicale (vérifier la syntaxe)
Compilation : traductionGénérateurs d’analyseurs lexicauxMéta-compilateurs : compilateurs de compilateurs, ou générateur decompilateurs
⇒ Nécessaire pour l’étude des langages de programmation
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 4 / 8
Introduction
Un compilateur, c’est quoi?
Un compilateur est un programme qui
prend en entrée une donnée textuelle source (programme, donnée xml,fichier de configuration, etc)
la reconnaît (l’analyse) pour vérifier sa correction
émet éventuellement un message d’erreur
le traduit dans un langage cible
programme source Compilateur programme cible
messages d’erreur
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 5 / 8
Introduction
Outils pour la compilation
Correction :Entrée invalide détectée ?Sortie conforme aux attentes ?
⇒ Outil de prédilection = théorie des langage
Efficacité :Faut-il attennnnnnndre le résultat de la compilation ?
⇒ Outil de prédilection = algorithmique
Bonne conception du logiciel :Logiciel facile à modifier/étendre ?
⇒ Outil de prédilection = génie logiciel
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 6 / 8
Introduction
A quoi sert la théorie des langages en compilation?
Permet de définir rigoureusement et reconnaître algorithmiquement (pour leslangages source et cible) :
leur vocabulaire ou lexique : les mots autorisés⇒ analyse lexicale⇒ automates à nombre fini d’états, expressions régulières
leur syntaxe : la structure des phrases autorisées⇒ analyse syntaxique⇒ automates à pile, grammaires algébriques
leur sémantique : la signification des phrases autorisées⇒ analyse sémantique⇒ grammaires attribuées
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 7 / 8
Introduction
Plan du cours
1. Alphabets et langages
2. Grammaires
3. Automates finis
4. Expressions régulières
5. Grammaires Hors-Contexte
6. Automates à pile
7. Analyse lexicale
8. Analyse syntaxique
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 8 / 8
Alphabets et langages
Alphabets et langages
AlphabetsOpérations sur les motsMonoïdeLangages
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 2 / 29
Alphabets et langages Alphabets
Alphabets et langages
AlphabetsOpérations sur les motsMonoïdeLangages
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 3 / 29
Alphabets et langages Alphabets
Alphabet
Alphabet
Un alphabet est un ensemble fini de symboles.
Exemples :
A = {0,1}
Σ= {a,b,c}
Θ= {if , then,else,a,b}
F = {→,←,↑,↓}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 4 / 29
Alphabets et langages Alphabets
Mot
Mot
Un mot sur l’alphabet X est une séquence finie et ordonnée, éventuellementvide, d’éléments de l’alphabet.C’est une concaténation de lettres.
Par exemple, abbac et ba sont deux mots de l’alphabet {a,b,c}.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 5 / 29
Alphabets et langages Alphabets
Mot
Mot
Un mot sur l’alphabet X est une séquence finie et ordonnée, éventuellementvide, d’éléments de l’alphabet.C’est une concaténation de lettres.
Par exemple, abbac et ba sont deux mots de l’alphabet {a,b,c}.
Mot vide
Le mot vide , noté ε, correspond à la suite de symboles vide.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 5 / 29
Alphabets et langages Alphabets
Longueur d’un mot
Longueur d’un mot
La longueur d’un mot w est le nombre de symboles constituant ce mot. On lanote |w |.Le mot vide est de longueur 0.
Par exemple, |abbac|= 5, |ba|= 2 et |ε|= 0.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 6 / 29
Alphabets et langages Alphabets
Longueur d’un mot
Longueur d’un mot
La longueur d’un mot w est le nombre de symboles constituant ce mot. On lanote |w |.Le mot vide est de longueur 0.
Par exemple, |abbac|= 5, |ba|= 2 et |ε|= 0.
Ensemble de mots
L’ensemble de mots sur un alphabet X est noté X ∗ (fermeture transitive).
Par exemple, si X = {a,b,c},X ∗ = {ε,a,b,c,aa,ab,ac,ba,bb,bc,ca,cb,cc,aaa,aab, ...}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 6 / 29
Alphabets et langages Alphabets
Notations
Soit w ∈ X ∗
|w | est la longueur de w
X est l’alphabet
x est une lettre de X
|w |x est le nombre d’occurences de x dans w .
Exemple, avec X = {a,b}
|abb|a = 1
|abb|b = 2
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 7 / 29
Alphabets et langages Opérations sur les mots
Alphabets et langages
AlphabetsOpérations sur les motsMonoïdeLangages
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 8 / 29
Alphabets et langages Opérations sur les mots
Concaténation (produit)
Concaténation (produit)
Soit un alphabet X et w1,w2 ∈ X ∗ tels que
w1 = x1x2x3 . . .xn ∀i ∈ {1, . . . ,n},xi ∈ Xw2 = y1y2y3 . . .yp ∀i ∈ {1, . . . ,p},yi ∈ X
}
Concaténation de lettres
Concaténation de mots :
w1.w2 = x1x2x3 . . .xny1y2y3 . . .yp
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 9 / 29
Alphabets et langages Opérations sur les mots
Concaténation (produit)
Propriétés
Le produit est associatif
∀w1,w2,w3 ∈ X ∗, w1.(w2.w3) = (w1.w2).w3
= w1.w2.w3
ε est l’élément neutre du produit
∀w ∈ X ∗, ε.w = w .ε = w
∀w ,z ∈ X ∗, |w .z|= |w |+ |z|
Le produit n’est pas commutatif
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 10 / 29
Alphabets et langages Opérations sur les mots
Puissance
Puissance
Soit un alphabet X et w ∈ X ∗.
wn =
{
ε si n = 0w .wn−1 si n > 0
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 11 / 29
Alphabets et langages Opérations sur les mots
Puissance
Puissance
Soit un alphabet X et w ∈ X ∗.
wn =
{
ε si n = 0w .wn−1 si n > 0
Par exemple, soit X = {a,b} et w = abb
w0 = εw1 = abb
w2 = w .w = abbabb
w3 = w .w2 = abbabbabb
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 11 / 29
Alphabets et langages Opérations sur les mots
Egalité
Egalité de deux mots
Deux mots sont égaux s’ils sont de même longueur et s’ils ont des lettresidentiques de positionnements identiques.Soit un alphabet X et w1,w2 ∈ X ∗ tels que
w1 = x1x2x3 . . .xn ∀i ∈ {1, . . . ,n},xi ∈ Xw2 = y1y2y3 . . .yp ∀i ∈ {1, . . . ,p},yi ∈ X
On a w1 = w2 si et seulement si p = n et ∀i ∈ [1,n], xi = yi .
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 12 / 29
Alphabets et langages Opérations sur les mots
Préfixe et suffixe
Préfixe, suffixe
Soit un alphabet X et w ,u ∈ X ∗.u est un préfixe de w si et seulement si ∃v ∈ X ∗ tel que w = u.v
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 13 / 29
Alphabets et langages Opérations sur les mots
Préfixe et suffixe
Préfixe, suffixe
Soit un alphabet X et w ,u ∈ X ∗.u est un préfixe de w si et seulement si ∃v ∈ X ∗ tel que w = u.vu est un suffixe de w si et seulement si ∃v ∈ X ∗ tel que w = v .u
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 13 / 29
Alphabets et langages Opérations sur les mots
Préfixe et suffixe
Préfixe, suffixe
Soit un alphabet X et w ,u ∈ X ∗.u est un préfixe de w si et seulement si ∃v ∈ X ∗ tel que w = u.vu est un suffixe de w si et seulement si ∃v ∈ X ∗ tel que w = v .u
Soit X = {a,b}, w = babb
Les préfixes de w sont ε, b, ba, bab, babb
Les suffixes de w sont ε, b, bb, abb, babb
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 13 / 29
Alphabets et langages Opérations sur les mots
Préfixe et suffixe propres
Préfixe et suffixe propres
Soit un alphabet X et w ,u ∈ X ∗.u est un préfixe propre de w si et seulement si u est un préfixe de w et u estdifférent de w .u est un suffixe propre de w si et seulement si u est un suffixe de w et u estdifférent de w .
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 14 / 29
Alphabets et langages Opérations sur les mots
Préfixe et suffixe propres
Préfixe et suffixe propres
Soit un alphabet X et w ,u ∈ X ∗.u est un préfixe propre de w si et seulement si u est un préfixe de w et u estdifférent de w .u est un suffixe propre de w si et seulement si u est un suffixe de w et u estdifférent de w .
Soit X = {a,b}, w = babb
Les préfixes propres de w sont ε, b, ba, bab
Les suffixes propres de w sont ε, b, bb, abb
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 14 / 29
Alphabets et langages Opérations sur les mots
Miroir d’un mot
Miroir d’un mot
Soit un alphabet X et w ∈ X ∗ tel que w = x1x2x3 . . .xn, avec ∀i ∈ {1, . . . ,n},xi ∈ X .Le miroir de w , noté w , est défini par
w = xnxn−1 . . .x2x1
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 15 / 29
Alphabets et langages Opérations sur les mots
Miroir d’un mot
Miroir d’un mot
Soit un alphabet X et w ∈ X ∗ tel que w = x1x2x3 . . .xn, avec ∀i ∈ {1, . . . ,n},xi ∈ X .Le miroir de w , noté w , est défini par
w = xnxn−1 . . .x2x1
Définition récursive :
w =
{
w si w = εu.a si w = a.u,avec a ∈ X
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 15 / 29
Alphabets et langages Monoïde
Alphabets et langages
AlphabetsOpérations sur les motsMonoïdeLangages
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 16 / 29
Alphabets et langages Monoïde
Monoïde
Monoïde
Un ensemble muni d’une opération interne associative et possédant unélément neutre est un monoïde , noté M = 〈E , .〉.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 17 / 29
Alphabets et langages Monoïde
Monoïde
Monoïde
Un ensemble muni d’une opération interne associative et possédant unélément neutre est un monoïde , noté M = 〈E , .〉.
Exemples :
〈IN,+〉
〈IN,∗〉
〈X ∗, .〉 : l’ensemble des mots sur l’alphabet X muni de l’opération deproduit est un monoïde.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 17 / 29
Alphabets et langages Monoïde
Sous-monoïde
Sous-monoïde
Soit M = 〈E , .〉 un monoïde. M ′ est un sous-monoïde de M si M ′ = 〈E ′, .〉,avec E ′ ⊆ E , est un monoïde pour la même loi de composition interne et lemême élément neutre.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 29
Alphabets et langages Monoïde
Sous-monoïde
Sous-monoïde
Soit M = 〈E , .〉 un monoïde. M ′ est un sous-monoïde de M si M ′ = 〈E ′, .〉,avec E ′ ⊆ E , est un monoïde pour la même loi de composition interne et lemême élément neutre.
Pour montrer que M ′ est un sous-monoïde de M, il suffit de montrer que
1. l’élément neutre de M appartient à M ′
2. la loi de composition interne est stable pour E ′ : ∀x ,y ∈ E ′, x .y ∈ E ′
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 29
Alphabets et langages Monoïde
Monoïde libre
Ensemble de générateurs
Soit M = 〈E , .〉 un monoïde. Un ensemble de générateurs de M est un sousensemble E1, avec E1 ⊂ E , tel que tout élément de E sauf l’élément neutre estexprimable à l’aide d’une composition de E1.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 19 / 29
Alphabets et langages Monoïde
Monoïde libre
Ensemble de générateurs
Soit M = 〈E , .〉 un monoïde. Un ensemble de générateurs de M est un sousensemble E1, avec E1 ⊂ E , tel que tout élément de E sauf l’élément neutre estexprimable à l’aide d’une composition de E1.
Exemple :
{1} est un générateur de 〈IN,+〉→ Tout entier peut être exprimé comme une somme de 1
L’ensemble des nombres premiers est un générateur de 〈IN,∗〉→ Tout entier peut être exprimé comme un produit de nombre premiers
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 19 / 29
Alphabets et langages Monoïde
Monoïde libre
Ensemble de générateurs indépendants
Soit M = 〈E , .〉 un monoïde. Un ensemble de générateurs indépendants deM est un ensemble de générateurs tels que tout élément de E sauf l’élémentneutre est exprimable d’une et d’une seule façon sous forme d’unecomposition de générateurs.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 29
Alphabets et langages Monoïde
Monoïde libre
Ensemble de générateurs indépendants
Soit M = 〈E , .〉 un monoïde. Un ensemble de générateurs indépendants deM est un ensemble de générateurs tels que tout élément de E sauf l’élémentneutre est exprimable d’une et d’une seule façon sous forme d’unecomposition de générateurs.
Exemple :
{1} est un générateur indépendant de 〈IN,+〉→ Tout entier peut être exprimé d’une et d’une seule façon comme une
somme de 1
L’ensemble des nombres premiers n’est pas un générateur indépendantde 〈IN,∗〉→ Tout entier peut être exprimé comme un produit de nombre premiers, mais
il y a plusieurs décompositions possibles. Par exemple,12 = 2∗3∗2 = 2∗2∗3.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 29
Alphabets et langages Monoïde
Monoïde libre
Monoïde libre
Un monoïde possédant un ensemble de générateurs indépendants X sera ditlibre et sera noté X ∗.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 21 / 29
Alphabets et langages Monoïde
Monoïde libre
Monoïde libre
Un monoïde possédant un ensemble de générateurs indépendants X sera ditlibre et sera noté X ∗.
Soit X un alphabet. Le monoïde 〈X ∗, .〉 est un monoïde libre.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 21 / 29
Alphabets et langages Langages
Alphabets et langages
AlphabetsOpérations sur les motsMonoïdeLangages
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 22 / 29
Alphabets et langages Langages
Langage
Langage
Un langage sur un alphabet X est une partie de X ∗. C’est donc un ensemblede mots.
L⊂ X ∗ où L ∈ P (X ∗)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 29
Alphabets et langages Langages
Langage
Langage
Un langage sur un alphabet X est une partie de X ∗. C’est donc un ensemblede mots.
L⊂ X ∗ où L ∈ P (X ∗)
Soit X = {a,b} un alphabet.
/0 est un langage
{ε} est un langage
{a,ba,bba} est un langage
{w ∈ X ∗|w = an,n ∈ IN} est un langage
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 29
Alphabets et langages Langages
Opérations sur les langages
Union : A,B ⊆ X ∗, A∪B = {w ∈ X ∗|w ∈ A ou w ∈ B}AssociativeCommutativeElément neutre : ensemble vide /0Notée + dans la théorie des langages
Intersection : A,B ⊆ X ∗, A∩B = {w ∈ X ∗|w ∈ A et w ∈ B}AssociativeCommutativeElément neutre X∗
Différence : A,B ⊆ X ∗, A\B = {w ∈ X ∗|w ∈ A et w 6∈ B}
Complémentaire : A⊆ X ∗, A = X ∗ \A = {w ∈ X ∗|w 6∈ A}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 24 / 29
Alphabets et langages Langages
Opérations sur les langages
Egalité de langages
Deux langages A,B ∈ X ∗ sont égaux , noté A = B, si et seulement si A⊆ B etB ⊆ A.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 25 / 29
Alphabets et langages Langages
Opérations sur les langages
Egalité de langages
Deux langages A,B ∈ X ∗ sont égaux , noté A = B, si et seulement si A⊆ B etB ⊆ A.
Produit de langages
Soit deux langages A,B ∈ X ∗. Le produit de A et B est notéA◦B = {u.v |u ∈ A et v ∈ B}.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 25 / 29
Alphabets et langages Langages
Opérations sur les langages
Attention!
◦ produit de langages
. produit de mots
⇒ Par la suite, nous les noterons de la même façon, le contexte fera ladifférence.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 26 / 29
Alphabets et langages Langages
Opérations sur les langages
Attention!
◦ produit de langages
. produit de mots
⇒ Par la suite, nous les noterons de la même façon, le contexte fera ladifférence.
Soit un alphabet X = {a,b}, un langage A = {ε,a,ab} et un langageB = {b,ba}.
A◦B = A.B = AB = {b,ba,ab,aba,abb,abba}
B ◦A = B.A = BA = {b,ab,bab,ba,baa,baab}
⇒ AB 6= BA
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 26 / 29
Alphabets et langages Langages
Opérations sur les langages
Théorème
Le produit de langages est distributif par rapport à l’union.
∀A,B,C ⊆ X ∗ A.(B∪C) = (A.B)∪ (A.C)(B∪C).A = (B.A)∪ (C.A)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 27 / 29
Alphabets et langages Langages
Opérations sur les langages
Théorème
Le produit de langages est distributif par rapport à l’union.
∀A,B,C ⊆ X ∗ A.(B∪C) = (A.B)∪ (A.C)(B∪C).A = (B.A)∪ (C.A)
Ce théorème reste vrai pour des unions infinies
∀A,Bi ⊆ X ∗ A.(⋃∞
i=1 Bi) =⋃∞
i=1(A.Bi)(⋃∞
i=1 Bi).A =⋃∞
i=1(Bi .A)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 27 / 29
Alphabets et langages Langages
Opérations sur les langages
Théorème
Le produit de langages est distributif par rapport à l’union.
∀A,B,C ⊆ X ∗ A.(B∪C) = (A.B)∪ (A.C)(B∪C).A = (B.A)∪ (C.A)
Ce théorème reste vrai pour des unions infinies
∀A,Bi ⊆ X ∗ A.(⋃∞
i=1 Bi) =⋃∞
i=1(A.Bi)(⋃∞
i=1 Bi).A =⋃∞
i=1(Bi .A)
Attention! Le produit de langages n’est pas distributif par rapport àl’intersection.
∀A,B,C ⊆ X ∗,A.(B∩C)⊆ (A.B)∩ (A.C)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 27 / 29
Alphabets et langages Langages
Opérations sur les langages
Fermeture de Kleene
Soit A⊆ X ∗. On note A∗ =⋃∞
i=0 Ai l’opération étoile (ou fermeture par étoile,ou fermeture de Kleene, ou fermeture itérative) du langage A.
Note : Comme A0 = {ε}, on a toujours ε ∈ A∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 28 / 29
Alphabets et langages Langages
Opérations sur les langages
Fermeture de Kleene
Soit A⊆ X ∗. On note A∗ =⋃∞
i=0 Ai l’opération étoile (ou fermeture par étoile,ou fermeture de Kleene, ou fermeture itérative) du langage A.
Note : Comme A0 = {ε}, on a toujours ε ∈ A∗
Fermeture positive
Soit A⊆ X ∗. On note A+ =⋃∞
i=1 Ai la fermeture positive du langage A.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 28 / 29
Alphabets et langages Langages
Opérations sur les langages
Fermeture de Kleene
Soit A⊆ X ∗. On note A∗ =⋃∞
i=0 Ai l’opération étoile (ou fermeture par étoile,ou fermeture de Kleene, ou fermeture itérative) du langage A.
Note : Comme A0 = {ε}, on a toujours ε ∈ A∗
Fermeture positive
Soit A⊆ X ∗. On note A+ =⋃∞
i=1 Ai la fermeture positive du langage A.
Théorème
Soit A⊆ X ∗. On a A+ = A.A∗ = A∗.A
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 28 / 29
Alphabets et langages Langages
Opérations sur les langages
Opération miroir
Soit A⊆ X ∗. On définit l’opération miroir comme étant A = {w |w ∈ A}.L’opération miroir peut également être notée AR = {w |w ∈ A}.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 29 / 29
Alphabets et langages Langages
Opérations sur les langages
Opération miroir
Soit A⊆ X ∗. On définit l’opération miroir comme étant A = {w |w ∈ A}.L’opération miroir peut également être notée AR = {w |w ∈ A}.
Théorème
Soit A,B ⊆ X ∗. On a (A.B)R = BR.AR
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 29 / 29
Grammaires
Grammaires
Principe de baseDéfinitionsArbres de dérivationCaractérisation du langage généré par une grammaireTypes de grammaires
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 2 / 27
Grammaires Principe de base
Grammaires
Principe de baseDéfinitionsArbres de dérivationCaractérisation du langage généré par une grammaireTypes de grammaires
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 3 / 27
Grammaires Principe de base
Principe de base
Ensemble de règles pour générer les mots du langage
Sous la forme de règles de réécriture→ Remplacer une séquence de symboles par une autre séquence
Mots générés = mots obtenus à partir d’un symbole spécial appelésymbole de départ ou axiome
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 4 / 27
Grammaires Principe de base
Exemple
Considérons la phrase suivante :
La vieille dame regarde la petite fille
Peut-on construire une grammaire qui permette de générer cette phrase?
Alphabet : Σ= { la, vieille, petite, dame, fille, regarde}
Structure de la phrase :Un groupe sujet (article, adjectif, nom)Un verbeUn groupe complément d’objet (article, adjectif, nom)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 5 / 27
Grammaires Principe de base
Exemple
Considérons la phrase suivante :
La vieille dame regarde la petite fille
Peut-on construire une grammaire qui permette de générer cette phrase?
Alphabet : Σ= { la, vieille, petite, dame, fille, regarde}
Structure de la phrase :Un groupe sujet (article, adjectif, nom)Un verbeUn groupe complément d’objet (article, adjectif, nom)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 5 / 27
Grammaires Principe de base
Exemple
Considérons la phrase suivante :
La vieille dame regarde la petite fille
Peut-on construire une grammaire qui permette de générer cette phrase?
Alphabet : Σ= { la, vieille, petite, dame, fille, regarde}
Structure de la phrase :Un groupe sujet (article, adjectif, nom)Un verbeUn groupe complément d’objet (article, adjectif, nom)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 5 / 27
Grammaires Principe de base
Exemple
Règles de production
1. 〈Phrase〉 → 〈Sujet〉〈Verbe〉〈Complément〉
2. 〈Sujet〉 → 〈Groupe Nominal〉
3. 〈Complément〉 → 〈Groupe Nominal〉
4. 〈Groupe Nominal〉 → 〈Article〉〈Nom〉
5. 〈Groupe Nominal〉 → 〈Article〉〈Adjectif〉〈Nom〉
6. 〈Article〉 → la
7. 〈Nom〉 → dame | fille
8. 〈Adjectif〉 → vieille | petite
9. 〈Verbe〉 → regarde
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 6 / 27
Grammaires Définitions
Grammaires
Principe de baseDéfinitionsArbres de dérivationCaractérisation du langage généré par une grammaireTypes de grammaires
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 7 / 27
Grammaires Définitions
Grammaire
Grammaire
Une grammaire est définie par un quadruplet G = 〈V ,Σ,P,S〉 où
V est un alphabet
Σ⊆ V est l’ensemble des symboles terminaux
V \Σ est l’ensemble des symboles non terminaux
S ∈ V \Σ est le symbole de départ
P ⊆ (V+×V ∗) est l’ensemble (fini) de règles de production
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 8 / 27
Grammaires Définitions
Grammaire
Grammaire
Une grammaire est définie par un quadruplet G = 〈V ,Σ,P,S〉 où
V est un alphabet
Σ⊆ V est l’ensemble des symboles terminaux
V \Σ est l’ensemble des symboles non terminaux
S ∈ V \Σ est le symbole de départ
P ⊆ (V+×V ∗) est l’ensemble (fini) de règles de production
Notations :
Σ : lettres minuscules
V \Σ : lettre majuscules
Règles de production : α → βSignification intuitive : l’élément α ∈ V+ peut être remplacé par β ∈ V ∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 8 / 27
Grammaires Définitions
Grammaire : exemple
Soit G1 = 〈V ,Σ,P,S〉 avec
Σ= {:=,a,b,c,+,∗,),(}
V \Σ= {S, I,E}
Axiome S
8 règles de production :
S → I := E I → aI → b I → cE → E +E E → E ∗EE → (E) E → I
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 9 / 27
Grammaires Définitions
Grammaire : exemple
Soit G1 = 〈V ,Σ,P,S〉 avec
Σ= {:=,a,b,c,+,∗,),(}
V \Σ= {S, I,E}
Axiome S
8 règles de production :
S → I := E I → aI → b I → cE → E +E E → E ∗EE → (E) E → I
On peut aussi écrire I → a|b|c.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 9 / 27
Grammaires Définitions
Grammaire : exemple
Soit G2 = 〈V ,Σ,P,S〉 avec
Σ= {a,b}
V \Σ= {S}
Axiome S
3 règles de production :S → aSaS → SbSS → ε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 10 / 27
Grammaires Définitions
Grammaire : exemple
Soit G3 = 〈V ,Σ,P,S〉 avec
Σ= {a,b}
V \Σ= {S}
Axiome S
3 règles de production :S → aSS → aSbSS → ε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 11 / 27
Grammaires Définitions
Grammaire hors contexte
Grammaire hors contexte
Soit G = 〈V ,Σ,P,S〉. G est dite hors contexte (context-free) si tous lesrègles sont de la forme
A → β
où A ∈ V \Σ (symbole non terminal), et β ∈ V ∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 12 / 27
Grammaires Définitions
Dérivation
Dérivation en une étape
Soit G = 〈V ,Σ,P,S〉, u ∈ V+ et v ∈ V ∗. G permet de dériver v de u en uneétape , noté u −→
Gv , si et seulement si
u = xu′y
v = xv ′y
u′ → v ′ est dans P
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 13 / 27
Grammaires Définitions
Dérivation
Dérivation en une étape
Soit G = 〈V ,Σ,P,S〉, u ∈ V+ et v ∈ V ∗. G permet de dériver v de u en uneétape , noté u −→
Gv , si et seulement si
u = xu′y
v = xv ′y
u′ → v ′ est dans P
Dérivation en plusieurs étapes
G permet de dériver v de u en plusieurs étapes , noté u∗−→G
v , si et
seulement si ∃k ≥ 0 et ∃v0, . . . ,vk ∈ V ∗ tels que
u = v0
v = vk
vi −→G
vi+1 pour 0 ≤ i < k
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 13 / 27
Grammaires Définitions
Langage généré par une grammaire
Mots générés par une grammaire
Soit G = 〈V ,Σ,P,S〉.Les mots générés par G sont les mots v ∈ Σ∗ (symboles terminaux) quipeuvent être dérivés à partir de l’axiome : S
∗−→G
v .
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 14 / 27
Grammaires Définitions
Langage généré par une grammaire
Mots générés par une grammaire
Soit G = 〈V ,Σ,P,S〉.Les mots générés par G sont les mots v ∈ Σ∗ (symboles terminaux) quipeuvent être dérivés à partir de l’axiome : S
∗−→G
v .
Langage généré par une grammaire
Soit G = 〈V ,Σ,P,S〉.Le langage généré par G, noté L (G) est l’ensemble des mots générés par G.
L (G) = {v ∈ Σ∗|S∗−→G
v}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 14 / 27
Grammaires Définitions
Grammaire : exemple
Soit G3 = 〈V ,Σ,P,S〉 avec
Σ= {a,b}
V \Σ= {S}
Axiome S3 règles de production :
S → aSS → aSbSS → ε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 15 / 27
Grammaires Définitions
Grammaire : exemple
Soit G3 = 〈V ,Σ,P,S〉 avec
Σ= {a,b}
V \Σ= {S}
Axiome S3 règles de production :
S → aSS → aSbSS → ε
On veut montrer que aaba ∈ L (G)
S −→G3
aSbS −→G3
aSbaS −→G3
aSbaε −→G3
aaSba −→G3
aaεba −→G3
aaba
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 15 / 27
Grammaires Définitions
Grammaire : exemple
Soit G3 = 〈V ,Σ,P,S〉 avec
Σ= {a,b}
V \Σ= {S}
Axiome S3 règles de production :
S → aSS → aSbSS → ε
On veut montrer que aaba ∈ L (G)
S −→G3
aSbS −→G3
aSbaS −→G3
aSbaε −→G3
aaSba −→G3
aaεba −→G3
aaba
Seconde dérivation possible :
S −→G3
aSbS −→G3
aaSbS −→G3
aaεbS −→G3
aabaε −→G3
aaba
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 15 / 27
Grammaires Définitions
Dérivation la plus à gauche
Dérivation la plus à gauche (LPG)
Soit G = 〈V ,Σ,P,S〉, et w ∈ Σ∗
S∗−→G
w est une dérivation la plus à gauche (LPG) si, à chaque étape de la
dérivation, c’est la variable la plus à gauche qui est dérivée. Donc, si∃w1, . . . ,wn tels que
S = w0 −→G
w1 −→G
. . .−→G
wn −→G
wn+1 = w , et
∀i , 0 ≤ i ≤ nwi = uiAivi ,wi+1 = uiαivi etAi → αi
alors ui ∈ Σ∗ (ui est un symbole terminal, et ne contient donc pas de variable).
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 16 / 27
Grammaires Arbres de dérivation
Grammaires
Principe de baseDéfinitionsArbres de dérivationCaractérisation du langage généré par une grammaireTypes de grammaires
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 17 / 27
Grammaires Arbres de dérivation
Arbres de dérivation pour une grammaire hors contexte
Arbres de dérivation
Soit G = 〈V ,Σ,P,S〉 une grammaire hors contexte. Un arbre D est un arbrede dérivation pour un mot w à partir de l’axiome S si :
La racine de D est étiquetée par S (l’axiome)
Les feuilles de D sont étiquetées par des éléments de Σ∪ ε (symbolesterminaux)
L’étiquette d’une feuille est le mot vide seulement si la feuille est filleunique
Les nœuds de D qui ne sont pas des feuilles sont étiquetés par unsymbole non terminal (V \Σ)
Pour tout nœud, si Y est l’étiquette du nœud, et si Z1, . . . ,Zn sont lesnœuds de ses fils, dans cet ordre , alors Y → Z1 . . .Zn est une règle
Le mot des feuilles de D, c’est-à-dire le mot obtenu en concaténant lesétiquettes des feuilles de la gauche vers la droite, est le mot w
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 27
Grammaires Arbres de dérivation
Arbres de dérivation : exemple
a := a+b ∗a ∈ L (G1)
S
I
a
:= E
E
I
a
+ E
E
I
b
∗ E
I
a
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 19 / 27
Grammaires Arbres de dérivation
Arbres de dérivation : exemple
aaba ∈ L (G3). Il existe deux arbres de dérivation différents pour ce mot.
S
a S b S
a S
ε
a S
ε
S
a S
a S b S
ε a S
ε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 27
Grammaires Arbres de dérivation
Arbres de dérivation : exemple
aaba ∈ L (G3). Il existe deux arbres de dérivation différents pour ce mot.
S
a S b S
a S
ε
a S
ε
S
a S
a S b S
ε a S
ε
La grammaire est ambigüe .
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 27
Grammaires Arbres de dérivation
Grammaires ambigües
Ambiguité
Une grammaire G est ambigüe s’il existe un mot de L (G) qui a au moinsdeux dérivations LPG à partir de S (et donc deux arbres de dérivation).Dans le cas contraire G est non ambigüe.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 21 / 27
Grammaires Arbres de dérivation
Grammaires ambigües
Ambiguité
Une grammaire G est ambigüe s’il existe un mot de L (G) qui a au moinsdeux dérivations LPG à partir de S (et donc deux arbres de dérivation).Dans le cas contraire G est non ambigüe.
G1 est ambigüe.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 21 / 27
Grammaires Arbres de dérivation
Grammaires ambigües
Théorème
Etant donné une grammaire G, un mot est généré par G (S∗−→G
w) si et
seulement si il existe un arbre de dérivation qui génère w .
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 22 / 27
Grammaires Arbres de dérivation
Grammaires ambigües
Théorème
Etant donné une grammaire G, un mot est généré par G (S∗−→G
w) si et
seulement si il existe un arbre de dérivation qui génère w .
Langage ambigüe
Un langage est ambigüe de façon inhérente si toutes les grammaires quil’engendrent sont ambigües.On dira qu’un langage est non ambigüe s’il n’est pas ambigüe de façoninhérente.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 22 / 27
Grammaires Arbres de dérivation
Grammaires ambigües
Théorème
Etant donné une grammaire G, un mot est généré par G (S∗−→G
w) si et
seulement si il existe un arbre de dérivation qui génère w .
Langage ambigüe
Un langage est ambigüe de façon inhérente si toutes les grammaires quil’engendrent sont ambigües.On dira qu’un langage est non ambigüe s’il n’est pas ambigüe de façoninhérente.
Lemme de Parikh
Il existe un langage ambigüe de façon inhérente.
L = {apbqcr |p = q ou q = r avec p,q, r ≥ 1}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 22 / 27
Grammaires Caractérisation du langage généré par une grammaire
Grammaires
Principe de baseDéfinitionsArbres de dérivationCaractérisation du langage généré par une grammaireTypes de grammaires
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 27
Grammaires Caractérisation du langage généré par une grammaire
Caractérisation d’un langage
Problème
Soit une grammaire G qui génère le langage L (G).Soit L une caractérisation du langage généré.On veut prouver que L = L (G).
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 24 / 27
Grammaires Caractérisation du langage généré par une grammaire
Caractérisation d’un langage
Problème
Soit une grammaire G qui génère le langage L (G).Soit L une caractérisation du langage généré.On veut prouver que L = L (G).
Grammaire G3
1. S → aS
2. S → aSbS
3. S → ε
L = {w ∈ X ∗|∀w ′ préfixe de w alors |w ′|a ≥ |w ′|b}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 24 / 27
Grammaires Caractérisation du langage généré par une grammaire
Caractérisation d’un langage
Problème
Soit une grammaire G qui génère le langage L (G).Soit L une caractérisation du langage généré.On veut prouver que L = L (G).
Grammaire G3
1. S → aS
2. S → aSbS
3. S → ε
L = {w ∈ X ∗|∀w ′ préfixe de w alors |w ′|a ≥ |w ′|b}
On doit montrer l’égalité de ces deux langages, on procède par doubleinclusion.
L (G3)⊆ L. On procède par induction sur le nombre d’utilisation desrègles 1. et 2.
L ⊆ L (G3). On procède par induction sur la longueur des mots de L.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 24 / 27
Grammaires Types de grammaires
Grammaires
Principe de baseDéfinitionsArbres de dérivationCaractérisation du langage généré par une grammaireTypes de grammaires
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 25 / 27
Grammaires Types de grammaires
Types de grammaires
Type 0 Pas de restriction
Type 1 Grammaires contextuelles (ou sensibles au contrôle)(Context-sensitive)
α → β, |α| ≤ |β|, α ∈ V+
Type 2 Grammaires hors-contexte (Context-Free)
A → β
Type 3 Grammaires régulières (ou linéaires à droite)
A → wB A,B ∈ V \Σ non terminauxA → w w ∈ Σ∗ terminaux
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 26 / 27
Grammaires Types de grammaires
Types de grammaires
T0
T1Context sensitive
Machine de Turing
T2Context Free
Automate à pile
T3Réguliers
Automate fini
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 27 / 27
Automates finis
Automates finis
IntroductionFormalisationReprésentation et exemplesAutomates completsLangage généré par un automateAutomate fini non déterministeOpérations sur les automatesAutomates finis et langages
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 2 / 50
Automates finis Introduction
Automates finis
IntroductionFormalisationReprésentation et exemplesAutomates completsLangage généré par un automateAutomate fini non déterministeOpérations sur les automatesAutomates finis et langages
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 3 / 50
Automates finis Introduction
Introduction
Automate fini : machine abstraite qui effectue des calculs en utilisant unemémoire de taille bornée.
Il n’est pas possible d’augmenter la taille de la mémoire au delà de cetteborne
Les tailles des données et des résultats peuvent être supérieurs à cetteborne puisque les données sont lues et les résultats produitsprogressivement au cours du calcul
La longueur d’un calcul peut aussi être supérieure à la taille de lamémoire de l’automate
Celui-ci passe alors nécessairement plusieurs fois par un même état de samémoire
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 4 / 50
Automates finis Introduction
Introduction
Les automates finis ont des applications importantes :Définition de certains aspects des langages naturels ou artificielsDescription de machines physiques (circuits électroniques, machines àcalculer, distributeur d’objets, etc.)Définition de protocoles de communication dans des réseauxDescription de systèmes de commandes (comme le système decommandes d’un ascenseur), etc.
Les automates finis peuvent être utilisés pour calculer des fonctions, oupour reconnaître des langages.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 5 / 50
Automates finis Formalisation
Automates finis
IntroductionFormalisationReprésentation et exemplesAutomates completsLangage généré par un automateAutomate fini non déterministeOpérations sur les automatesAutomates finis et langages
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 6 / 50
Automates finis Formalisation
Automate fini déterministe
Automate fini déterministe
Un automate fini déterministe est un quintuplet M = 〈Q,Σ,δ,q0,F〉 où
Q est un ensemble fini d’états
Σ est un ensemble fini de symboles (un alphabet)
δ : Q×Σ → Q est une fonction de transitions
q0 ∈ Q est l’état initial
F ⊆ Q est l’ensemble (fini) des états finaux
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 7 / 50
Automates finis Formalisation
Automate fini déterministe
Automate fini déterministe
Un automate fini déterministe est un quintuplet M = 〈Q,Σ,δ,q0,F〉 où
Q est un ensemble fini d’états
Σ est un ensemble fini de symboles (un alphabet)
δ : Q×Σ → Q est une fonction de transitions
q0 ∈ Q est l’état initial
F ⊆ Q est l’ensemble (fini) des états finaux
Une paire (q,w), où q ∈ Q est un état, et w ∈ Σ∗ est un alphabet est appeléune configuration .
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 7 / 50
Automates finis Formalisation
Dérivation
Configuration dérivable en une étape
Soit M un automate, q,q′ ∈ Q deux états, w ,w ′ ∈ Σ∗ deux mots et (q,w),(q′
,w ′) les deux configurations correspondantes.
On dit que la configuration (q′,w ′) est dérivable en une étape de la
configuration (q,w) par M, noté (q,w) 7→ (q′,w ′), si
w = xw ′, avec x ∈ Σ
M est dans l’état q
q′ = δ(q,x)
On dit alors qu’on “lit” la lettre x .
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 8 / 50
Automates finis Formalisation
Dérivation
Configuration dérivable
Soit M un automate, q,q′ ∈ Q deux états, w ,w ′ ∈ Σ∗ deux mots et (q,w),(q′
,w ′) les deux configurations correspondantes.
On dit que la configuration (q′,w ′) est dérivable de la configuration (q,w) par
M, noté (q,w)∗7→ (q′
,w ′), si ∃k ≥ 0 et k configurations (qi ,wi), 1 ≤ i ≤ ktelles que
(q,w) = (q1,w1)
(q′,w ′) = (qk ,wk)
∀i , 1 ≤ i ≤ k , (qi ,wi) 7→ (qi+1,wi+1)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 9 / 50
Automates finis Formalisation
Reconnaissance d’un mot
Reconnaissance d’un mot par un automate
La reconnaissance d’un mot w par un automate M (appelée aussi exécutiond’un automate M sur un mot w) est la suite des configurations :
(q0,w) 7→ (q1,w1) 7→ (q2,w2) 7→ . . . 7→ (qn,ε)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 10 / 50
Automates finis Formalisation
Langage reconnu par un automate
Mot accepté par un automate
Un mot w est accepté par un automate si et seulement si
(q0,w)∗7→ (q,ε) avec q ∈ F
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 11 / 50
Automates finis Formalisation
Langage reconnu par un automate
Mot accepté par un automate
Un mot w est accepté par un automate si et seulement si
(q0,w)∗7→ (q,ε) avec q ∈ F
Langage accepté par un automate
Le langage accepté par un automate M, noté L(M), est défini par
L(M) = {w ∈ Σ∗|(q0,w)∗7→ (q,ε) avec q ∈ F}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 11 / 50
Automates finis Formalisation
Langage reconnu par un automate
Mot accepté par un automate
Un mot w est accepté par un automate si et seulement si
(q0,w)∗7→ (q,ε) avec q ∈ F
Langage accepté par un automate
Le langage accepté par un automate M, noté L(M), est défini par
L(M) = {w ∈ Σ∗|(q0,w)∗7→ (q,ε) avec q ∈ F}
ATTENTION
Plutôt que langage accepté par un automate M, on parle souvent de langagereconnu par l’automate M. Il s’agit pourtant toujours de l’ensemble des motsacceptés par l’automate, et non pas les mots reconnus par l’automate.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 11 / 50
Automates finis Représentation et exemples
Automates finis
IntroductionFormalisationReprésentation et exemplesAutomates completsLangage généré par un automateAutomate fini non déterministeOpérations sur les automatesAutomates finis et langages
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 12 / 50
Automates finis Représentation et exemples
Notations
Etat initial
q0
Etat final (2 notations possible)
q q
Transition entre l’état p et q : δ(p,a) = q
p qa
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 13 / 50
Automates finis Représentation et exemples
Exemple
Automate M1
q0 q1
ba
a
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 14 / 50
Automates finis Représentation et exemples
Exemple
Automate M1
q0 q1
ba
a
Est-ce que M1 reconnait aaba ? accepte aaba ?
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 14 / 50
Automates finis Représentation et exemples
Exemple
Automate M1
q0 q1
ba
a
Est-ce que M1 reconnait aaba ? accepte aaba ?
Est-ce que M1 reconnait abba ? accepte abba ?
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 14 / 50
Automates finis Représentation et exemples
Exemple
Automate M1
q0 q1
ba
a
Est-ce que M1 reconnait aaba ? accepte aaba ?
Est-ce que M1 reconnait abba ? accepte abba ?
Est-ce que M1 reconnait baab ? accepte baab ?
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 14 / 50
Automates finis Représentation et exemples
Exemple
Automate M1
q0 q1
ba
a
Est-ce que M1 reconnait aaba ? accepte aaba ?
Est-ce que M1 reconnait abba ? accepte abba ?
Est-ce que M1 reconnait baab ? accepte baab ?
L(M1) = {w ∈ {a,b}∗|w ne contient pas deux b consécutifs}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 14 / 50
Automates finis Représentation et exemples
Exemple
Automate M2
q0 q1 q2
ba
a
ba,b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 15 / 50
Automates finis Représentation et exemples
Exemple
Automate M2
q0 q1 q2
ba
a
ba,b
Est-ce que M2 reconnait abba ? accepte abba ?
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 15 / 50
Automates finis Représentation et exemples
Exemple
Automate M2
q0 q1 q2
ba
a
ba,b
Est-ce que M2 reconnait abba ? accepte abba ?
Est-ce que M2 reconnait aaba ? accepte aaba ?
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 15 / 50
Automates finis Représentation et exemples
Exemple
Automate M2
q0 q1 q2
ba
a
ba,b
Est-ce que M2 reconnait abba ? accepte abba ?
Est-ce que M2 reconnait aaba ? accepte aaba ?
L(M2) = {w ∈ {a,b}∗|w contient deux b consécutifs}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 15 / 50
Automates finis Automates complets
Automates finis
IntroductionFormalisationReprésentation et exemplesAutomates completsLangage généré par un automateAutomate fini non déterministeOpérations sur les automatesAutomates finis et langages
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 16 / 50
Automates finis Automates complets
Automate complet
Automate complet
Un automate est complet si pour tout état q ∈ Q il existe une transition pourchaque lettre de l’alphabet Σ.
∀q ∈ Q, ∀x ∈ Σ, δ(q,x) est défini
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 17 / 50
Automates finis Automates complets
Exemple
Σ = {a,b}
L’automate M1 est-il complet?
q0 q1
ba
a
L’automate M2 est-il complet?
q0 q1 q2
ba
a
ba,b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 50
Automates finis Automates complets
Etats puits et poubelles
Etat puit
Un état puits est un état q ∈ Q pour lequel toutes les transitions sont de laforme δ(q,x) = q.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 19 / 50
Automates finis Automates complets
Etats puits et poubelles
Etat puit
Un état puits est un état q ∈ Q pour lequel toutes les transitions sont de laforme δ(q,x) = q.
Etat puits de M2?
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 19 / 50
Automates finis Automates complets
Etats puits et poubelles
Etat puit
Un état puits est un état q ∈ Q pour lequel toutes les transitions sont de laforme δ(q,x) = q.
Etat puits de M2?
Etat poubelle
Un état poubelle est un état puits non final.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 19 / 50
Automates finis Automates complets
Etats puits et poubelles
Etat puit
Un état puits est un état q ∈ Q pour lequel toutes les transitions sont de laforme δ(q,x) = q.
Etat puits de M2?
Etat poubelle
Un état poubelle est un état puits non final.
Pour Σ = {a,b}
q0
a,b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 19 / 50
Automates finis Automates complets
Automates équivalents
Automates équivalents
Deux automates M et M ′ sont équivalents si et seulement si L(M) = L(M ′).
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 50
Automates finis Automates complets
Automates équivalents
Automates équivalents
Deux automates M et M ′ sont équivalents si et seulement si L(M) = L(M ′).
Propriété
Pour tout automate fini, il existe un automate fini complet équivalent
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 50
Automates finis Automates complets
Automates équivalents
Automates équivalents
Deux automates M et M ′ sont équivalents si et seulement si L(M) = L(M ′).
Propriété
Pour tout automate fini, il existe un automate fini complet équivalent
Si l’automate n’est pas complet, on le complète en ajoutant un état poubelle
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 50
Automates finis Automates complets
Exemple
L’automate M1.
q0 q1
ba
a
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 21 / 50
Automates finis Automates complets
Exemple
Automate M1.
q0 q1
ba
a
Automate M1 complété
q0 q1 q2
ba
a
ba,b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 21 / 50
Automates finis Automates complets
Automates complets
Propriété
Pour un automate complet, la reconnaissance d’un mot ne “bloque” jamais.
(q0,w) 7→ (q1,w1) 7→ (q2,w2) 7→ . . . 7→ (qn,ε)
On a deux possibilités
Soit qn ∈ F , et w est un mot accepté
Soit qn 6∈ F , et w n’est pas un mot accepté
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 22 / 50
Automates finis Langage généré par un automate
Automates finis
IntroductionFormalisationReprésentation et exemplesAutomates completsLangage généré par un automateAutomate fini non déterministeOpérations sur les automatesAutomates finis et langages
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 50
Automates finis Langage généré par un automate
Langage généré par un automate
Un automate peut être vu comme un mécanisme décrivant, ou gén érant,un langage
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 24 / 50
Automates finis Langage généré par un automate
Langage généré par un automate
Un automate peut être vu comme un mécanisme décrivant, ou gén érant,un langage
Langage généré à partir d’un état par un automate
Le langage généré à partir d’un état q par un automate M, noté L(q) estl’ensemble des mots acceptés à partir de cet état.
L(q) = Lq = {w ∈ Σ∗|(q,w)∗7→ (q′
,ε) et q′ ∈ F}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 24 / 50
Automates finis Langage généré par un automate
Langage généré par un automate
Un automate peut être vu comme un mécanisme décrivant, ou gén érant,un langage
Langage généré à partir d’un état par un automate
Le langage généré à partir d’un état q par un automate M, noté L(q) estl’ensemble des mots acceptés à partir de cet état.
L(q) = Lq = {w ∈ Σ∗|(q,w)∗7→ (q′
,ε) et q′ ∈ F}
Langage généré par un automate
Le langage généré par un automate M est défini par
L(M) = L(q0)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 24 / 50
Automates finis Langage généré par un automate
Langage généré par un automate
Un automate peut être vu comme un mécanisme décrivant, ou gén érant,un langage
Langage généré à partir d’un état par un automate
Le langage généré à partir d’un état q par un automate M, noté L(q) estl’ensemble des mots acceptés à partir de cet état.
L(q) = Lq = {w ∈ Σ∗|(q,w)∗7→ (q′
,ε) et q′ ∈ F}
Langage généré par un automate
Le langage généré par un automate M est défini par
L(M) = L(q0)
Remarque : Soit q un état poubelle. L(q) = /0.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 24 / 50
Automates finis Langage généré par un automate
Système d’équations définissant un langage
Equation définissant un langage généré à partir d’un état
Le langage généré à partir d’un état q par un automate M est défini par uneéquation de la forme :
L(q) = Lq = ( ∑x∈Σ
x .L(δ(q,x)))+d(L(q))
où d(A) =
{
/0 si ε 6∈ Aε si ε ∈ A
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 25 / 50
Automates finis Langage généré par un automate
Système d’équations définissant un langage
Equation définissant un langage généré à partir d’un état
Le langage généré à partir d’un état q par un automate M est défini par uneéquation de la forme :
L(q) = Lq = ( ∑x∈Σ
x .L(δ(q,x)))+d(L(q))
où d(A) =
{
/0 si ε 6∈ Aε si ε ∈ A
Exemple : Pour M1 complété
L(q0) = aL(q0)+bL(q1)+ εL(q1) = aL(q0)+bL(q2)+ ε = aL(q0)+ ε car L(q2) = /0L(q2) = aL(q2)+bL(q2)+ /0 = /0 car q2 est un état poubelle
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 25 / 50
Automates finis Automate fini non déterministe
Automates finis
IntroductionFormalisationReprésentation et exemplesAutomates completsLangage généré par un automateAutomate fini non déterministeOpérations sur les automatesAutomates finis et langages
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 26 / 50
Automates finis Automate fini non déterministe
Automate fini non déterministe
Automate fini non déterministe
Un automate fini non déterministe est un quintuplet M = 〈Q,Σ,∆,S,F〉 où
Q est un ensemble fini d’états
Σ est un ensemble fini de symboles (un alphabet)
∆ ⊆ (Q×Σ×Q) est une relation de transitions
S ⊆ Q est l’ensemble (fini) des état initiaux
F ⊆ Q est l’ensemble (fini) des états finaux
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 27 / 50
Automates finis Automate fini non déterministe
Automate fini non déterministe
Automate fini non déterministe
Un automate fini non déterministe est un quintuplet M = 〈Q,Σ,∆,S,F〉 où
Q est un ensemble fini d’états
Σ est un ensemble fini de symboles (un alphabet)
∆ ⊆ (Q×Σ×Q) est une relation de transitions
S ⊆ Q est l’ensemble (fini) des état initiaux
F ⊆ Q est l’ensemble (fini) des états finaux
Différences avec un automate fini déterministe :
Plusieurs états de départ possible
Ce n’est plus une fonction de transition, mais une relation de transition.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 27 / 50
Automates finis Automate fini non déterministe
Exemple
Automate M3
q0
q1
q2
q3
b
a
a,bb
a
a,b
abb ∈ L(M3)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 28 / 50
Automates finis Automate fini non déterministe
Exemple
Automate M3
q0
q1
q2
q3
b
a
a,bb
a
a,b
abb ∈ L(M3)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 28 / 50
Automates finis Automate fini non déterministe
Automate fini non déterministe
Propriété
Pour tout automate fini non déterministe M, il existe un automate finidéterministe M ′ équivalent.
L(M) = L(M ′)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 29 / 50
Automates finis Automate fini non déterministe
Exemple : automate M3
q0
q1
q2
q3
b
a
a,bb
a
a,b
Déterminisons M3
L0 = aL0 +bL0 +aL2 +bL1
L1 = bL3
L2 = aL3
L3 = aL3 +bL3 + ε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 30 / 50
Automates finis Automate fini non déterministe
Exemple : automate M3
Déterminisons M3
L0 = aL0 +bL0 +aL2 +bL1
L1 = bL3
L2 = aL3
L3 = aL3 +bL3 + ε
On sait que L(M3) = L0. On a donc
L0 = a(L0 +L2)+b(L0 +L1)L0 +L2 = a(L0 +L2 +L3)+b(L0 +L1)L0 +L1 = a(L0 +L2)+b(L0 +L1 +L3)L0 +L2 +L3 = a(L0 +L2 +L3)+b(L0 +L1 +L3)+ εL0 +L1 +L3 = a(L0 +L2 +L3)+b(L0 +L1 +L3)+ εL0 +L1 +L3 = L0 +L2 +L3
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 50
Automates finis Automate fini non déterministe
Exemple : automate M3
L0 = a(L0 +L2)+b(L0 +L1)L0 +L2 = a(L0 +L2 +L3)+b(L0 +L1)L0 +L1 = a(L0 +L2)+b(L0 +L2 +L3)L0 +L2 +L3 = a(L0 +L2 +L3)+b(L0 +L2 +L3)+ ε
On obtient l’automate suivant :
0
01
02
023
b
a
b
a
a
b
a,b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 50
Automates finis Opérations sur les automates
Automates finis
IntroductionFormalisationReprésentation et exemplesAutomates completsLangage généré par un automateAutomate fini non déterministeOpérations sur les automatesAutomates finis et langages
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 33 / 50
Automates finis Opérations sur les automates
Complémentation
Complémentation
Pour tout automate fini M, il existe un automate fini M ′ tel que L(M ′) = L(M)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 34 / 50
Automates finis Opérations sur les automates
Complémentation
Complémentation
Pour tout automate fini M, il existe un automate fini M ′ tel que L(M ′) = L(M)
Intérêt : pour tout automate complet et déterministe M, et pour tout motw ∈ X ∗, il existe une dérivation (s,w)
∗7→ (q,ε) telle que
soit q ∈ F et w ∈ L(M)
soit q 6∈ F et w 6∈ L(M)
⇒ Permet de pouvoir reconnaitre tous les mots de X ∗ qui ne sont pasreconnus par M.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 34 / 50
Automates finis Opérations sur les automates
Complémentation
Complémentation
Pour tout automate fini M, il existe un automate fini M ′ tel que L(M ′) = L(M)
Intérêt : pour tout automate complet et déterministe M, et pour tout motw ∈ X ∗, il existe une dérivation (s,w)
∗7→ (q,ε) telle que
soit q ∈ F et w ∈ L(M)
soit q 6∈ F et w 6∈ L(M)
⇒ Permet de pouvoir reconnaitre tous les mots de X ∗ qui ne sont pasreconnus par M.Méthode :
1. Déterminiser et compléter l’automate
2. Transformer tous les états finaux en états non finaux, et vice-versa
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 34 / 50
Automates finis Opérations sur les automates
Exemple : Complémentation
Automate M1 complété
q0 q1 q2
ba
a
ba,b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 35 / 50
Automates finis Opérations sur les automates
Exemple : Complémentation
Automate M1 complété
q0 q1 q2
ba
a
ba,b
Automate complémentaire à M1 complété
q0 q1 q2
ba
a
ba,b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 35 / 50
Automates finis Opérations sur les automates
Automate avec transition instantanée
Automate avec transition instantanée
Une transition instantanée ou ε-transition permet de passer d’un état à unautre sans lire de symbole sur le ruban d’entrée.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 36 / 50
Automates finis Opérations sur les automates
Automate avec transition instantanée
Automate avec transition instantanée
Une transition instantanée ou ε-transition permet de passer d’un état à unautre sans lire de symbole sur le ruban d’entrée.
Une ε-transition permet “d’ajouter” à un état les comportements de l’état cible(transition et éventuellement état final).
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 36 / 50
Automates finis Opérations sur les automates
Exemple : transition instantanée
q0 q2
q1
q3
q4
q5
a
ε
ε
a
a
b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 37 / 50
Automates finis Opérations sur les automates
Union de deux automates
Union
Soit deux automates finis A1 et A2. Il existe un automate fini qui reconnaitL(A1)∪L(A2).
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 38 / 50
Automates finis Opérations sur les automates
Union de deux automates
Union
Soit deux automates finis A1 et A2. Il existe un automate fini qui reconnaitL(A1)∪L(A2).
Pour calculer l’union de deux automates, il faut calculer l’équation quicorrespond à chacun des langages.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 38 / 50
Automates finis Opérations sur les automates
Exemple : Union
M4 M5
0 1a
a,b
2 3
ba
a
b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 39 / 50
Automates finis Opérations sur les automates
Exemple : Union
M4 M5
0 1a
a,b
2 3
ba
a
b
L(M4)
{
L0 = aL1
L1 = aL1 +bL1 + ε L(M5)
{
L2 = aL2 +bL3
L3 = aL2 +bL3 + ε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 39 / 50
Automates finis Opérations sur les automates
Exemple : Union
M4 M5
0 1a
a,b
2 3
ba
a
b
L(M4)
{
L0 = aL1
L1 = aL1 +bL1 + ε L(M5)
{
L2 = aL2 +bL3
L3 = aL2 +bL3 + ε
L(M4)∪L(M5)= L0+L2
L0 +L2 = a(L1 +L2)+bL3
L1 +L2 = a(L1 +L2)+b(L1 +L3)+ εL1 +L3 = a(L1 +L2)+b(L1 +L3)+ ε = L1 +L2
L3 = aL2 +bL3 + εL2 = aL2 +bL3
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 39 / 50
Automates finis Opérations sur les automates
Exemple : Union
L(M4)∪L(M5)
L0 +L2 = a(L1 +L2)+bL3
L1 +L2 = a(L1 +L2)+b(L1 +L3)+ εL3 = aL2 +bL3 + εL2 = aL2 +bL3
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 40 / 50
Automates finis Opérations sur les automates
Exemple : Union
L(M4)∪L(M5)
L0 +L2 = a(L1 +L2)+bL3
L1 +L2 = a(L1 +L2)+b(L1 +L3)+ εL3 = aL2 +bL3 + εL2 = aL2 +bL3
0+2
3 2
1+2
b
a
b
a
a
b
a,b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 40 / 50
Automates finis Opérations sur les automates
Intersection de deux automates
Intersection
Soit deux automates finis A1 et A2 qui reconnaissent L(A1) et L(A2). Alors, ilexiste un automate fini qui reconnait L(A1)∩L(A2).
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 41 / 50
Automates finis Opérations sur les automates
Intersection de deux automates
Intersection
Soit deux automates finis A1 et A2 qui reconnaissent L(A1) et L(A2). Alors, ilexiste un automate fini qui reconnait L(A1)∩L(A2).
L(A1)∩L(A2) = L(A1)∪L(A2)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 41 / 50
Automates finis Opérations sur les automates
Produit de deux automates
Produit
Soit deux automates finis A1 et A2 qui reconnaissent L(A1) et L(A2). Alors, ilexiste un automate fini qui reconnait L(A1).L(A2).
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 42 / 50
Automates finis Opérations sur les automates
Exemple : Produit
0 1a
a,b
2 3
ba
a
b
L(M4)
{
L0 = aL1
L1 = aL1 +bL1 + ε L(M5)
{
L2 = aL2 +bL3
L3 = aL2 +bL3 + ε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 43 / 50
Automates finis Opérations sur les automates
Exemple : Produit
0 1a
a,b
2 3
ba
a
b
L(M4)
{
L0 = aL1
L1 = aL1 +bL1 + ε L(M5)
{
L2 = aL2 +bL3
L3 = aL2 +bL3 + ε
L(M4).L(M5)= L0.L2
L0.L2 = aL1.L2
L1.L2 = aL1.L2 +bL1.L2 +L2
= aL1.L2 +bL1.L2 +aL2 +bL3
= a(L1.L2 +L2)+b(L1.L2 +L3)L1L2 +L2 = a(L1.L2 +L2 +L2)+b(L1.L2 +L3 +L3)L1L2 +L3 = a(L1.L2 +L2)+b(L1.L2 +L3)+ ε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 43 / 50
Automates finis Opérations sur les automates
Exemple : Produit
L(M4).L(M5)
L0.L2 = aL1.L2
L1.L2 = a(L1.L2)+b(L1.L2 +L3)L1L2 +L3 = a(L1.L2)+b(L1.L2 +L3)+ ε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 44 / 50
Automates finis Opérations sur les automates
Exemple : Produit
L(M4).L(M5)
L0.L2 = aL1.L2
L1.L2 = a(L1.L2)+b(L1.L2 +L3)L1L2 +L3 = a(L1.L2)+b(L1.L2 +L3)+ ε
0.2 1.2
1.2+3
aa
b
b
a
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 44 / 50
Automates finis Automates finis et langages
Automates finis
IntroductionFormalisationReprésentation et exemplesAutomates completsLangage généré par un automateAutomate fini non déterministeOpérations sur les automatesAutomates finis et langages
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 45 / 50
Automates finis Automates finis et langages
Transformation d’un automate fini en grammaire
Grammaire associée à un automate fini
Pour tout automate M = 〈Q,Σ,∆,q0,F〉, il existe une grammaire linéaire àdroite qui génère L(M).G = 〈VG,ΣG,PG,SG〉, avec
ΣG = Σ l’ensemble des symboles terminaux
VG = Q∪Σ l’alphabet. Il y a donc un symbole non terminal pour chaqueétat de l’automate
SG = S, où S est le symbole non terminal associé à q0
PG = {A → wB|(A,w ,B) ∈ ∆}∪{A → ε|A ∈ F}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 46 / 50
Automates finis Automates finis et langages
Exemple
Automate M1.
q0 q1
ba
a
L(M1) : L0 = aL0 +bL1 + ε; L1 = aL0 + ε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 47 / 50
Automates finis Automates finis et langages
Exemple
Automate M1.
q0 q1
ba
a
L(M1) : L0 = aL0 +bL1 + ε; L1 = aL0 + εGM1 = 〈VG,ΣG,PG,SG〉, avec VG = {a,b,S,U}; ΣG = {a,b}; SG = S;
PG =
S → aSS → bUS → εU → aSU → ε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 47 / 50
Automates finis Automates finis et langages
Transformation d’une grammaire linéaire à droite enautomate
Automate associé à une grammaire linéaire à droite
Pour toute grammaire linéaire à droite G = 〈VG,ΣG,PG,SG〉, il existe unautomate M = 〈Q,Σ,∆,S,F〉 qui reconnaît L(G).
Q : Un état pour chaque symbole non terminal. L’état initial est l’étatcorrespondant à l’axiome SG
F : Les états finaux sont les états dont les non terminaux associés ontune règle du type A → εIl est ensuite possible de construire le système d’équation correspondantà l’automate
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 48 / 50
Automates finis Automates finis et langages
Exemple
G = 〈VG,ΣG,PG,SG〉, avec VG = {a,b,S,U}; ΣG = {a,b}; SG = S;
PG =
S → bSS → aUS → bU → aSU → bU
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 49 / 50
Automates finis Automates finis et langages
Exemple
G = 〈VG,ΣG,PG,SG〉, avec VG = {a,b,S,U}; ΣG = {a,b}; SG = S;
PG =
S → bSS → aUS → bU → aSU → bU
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 49 / 50
Automates finis Automates finis et langages
Exemple
G = 〈VG,ΣG,PG,SG〉, avec VG = {a,b,S,U}; ΣG = {a,b}; SG = S;
PG =
S → bSS → aUS → bU → aSU → bU
G′ = 〈V ′G,Σ′
G,P ′G,S′
G〉, avec V ′G = {a,b,S,U,V}; Σ′
G = {a,b}; S′G = S;
PG =
S → bSS → aUS → bVV → εU → aSU → bU
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 49 / 50
Automates finis Automates finis et langages
Exemple
G′ = 〈V ′G,Σ′
G,P ′G,S′
G〉, avec V ′G = {a,b,S,U,V}; Σ′
G = {a,b}; S′G = S;
PG =
S → bSS → aUS → bVV → εU → aSU → bU
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 50 / 50
Automates finis Automates finis et langages
Exemple
G′ = 〈V ′G,Σ′
G,P ′G,S′
G〉, avec V ′G = {a,b,S,U,V}; Σ′
G = {a,b}; S′G = S;
PG =
S → bSS → aUS → bVV → εU → aSU → bU
Automate M.
S UV
a
b
b
a
b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 50 / 50
Expressions régulières
Expressions régulières
IntroductionDéfinitionsLe théorème d’ArdenAutomates et expressions régulièresCaractérisation des langages réguliersAu delà des langages réguliers
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 2 / 31
Expressions régulières Introduction
Expressions régulières
IntroductionDéfinitionsLe théorème d’ArdenAutomates et expressions régulièresCaractérisation des langages réguliersAu delà des langages réguliers
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 3 / 31
Expressions régulières Introduction
(Re)mise en contexte
Un compilateur est un programme qui
prend en entrée une donnée textuelle source (programme, donnée xml,fichier de configuration, etc)
la reconnaît (l’analyse) pour vérifier sa correction
émet éventuellement un message d’erreur
le traduit dans un langage cible
programme source Compilateur programme cible
messages d’erreur
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 4 / 31
Expressions régulières Introduction
(Re)mise en contexte
Compiler : Définir rigoureusement et reconnaître algorithmiquement(pour les langages source et cible) :
leur vocabulaire ou lexique : les mots autorisés - analyse lexicaleleur syntaxe : la structure des phrases autorisées - analyse syntaxiqueleur sémantique : la signification des phrases autorisées - analysesémantique
On se situe au niveau de l’analyse lexicale
Problème : étant donné un langage, comment décrire tous les motsacceptables? Comment décrire un langage?
⇒ Utiliser des expressions régulières (pour certains types de langages)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 5 / 31
Expressions régulières Introduction
(Re)mise en contexte
Compiler : Définir rigoureusement et reconnaître algorithmiquement(pour les langages source et cible) :
leur vocabulaire ou lexique : les mots autorisés - analyse lexicaleleur syntaxe : la structure des phrases autorisées - analyse syntaxiqueleur sémantique : la signification des phrases autorisées - analysesémantique
On se situe au niveau de l’analyse lexicale
Problème : étant donné un langage, comment décrire tous les motsacceptables? Comment décrire un langage?
⇒ Utiliser des expressions régulières (pour certains types de langages)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 5 / 31
Expressions régulières Introduction
(Re)mise en contexte
Compiler : Définir rigoureusement et reconnaître algorithmiquement(pour les langages source et cible) :
leur vocabulaire ou lexique : les mots autorisés - analyse lexicaleleur syntaxe : la structure des phrases autorisées - analyse syntaxiqueleur sémantique : la signification des phrases autorisées - analysesémantique
On se situe au niveau de l’analyse lexicale
Problème : étant donné un langage, comment décrire tous les motsacceptables? Comment décrire un langage?
⇒ Utiliser des expressions régulières (pour certains types de langages)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 5 / 31
Expressions régulières Définitions
Expressions régulières
IntroductionDéfinitionsLe théorème d’ArdenAutomates et expressions régulièresCaractérisation des langages réguliersAu delà des langages réguliers
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 6 / 31
Expressions régulières Définitions
Langages réguliers
Langages réguliers
L’ensemble R des langages réguliers sur un alphabet Σ est le plus petitensemble (qui contient le moins d’éléments) des langages satisfaisant lesconditions :
1. /0 ∈ R et {ε} ∈ R
2. ∀a ∈ Σ, {a} ∈ R
3. Si A,B ∈ R, alors A∪B ∈ R, A.B ∈ R et A∗ ∈ R
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 7 / 31
Expressions régulières Définitions
Expressions régulières
Expressions régulières
Les expressions régulières sur un alphabet Σ sont les règles formées parles règles suivantes :
1. /0 et ε sont des expressions régulières
2. ∀a ∈ Σ, a est une expression régulière
3. Si α et β sont des expressions régulières alors
(α+β)(α.β)(α)∗
sont des expressions régulières
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 8 / 31
Expressions régulières Définitions
Expressions régulières
Expressions régulières
Les expressions régulières sur un alphabet Σ sont les règles formées parles règles suivantes :
1. /0 et ε sont des expressions régulières
2. ∀a ∈ Σ, a est une expression régulière
3. Si α et β sont des expressions régulières alors
(α+β)(α.β)(α)∗
sont des expressions régulières
Priorité dans l’ordre décroissant : *, ., +
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 8 / 31
Expressions régulières Définitions
Expressions régulières
Langage représenté par une expression régulière
Soit r une expression régulière. L(r) est le langage représenté par r .
1. L( /0) = /0, L(ε) = {ε}2. ∀a ∈ Σ, L(a) = {a}
3. L(α,β) = L(α)∪L(β) = L(α)+L(β)
4. L(α.β) = L(α).L(β)
5. L((α)∗) = (L(α))∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 9 / 31
Expressions régulières Définitions
Expressions régulières
Théorème
Un langage est régulier si et seulement si il peut être dénoté par uneexpression régulière.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 10 / 31
Expressions régulières Définitions
Expressions régulières
Théorème
Un langage est régulier si et seulement si il peut être dénoté par uneexpression régulière.
Le langage L(M) engendré par l’automate M suivant est un langage régulier.
0 1a
a,b a,b
L(M) = (a+b)∗a(a+b)∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 10 / 31
Expressions régulières Définitions
Expressions régulières
Egalité d’expressions régulières
Deux expressions régulières sont égales si elles représentent le mêmelangage.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 11 / 31
Expressions régulières Définitions
Expressions régulières
Egalité d’expressions régulières
Deux expressions régulières sont égales si elles représentent le mêmelangage.
Exemple :r∗ = r∗ + ε car ε ∈ r∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 11 / 31
Expressions régulières Définitions
Propriétés des expressions régulières
Soient r , s et t trois expressions régulières sur le même alphabet Σ.
1. r + s = s + r
2. r + /0 = /0+ r = r
3. r + r = r
4. (r + s)+ t = r +(s + t) = r + s + t
5. r .ε = ε.r = r
6. r . /0 = /0.r = /07. (r .s).t = r .(s.t) = r .s.t
8. r .(s + t) = rs + rt
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 12 / 31
Expressions régulières Définitions
Propriétés des expressions régulières
Soient r , s et t trois expressions régulières sur le même 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+
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 13 / 31
Expressions régulières Le théorème d’Arden
Expressions régulières
IntroductionDéfinitionsLe théorème d’ArdenAutomates et expressions régulièresCaractérisation des langages réguliersAu delà des langages réguliers
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 14 / 31
Expressions régulières Le théorème d’Arden
Le théorème d’Arden
Théorème d’Arden
Une équation sur les langages de la forme X = AX +B, où ε 6∈ A, a unesolution unique X = A∗B
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 15 / 31
Expressions régulières Le théorème d’Arden
Le théorème d’Arden
Théorème d’Arden
Une équation sur les langages de la forme X = AX +B, où ε 6∈ A, a unesolution unique X = A∗B
Si ε ∈ A, A∗B est une solution mais ce n’est pas une solution unique. (A∗B estinclus dans toutes les solutions.)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 15 / 31
Expressions régulières Le théorème d’Arden
Le théorème d’Arden
Théorème d’Arden
Une équation sur les langages de la forme X = AX +B, où ε 6∈ A, a unesolution unique X = A∗B
Si ε ∈ A, A∗B est une solution mais ce n’est pas une solution unique. (A∗B estinclus dans toutes les solutions.)Démonstration :
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.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 15 / 31
Expressions régulières Automates et expressions régulières
Expressions régulières
IntroductionDéfinitionsLe théorème d’ArdenAutomates et expressions régulièresCaractérisation des langages réguliersAu delà des langages réguliers
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 16 / 31
Expressions régulières Automates et expressions régulières
Intérêt du théorème d’Arden
Grâce au Théorème d’Arden, il est possible de résoudre un systèmed’équations et d’obtenir une expression régulière qui représente le langagereconnu par l’automate.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 17 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : le théorème d’Arden
q0 q1 q2
b
a
a
b
a,b
L0 = aL0 +bL1
L1 = aL0 +bL2
L2 = aL2 +bL2 + ε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : le théorème d’Arden
q0 q1 q2
b
a
a
b
a,b
L0 = aL0 +bL1
L1 = aL0 +bL2
L2 = aL2 +bL2 + ε
L0 = aL0 +bL1
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : le théorème d’Arden
q0 q1 q2
b
a
a
b
a,b
L0 = aL0 +bL1
L1 = aL0 +bL2
L2 = aL2 +bL2 + ε
L0 = aL0 +bL1
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : le théorème d’Arden
q0 q1 q2
b
a
a
b
a,b
L0 = aL0 +bL1
L1 = aL0 +bL2
L2 = aL2 +bL2 + ε
L0 = aL0 +bL1
L0 = aL0 +b(aL0 +bL2)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : le théorème d’Arden
q0 q1 q2
b
a
a
b
a,b
L0 = aL0 +bL1
L1 = aL0 +bL2
L2 = aL2 +bL2 + ε
L0 = aL0 +bL1
L0 = aL0 +b(aL0 +bL2)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : le théorème d’Arden
q0 q1 q2
b
a
a
b
a,b
L0 = aL0 +bL1
L1 = aL0 +bL2
L2 = aL2 +bL2 + ε
L0 = aL0 +bL1
L0 = aL0 +b(aL0 +bL2)L2 = (a+b)L2 + ε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : le théorème d’Arden
q0 q1 q2
b
a
a
b
a,b
L0 = aL0 +bL1
L1 = aL0 +bL2
L2 = aL2 +bL2 + ε
L0 = aL0 +bL1
L0 = aL0 +b(aL0 +bL2)L2 = (a+b)L2 + ε, ε 6∈ (a+b)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : le théorème d’Arden
q0 q1 q2
b
a
a
b
a,b
L0 = aL0 +bL1
L1 = aL0 +bL2
L2 = aL2 +bL2 + ε
L0 = aL0 +bL1
L0 = aL0 +b(aL0 +bL2) L2 = (a+b)L2 + ε, ε 6∈ (a+b)
Arden : solution unique
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : le théorème d’Arden
q0 q1 q2
b
a
a
b
a,b
L0 = aL0 +bL1
L1 = aL0 +bL2
L2 = aL2 +bL2 + ε
L0 = aL0 +bL1
L0 = aL0 +b(aL0 +bL2) L2 = (a+b)L2 + ε, ε 6∈ (a+b)
Arden : solution unique
L2 = (a+b)∗ε = (a+b)∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : le théorème d’Arden
q0 q1 q2
b
a
a
b
a,b
L0 = aL0 +bL1
L1 = aL0 +bL2
L2 = aL2 +bL2 + ε
L0 = aL0 +bL1
L0 = aL0 +b(aL0 +bL2)L0 = aL0 +baL0 +bb(a+b)∗
L2 = (a+b)L2 + ε, ε 6∈ (a+b)
Arden : solution unique
L2 = (a+b)∗ε = (a+b)∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : le théorème d’Arden
q0 q1 q2
b
a
a
b
a,b
L0 = aL0 +bL1
L1 = aL0 +bL2
L2 = aL2 +bL2 + ε
L0 = aL0 +bL1
L0 = aL0 +b(aL0 +bL2)L0 = aL0 +baL0 +bb(a+b)∗
L0 = (a+ba)L0 +bb(a+b)∗
L2 = (a+b)L2 + ε, ε 6∈ (a+b)
Arden : solution unique
L2 = (a+b)∗ε = (a+b)∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : le théorème d’Arden
q0 q1 q2
b
a
a
b
a,b
L0 = aL0 +bL1
L1 = aL0 +bL2
L2 = aL2 +bL2 + ε
L0 = aL0 +bL1
L0 = aL0 +b(aL0 +bL2)L0 = aL0 +baL0 +bb(a+b)∗
L0 = (a+ba)L0 +bb(a+b)∗
ε 6∈ (a+ba)
L2 = (a+b)L2 + ε, ε 6∈ (a+b)
Arden : solution unique
L2 = (a+b)∗ε = (a+b)∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : le théorème d’Arden
q0 q1 q2
b
a
a
b
a,b
L0 = aL0 +bL1
L1 = aL0 +bL2
L2 = aL2 +bL2 + ε
L0 = aL0 +bL1
L0 = aL0 +b(aL0 +bL2)L0 = aL0 +baL0 +bb(a+b)∗
L0 = (a+ba)L0 +bb(a+b)∗
ε 6∈ (a+ba)
Arden : solution unique
L2 = (a+b)L2 + ε, ε 6∈ (a+b)
Arden : solution unique
L2 = (a+b)∗ε = (a+b)∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : le théorème d’Arden
q0 q1 q2
b
a
a
b
a,b
L0 = aL0 +bL1
L1 = aL0 +bL2
L2 = aL2 +bL2 + ε
L0 = aL0 +bL1
L0 = aL0 +b(aL0 +bL2)L0 = aL0 +baL0 +bb(a+b)∗
L0 = (a+ba)L0 +bb(a+b)∗
ε 6∈ (a+ba)
Arden : solution unique
L0 = (a+ba)∗bb(a+b)∗
L2 = (a+b)L2 + ε, ε 6∈ (a+b)
Arden : solution unique
L2 = (a+b)∗ε = (a+b)∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’états
Méthode d’élimination d’état (algorithme BMC)
Soit M un automate. On cherche une expression régulière dénotant le langagereconnu par M. On procède par suppression successive de transitions etd’états, en remplaçant d’autres étiquettes par des expressions étiquettes.
1. Ajouter à M deux nouveaux états, notés α et ω, et les transitions(α,ε,q0) pour q0 l’état initial; et (qn,ε,ω) pour qn ∈ F .
2. Itérer les réductions suivantes tant que possible :s’il existe deux transitions (qi ,x ,qj) et (qi ,y ,qj), les remplacer par latransition (qi ,x + y ,qj)supprimer un état q (autre que α et ω) et remplacer, pour tous les étatsp, 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 d’états,jusqu’à obtenir une seule transition (α,e,ω). Il est alors clair que e est uneexpression régulière pour le langage L(M).
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 19 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’états
0
1
2
abb
a
a
b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’états
α 0
1
2 ω
abb
a
a
b εε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’étatsaa∗b
α 0
1
2 ω
abb
a
a
b εε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’étatsaa∗baa∗b
α 0
1
2 ω
abb
a
a
b εε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’états
α 0 2 ω
aa∗bb aa∗b
b
εε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’étatsb∗aa∗b
α 0 2 ω
aa∗bb aa∗b
b
εε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’étatsb∗aa∗bbb∗aa∗b
α 0 2 ω
aa∗bb aa∗b
b
εε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’états
α 2 ω
aa∗b
bb∗aa∗b
εb∗aa∗b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’états
α 2 ω
aa∗b
bb∗aa∗b
εb∗aa∗b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’états
α 2 ω
aa∗b +bb∗aa∗b
εb∗aa∗b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’états
α 2 ω
aa∗b +bb∗aa∗b
εb∗aa∗b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’états
α ωb∗aa∗b(aa∗b +bb∗aa∗b)∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’états
α ω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+
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 21 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’états
α ω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)∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 21 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’états
α ω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)∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 21 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’états
α ω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)∗
= (b∗a+b)∗b∗a+b R. 15. : rr∗ = r∗r
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 21 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’états
α ω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)∗
= (b∗a+b)∗b∗a+b R. 15. : rr∗ = r∗r= (b +a+b)∗a+b R. 10. : (r∗s)∗r∗ = (r + s)∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 21 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’états
α ω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)∗
= (b∗a+b)∗b∗a+b R. 15. : rr∗ = r∗r= (b +a+b)∗a+b R. 10. : (r∗s)∗r∗ = (r + s)∗
= (a∗b)∗a+b r + s+r = s+r + r = r(s+ + ε) = s∗r
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 21 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’états
α ω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)∗
= (b∗a+b)∗b∗a+b R. 15. : rr∗ = r∗r= (b +a+b)∗a+b R. 10. : (r∗s)∗r∗ = (r + s)∗
= (a∗b)∗a+b r + s+r = s+r + r = r(s+ + ε) = s∗r= (a∗b)∗a∗ab R. 15. : r∗r = r+
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 21 / 31
Expressions régulières Automates et expressions régulières
Transformation d’un automate en ER : élimination d’états
α ω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)∗
= (b∗a+b)∗b∗a+b R. 15. : rr∗ = r∗r= (b +a+b)∗a+b R. 10. : (r∗s)∗r∗ = (r + s)∗
= (a∗b)∗a+b r + s+r = s+r + r = r(s+ + ε) = s∗r= (a∗b)∗a∗ab R. 15. : r∗r = r+
= (a+b)∗ab R. 10. : (r∗s)∗r∗ = (r + s)∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 21 / 31
Expressions régulières Automates et expressions régulières
Transformation d’une ER en automate
Théorème
Pour chaque expression régulière, il existe un automate fini qui reconnaît cetteexpression
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 22 / 31
Expressions régulières Automates et expressions régulières
Transformation d’une ER en automate : le théorème d’Arden
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 uniqueL3 = aL3 +bL1
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 31
Expressions régulières Automates et expressions régulières
Transformation d’une ER en automate : le théorème d’Arden
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 uniqueL3 = aL3 +bL1
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 31
Expressions régulières Automates et expressions régulières
Transformation d’une ER en automate : le théorème d’Arden
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 uniqueL3 = aL3 +bL1
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 31
Expressions régulières Automates et expressions régulières
Transformation d’une ER en automate : le théorème d’Arden
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 uniqueL3 = aL3 +bL1
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 31
Expressions régulières Automates et expressions régulières
Transformation d’une ER en automate : le théorème d’Arden
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 uniqueL3 = aL3 +bL1
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 31
Expressions régulières Automates et expressions régulières
Transformation d’une ER en automate : le théorème d’Arden
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 uniqueL3 = aL3 +bL1
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 31
Expressions régulières Automates et expressions régulières
Transformation d’une ER en automate : le théorème d’Arden
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 uniqueL3 = aL3 +bL1
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 31
Expressions régulières Automates et expressions régulières
Transformation d’une ER en automate : le théorème d’Arden
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 uniqueL3 = aL3 +bL1
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 31
Expressions régulières Automates et expressions régulières
Transformation d’une ER en automate : le théorème d’Arden
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 uniqueL3 = aL3 +bL1
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 31
Expressions régulières Automates et expressions régulières
Transformation d’une ER en automate : le théorème d’Arden
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 uniqueL3 = aL3 +bL1
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 31
Expressions régulières Automates et expressions régulières
Transformation d’une ER en automate : le théorème d’Arden
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 uniqueL3 = aL3 +bL1
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 31
Expressions régulières Automates et expressions régulières
Transformation d’une ER en automate : le théorème d’Arden
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 uniqueL3 = aL3 +bL1
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 31
Expressions régulières Automates et expressions régulières
Transformation d’une ER en automate : le théorème d’Arden
On obtientL = aL3 +bL1 +bL2
L1 = aL1 +bL1 + εL2 = aL2 + εL3 = aL3 +bL1
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 24 / 31
Expressions régulières Automates et expressions régulières
Transformation d’une ER en automate : le théorème d’Arden
On obtientL = aL3 +bL1 +bL2
L1 = aL1 +bL1 + εL2 = aL2 + εL3 = aL3 +bL1
0 2
3 1
a
b
b
a
b
a a,b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 24 / 31
Expressions régulières Caractérisation des langages réguliers
Expressions régulières
IntroductionDéfinitionsLe théorème d’ArdenAutomates et expressions régulièresCaractérisation des langages réguliersAu delà des langages réguliers
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 25 / 31
Expressions régulières Caractérisation des langages réguliers
Caractérisation des langages réguliers
Les langages réguliers peuvent être caractérisés de 4 façons. En utilisant :
1. Les expressions régulière
2. Les automates finis déterministes
3. Les automates finis non déterministes
4. Les grammaires régulières (linéaires à droite)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 26 / 31
Expressions régulières Caractérisation des langages réguliers
Caractérisation des langages réguliers
Les langages réguliers peuvent être caractérisés de 4 façons. En utilisant :
1. Les expressions régulière
2. Les automates finis déterministes
3. Les automates finis non déterministes
4. Les grammaires régulières (linéaires à droite)
Pour démontrer qu’un langage est régulier, il suffit donc de le décrire à l’aidede l’une de ces caractérisaton.Pour démonter des propriétés sur les langages réguliers, il est possible dechoisir la caractérisation la mieux adaptée.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 26 / 31
Expressions régulières Caractérisation des langages réguliers
Rappels sur les langages réguliers
Soient L, L1 et L2 trois langages réguliers. Les langages suivants sontréguliers :
L1.L2
L1 +L2
L∗
L
L1 ∪L2
LR (miroir de L)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 27 / 31
Expressions régulières Au delà des langages réguliers
Expressions régulières
IntroductionDéfinitionsLe théorème d’ArdenAutomates et expressions régulièresCaractérisation des langages réguliersAu delà des langages réguliers
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 28 / 31
Expressions régulières Au delà des langages réguliers
Observations de base
1. Tous les langages finis sont réguliers
2. Un langage non régulier comporte un nombre infini de motsAttention! La réciproque n’est pas vraie : Σ∗ est un langage infini etrégulier
3. Si un langage comporte un nombre infini de mots, il n’y a pas de borne àla taille des mots du langage
4. Tout langage régulier est accepté par un automate fini qui comporte unnombre fini d’états
5. Soit L un langage régulier infini, reconnu par un automate à m états. Soitw ∈ L tel que |w | ≥ m. Au cours de la reconnaissance de w parl’automate, il faut nécessairement passer au moins 2 fois par un mêmeétat.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 29 / 31
Expressions régulières Au delà des langages réguliers
Pumping theorem
Pumping theorem (théorème de pompage. théorème du gonflement)
Soit L un langage régulier infini sur l’alphabet Σ.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, xuny ∈ L
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 30 / 31
Expressions régulières Au delà des langages réguliers
Pumping theorem
Pumping theorem (théorème de pompage. théorème du gonflement)
Soit L un langage régulier infini sur l’alphabet Σ.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, xuny ∈ L
Autre formulation du théorème de pompage
Soit L un langage régulier infini sur l’alphabet Σ, et soit w ∈ L tel que|w | ≥ |Q|, où Q est l’ensemble des états d’un automate déterministeacceptant L.Alors, ∃x ,u,y ∈ Σ∗, avec u 6= ε, |xu| ≤ |Q|, et w = xuy .On a alors ∀k ≥ 0, xuk y ∈ L.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 30 / 31
Expressions régulières Au delà des langages réguliers
Pumping theorem
Pumping theorem (théorème de pompage. théorème du gonflement)
Soit L un langage régulier infini sur l’alphabet Σ.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, xuny ∈ L
Autre formulation du théorème de pompage
Soit L un langage régulier infini sur l’alphabet Σ, et soit w ∈ L tel que|w | ≥ |Q|, où Q est l’ensemble des états d’un automate déterministeacceptant L.Alors, ∃x ,u,y ∈ Σ∗, avec u 6= ε, |xu| ≤ |Q|, et w = xuy .On a alors ∀k ≥ 0, xuk y ∈ L.
On utilise ces théorèmes pour montrer qu’un langage n’est pas régulier.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 30 / 31
Expressions régulières Au delà des langages réguliers
Montrer qu’un langage n’est pas régulier : exemple
Soit Σ = {a,b}, L = {anbn| n ≥ 0}. Supposons L régulier.Il existe donc p ≥ 0 tel que w ∈ L et |w | ≥ p, et il est possible de décomposerw = xuy . On sait de plus que ∀n ≥ 0, xuny ∈ L.Soit w = apbp = xuy . On a bien |w | = 2p ≥ p. Il y a trois possibilités :
1. u ∈ a∗ : w = ar︸︷︷︸
x
as︸︷︷︸
u
atbp︸︷︷︸
y
, avec r + s + t = p et s > 0.
On a donc ∀n ≥ 0, xuny ∈ L. Prenons n = 0. On a ar atbp 6∈ L.Contradiction.
2. u ∈ b∗. Raisonnement identique.
3. u = asbt : w = ar︸︷︷︸
x
asbt︸︷︷︸
u
bq︸︷︷︸
y
, avec r + s = t +q = p.
On a donc ∀n ≥ 0, xuny ∈ L. Prenons n = 2. On a ar asbtasbtbq 6∈ L.Contradiction.
Le théorème de gonflement n’est pas vérifié. Ce langage n’est donc pas unlangage régulier.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 31
Grammaires Hors-Contexte
Grammaires Hors-Contexte
DéfinitionsGrammaires réduitesGrammaires propresFormes normales
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 2 / 32
Grammaires Hors-Contexte Définitions
Grammaires Hors-Contexte
DéfinitionsGrammaires réduitesGrammaires propresFormes normales
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 3 / 32
Grammaires Hors-Contexte Définitions
Grammaire Hors-Contexte
Grammaire Hors-Contexte ou algébrique
Une grammaire G = 〈V ,Σ,P,S〉 est hors-contexte (ou algébrique ) si
V est un alphabet
Σ ⊆ V est l’ensemble des symboles terminaux
V \Σ est l’ensemble des symboles non terminaux
S ∈ V \Σ est le symbole de départ
P ⊆ ((V \Σ)×V ∗) est l’ensemble (fini) de règles de production
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 4 / 32
Grammaires Hors-Contexte Définitions
Grammaire Hors-Contexte
Grammaire Hors-Contexte ou algébrique
Une grammaire G = 〈V ,Σ,P,S〉 est hors-contexte (ou algébrique ) si
V est un alphabet
Σ ⊆ V est l’ensemble des symboles terminaux
V \Σ est l’ensemble des symboles non terminaux
S ∈ V \Σ est le symbole de départ
P ⊆ ((V \Σ)×V ∗) est l’ensemble (fini) de règles de production
Langage algébrique
Un langage L est algébrique s’il existe une grammaire algébrique telle que
L(G) = L
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 4 / 32
Grammaires Hors-Contexte Définitions
Grammaire Hors-Contexte
Conséquence : Tout langage rationnel est algébrique.ATTENTION: la réciproque est fausse
Un langage algébrique non rationneln’est pas reconnu par un automate finin’est pas décrit par une expression régulièreil n’existe pas de grammaire régulière pour l’engendrer.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 5 / 32
Grammaires Hors-Contexte Définitions
Rappel : hierarchie de Chomsky
Type 0 Pas de restriction
Type 1 Grammaires contextuelles (ou sensibles au contrôle)(Context-sensitive)
α → β, |α| ≤ |β|, α ∈ V+
Type 2 Grammaires hors-contexte (Context-Free)
A → β
Type 3 Grammaires régulières (ou linéaires à droite)
A → wB A,B ∈ V \Σ non terminauxA → w w ∈ Σ∗ terminaux
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 6 / 32
Grammaires Hors-Contexte Définitions
Rappel : hierarchie de Chomsky
T0
T1Context sensitive
Machine de Turing
T2Context Free
Automate à pile
T3Réguliers
Automate fini
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 7 / 32
Grammaires Hors-Contexte Définitions
Grammaire hors contexte : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ = {a,b}
V \Σ = {S}
Axiome S
3 règles de production :S → aSbS → ε
L(G) = {anbn|n ≥ 0}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 8 / 32
Grammaires Hors-Contexte Définitions
Grammaire hors contexte : langage PASCAL
instruction → ε|variable := expression|begin liste-instructions end|if expression then instruction|if expression then instruction else instruction|case expression of liste-case end|while expression do instruction|repeat instruction until expression|for varid := liste-pour do instruction|identificateur -procedure|identificateur -procedure(liste-expressions)|goto etiquette|with liste-variables-record do instruction|etiquette : instruction
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 9 / 32
Grammaires Hors-Contexte Définitions
Grammaire hors contexte : langage PASCAL
instruction → ε|variable := expression|begin liste-instructions end|if expression then instruction|if expression then instruction else instruction|case expression of liste-case end|while expression do instruction|repeat instruction until expression|for varid := liste-pour do instruction|identificateur -procedure|identificateur -procedure(liste-expressions)|goto etiquette|with liste-variables-record do instruction|etiquette : instruction
Symboles terminaux : begin , if , then , else , end , case , of , while ...
Les variables (ou symboles non terminaux) sont définies dans d’autres règles
⇒ Grammaire Pascal : plus de 300 règles
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 9 / 32
Grammaires Hors-Contexte Définitions
Analyse syntaxique
Les langages de programmation sont des langages algébriques. Ils sontspécifiés par des grammaires algébriques
Dans sa phase d’analyse syntaxique, un compilateur teste si unprogramme est bien un élément du langage de programmation danslequel il est écrit.
Pour un programme donné, le compilateur essaie de reconstituer l’arbrede dérivation (ou arbre syntaxique) de bas en haut en procédant parréductions successives : on parle alors d’analyse ascendante.
A l’issue de cette phase, on sait si notre programme est syntaxiquementcorrect ou pas
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 10 / 32
Grammaires Hors-Contexte Grammaires réduites
Grammaires Hors-Contexte
DéfinitionsGrammaires réduitesGrammaires propresFormes normales
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 11 / 32
Grammaires Hors-Contexte Grammaires réduites
Grammaires réduites
Symbole non terminal utile
Soit G = 〈V ,Σ,P,S〉. Un symbole non terminal X ∈ V \Σ est
Productif si LG(X) 6= /0Accessible s’il existe des mots α, β tels que S
∗−→G
αXβ
Utile s’il est productif, qu’il existe des mots α, β tels que S∗−→G
αXβ et tels
que α et β ne contiennent que des symboles non terminaux productifs.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 12 / 32
Grammaires Hors-Contexte Grammaires réduites
Grammaires réduites
Symbole non terminal utile
Soit G = 〈V ,Σ,P,S〉. Un symbole non terminal X ∈ V \Σ est
Productif si LG(X) 6= /0Accessible s’il existe des mots α, β tels que S
∗−→G
αXβ
Utile s’il est productif, qu’il existe des mots α, β tels que S∗−→G
αXβ et tels
que α et β ne contiennent que des symboles non terminaux productifs.
Grammaire réduite
Une grammaire est réduite si tous ses symboles non terminaux sont utiles.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 12 / 32
Grammaires Hors-Contexte Grammaires réduites
Grammaires réduites
Symbole non terminal utile
Soit G = 〈V ,Σ,P,S〉. Un symbole non terminal X ∈ V \Σ est
Productif si LG(X) 6= /0Accessible s’il existe des mots α, β tels que S
∗−→G
αXβ
Utile s’il est productif, qu’il existe des mots α, β tels que S∗−→G
αXβ et tels
que α et β ne contiennent que des symboles non terminaux productifs.
Grammaire réduite
Une grammaire est réduite si tous ses symboles non terminaux sont utiles.
En supprimant les variables inutiles dans une grammaire, on ne change pas lelangage engendré – sauf si l’axiome lui-même est inutile, c’est-à-dire si lagrammaire engendre le langage vide.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 12 / 32
Grammaires Hors-Contexte Grammaires réduites
Algorithme de calcul des symboles non terminaux productifs
1. Calculer l’ensemble V0 des symboles non terminaux X pour lesquels ilexiste une règle X → α, α ∈ Σ∗
2. Calculer l’ensemble Vi+1 formé de Vi et des symboles non terminaux Xpour lesquels il existe une règle X → α, α ∈ (Σ∪Vi)
∗
3. Arrêter lorsque Vi+1 = Vi . Cet ensemble est l’ensemble des symbolesnon terminaux productifs.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 13 / 32
Grammaires Hors-Contexte Grammaires réduites
Algorithme de calcul des symboles non terminauxaccessibles
1. Poser W0 = {S}
2. Calculer l’ensemble Wi+1 formé de Wi et des symboles non terminaux Xpour lesquels il existe une règle Y → αXβ, avec Y ∈ Wi
3. Arrêter lorsque Wi+1 = Wi . Cet ensemble est l’ensemble des symbolesnon terminaux accessibles.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 14 / 32
Grammaires Hors-Contexte Grammaires réduites
Algorithme de réduction d’une grammaire
1. Déterminer l’ensemble des symboles non terminaux productifs
2. Supprimer les symboles non terminaux non productifs, ainsi que lesrègles dans lesquels ils figurent
3. Si l’axiome S est improductif, la grammaire réduite a pour seul symbolenon terminal S, et un ensemble de règles vide
4. Si l’axiome S est productif, déterminer tous les symboles non terminauxaccessibles à partir de S. Ceci permet d’obtenir l’ensemble des symbolesnon terminaux utiles.
5. Supprimer tous les autres symboles non terminaux, ainsi que les règlesdans lesquelles ils figurent.
La grammaire ainsi obtenue est réduite.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 15 / 32
Grammaires Hors-Contexte Grammaires réduites
Algorithme de réduction d’une grammaire : exemple
On considère la grammaire ayant les règles suivantes :
S → a|XX → XYY → b
Symboles non terminaux productifs : {S,Y}. X est donc improductif, onpeut le supprimer
On obtient la grammaireS → aY → b
L’ensemble des symboles non terminaux accessibles est {S}. Onsupprime Y
S → a
La grammaire est réduite.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 16 / 32
Grammaires Hors-Contexte Grammaires réduites
Algorithme de réduction d’une grammaire : exemple 2
On considère la grammaire ayant les règles suivantes :
S → XYZWX → cXY → abZ → cYa|WSWW → ε
Symboles non terminaux productifs : {Y ,Z ,W}. S est donc improductif.
La grammaire réduite a donc pour seul symbole non terminal S, et unensemble de règles vide
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 17 / 32
Grammaires Hors-Contexte Grammaires propres
Grammaires Hors-Contexte
DéfinitionsGrammaires réduitesGrammaires propresFormes normales
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 32
Grammaires Hors-Contexte Grammaires propres
Grammaires propres
Une grammaire propre ne contient :
Pas de règle unitaire (ou renommage ): G ne contient pas de productionde la forme A → B, avec A,B ∈ V \Σ (symboles non terminaux)
Pas de ε-règle : G ne contient pas de règle du type A → ε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 19 / 32
Grammaires Hors-Contexte Grammaires propres
Grammaires propres
Théorème
Tout langage algébrique L = L\{ε} peut être engendré par une grammairepropre.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 32
Grammaires Hors-Contexte Grammaires propres
Grammaires propres
Théorème
Tout langage algébrique L = L\{ε} peut être engendré par une grammairepropre.
Un symbole non terminal X est annulable si X∗−→ ε
X est annulable si :Il existe une règle X → ε, ouIl existe une règle X → Y1 . . .Yn, avec Y1, . . . ,Yn des symboles nonterminaux annulables
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 32
Grammaires Hors-Contexte Grammaires propres
Algorithme de calcul des symboles non terminauxannulables
1. Calculer l’ensemble N0 des symboles non terminaux X telles qu’il existeune règle X → ε
2. Calculer l’ensemble Ni+1 formé de Ni et des symboles non terminaux Xtelles qu’il existe une règle X → α avec α ∈ N∗
i
3. Arrêter lorsque Ni+1 = Ni . Cet ensemble est l’ensemble des symbolesnon terminaux annulables.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 21 / 32
Grammaires Hors-Contexte Grammaires propres
Algorithme d’élimination des ε-règles
1. Calculer l’ensemble N des symboles non terminaux annulables
2. Remplacer chaque règle X → α par toutes les règles obtenues enremplaçant, de toutes les façons possibles, les occurrences de symbolesnon terminaux annulables par le mot vide. S’il y a n occurrences desymboles non terminaux annulables dans α, cela donne 2n règles.
3. Supprimer les ε-règles. La grammaire obtenue est équivalente à lagrammaire de départ au mot vide près, et est sans ε-règle.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 22 / 32
Grammaires Hors-Contexte Grammaires propres
Algorithme d’élimination des ε-règles : exemple
On considère la grammaire ayant les règles suivantes :S → aSbS|ε
Remplacer le symbole non terminal S par le mot vide de toutes lesfaçons possibles dans aSbS donne les 4 mots aSbS, abS, aSb et ab
La grammaire propre obtenue estS → aSbS|abS|aSb|ab
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 32
Grammaires Hors-Contexte Grammaires propres
Algorithme d’élimination des ε-règles : exemple 2
On considère la grammaire ayant les règles suivantes :S → aSb|SS|ε
La première règle donne S → aSb et S → ab
La seconde règle donne S → SSLa règle S → S générée deux fois par notre algorithme est inutile
La grammaire propre obtenue estS → aSb|ab|SS
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 24 / 32
Grammaires Hors-Contexte Grammaires propres
Algorithme d’élimination des règles unitaires
1. Calculer la relation ≥ définie par X ≥ Y ssi X∗−→ Y
2. Calculer la relation ∼ définie par X ∼ Y ssi X ≥ Y et Y ≥ X
3. Choisir un symbole non terminal par classe d’équivalence, et remplacertoutes les occurrences de toutes les symboles non terminaux équivalentspar ce représentant. Supprimer toutes les règles unitaires entre symbolesnon terminaux équivalents.
4. En commançant par les symboles non terminaux qui sont minimalesdans l’ordre ≥, remplacer les règles unitaires X → Y par toutes lesrègles X → α, pour tous les α tels que Y → α.
La grammaire obtenue est sans règles unitaires.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 25 / 32
Grammaires Hors-Contexte Grammaires propres
Algorithme d’élimination des règles-unitaires : exemple
On considère la grammaire des expressions arithmétiques ayant lesrègles suivantes :
E → E +T |TT → T ∗F |FF → (E)|a|b|c
Il y a deux règles unitaires : E → T et T → F
L’ordre obtenu est E > T > F
On considère les symboles non terminaux en commançant par celles quisont minimales dans ≥
On substitue à T → F les règles T → (E)|a|b|cOn substitue à E → T les règles E → T ∗F |(E)|a|b|c
On obtient :E → E +T |T ∗F |(E)|a|b|cT → T ∗F |(E)|a|b|cF → (E)|a|b|c
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 26 / 32
Grammaires Hors-Contexte Formes normales
Grammaires Hors-Contexte
DéfinitionsGrammaires réduitesGrammaires propresFormes normales
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 27 / 32
Grammaires Hors-Contexte Formes normales
Forme normale de Chomsky
Forme normale de Chomsky
Une grammaire algébrique G = 〈V ,Σ,P,S〉 est sous la forme normale deChomsky si toute production est de la forme :
A → aA → BC
avec A,B,C ∈ V \Σ, et a ∈ Σ
Intérêt de la forme normale de Chomsky:
Les arbres d’analyse correspondants seront des arbres binaires
Disposer d’une forme normale pour les grammaires permet de simplifierles développements de certaines preuves
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 28 / 32
Grammaires Hors-Contexte Formes normales
Algorithme de mise en forme normale de Chomsky
On part d’une grammaire propre.
1. On introduit un nouvel ensemble de symboles non terminauxZ = {Za|a ∈ Σ}
2. On ajoute les règles Za → a pour tout a ∈ Σ
3. Toute règle X → α où α est de longueur 1 est conservéeNote puisque la grammaire est propre, α est un symbole non terminal
4. Toute règle X → α où |α| ≥ 2 est transformée en 2 étapes :i) Tout symbole terminal a dans α est remplacé par le symbole non terminal
Za
ii) Si |α| > 2, soit α = Y1 . . .Yp. On introduit p−2 nouveaux symboles nonterminaux T1, . . . ,Tp−2 et on remplace la règle X → Y1 . . .Yp par les p−1règles
X → Y1T1, T1 → Y2T2, . . . , Tp−3 → Yp−2Tp−2, Tp−2 → Yp−1Yp
La grammaire obtenue est en forme normale de Chomsky
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 29 / 32
Grammaires Hors-Contexte Formes normales
Algorithme de mise en forme normale de Chomsky :exemple
On considère la grammaire propre ayant les règles suivantes :
S → aSbS|abS|aSb|ab
On introduit d’abord deux nouveaux symboles non terminaux Za et Zb, eton remplace les symboles terminaux. La grammaire devient
S → ZaSZbS|ZaZbS|ZaSZb|ZaZb; Za → a; Zb → b
On considère à présent les règles suivantes :S → ZaSZbS, que l’on transforme en S → ZaT1; T1 → ST2; T2 → ZbSS → ZaZbS, que l’on transforme en S → ZaT2; T2 → ZbSS → ZaSZb, que l’on transforme en S → ZaT3; T3 → SZb
La grammaire devient sous forme normale de Chomsky :
S → ZaT1|ZaT2|ZaT3|ZaZb
T1 → ST2; T2 → ZbS; T3 → SZb
Za → a; Zb → b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 30 / 32
Grammaires Hors-Contexte Formes normales
Forme normale de Greibach
Forme normale de Greibach
Une grammaire algébrique G = 〈V ,Σ,P,S〉 est sous la forme normale deGreibach si toute production est de la forme :
A → aA1 . . .An
A → a
avec A,Ai ∈ V \Σ, et a ∈ Σ
Intérêt de la forme normale de Greibach:
A chaque dérivation, on détermine un préfixe de plus en plus long forméuniquement de symboles non terminaux
Permet de construire plus aisément des analyseurs permettant deretrouver l’arbre d’analyse associé à un mot généré
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 32
Grammaires Hors-Contexte Formes normales
Mise en forme normale de Greibach : exemple simple
On considère la grammaire propre ayant les règles suivantes :
S → aS → S +SS → S ∗SS → (S)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 32
Grammaires Hors-Contexte Formes normales
Mise en forme normale de Greibach : exemple simple
On considère la grammaire propre ayant les règles suivantes :
S → aS → S +SS → S ∗SS → (S)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 32
Grammaires Hors-Contexte Formes normales
Mise en forme normale de Greibach : exemple simple
On considère la grammaire propre ayant les règles suivantes :
S → aS → S +SS → S ∗SS → (S)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 32
Grammaires Hors-Contexte Formes normales
Mise en forme normale de Greibach : exemple simple
On considère la grammaire propre ayant les règles suivantes :
S → aS → a+SS → (S)+SS → S ∗SS → (S)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 32
Grammaires Hors-Contexte Formes normales
Mise en forme normale de Greibach : exemple simple
On considère la grammaire propre ayant les règles suivantes :
S → aS → a+SS → (S)+SS → S ∗SS → (S)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 32
Grammaires Hors-Contexte Formes normales
Mise en forme normale de Greibach : exemple simple
On considère la grammaire propre ayant les règles suivantes :
S → aS → a+SS → (S)+SS → a∗SS → (S)∗SS → (S)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 32
Grammaires Hors-Contexte Formes normales
Mise en forme normale de Greibach : exemple simple
On considère la grammaire propre ayant les règles suivantes :
S → aS → a+SS → (S)+SS → a∗SS → (S)∗SS → (S)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 32
Grammaires Hors-Contexte Formes normales
Mise en forme normale de Greibach : exemple simple
On considère la grammaire propre ayant les règles suivantes :
S → aS → a+SS → (S)+SS → a∗SS → (S)∗SS → (S)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 32
Grammaires Hors-Contexte Formes normales
Mise en forme normale de Greibach : exemple simple
On considère la grammaire propre ayant les règles suivantes :
S → aS → a+SS → (S)+SS → a∗SS → (S)∗SS → (S)A → +
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 32
Grammaires Hors-Contexte Formes normales
Mise en forme normale de Greibach : exemple simple
On considère la grammaire propre ayant les règles suivantes :
S → aS → aASS → (S)+SS → a∗SS → (S)∗SS → (S)A → +
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 32
Grammaires Hors-Contexte Formes normales
Mise en forme normale de Greibach : exemple simple
On considère la grammaire propre ayant les règles suivantes :
S → aS → aASS → (S)ASS → a∗SS → (S)∗SS → (S)A → +
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 32
Grammaires Hors-Contexte Formes normales
Mise en forme normale de Greibach : exemple simple
On considère la grammaire propre ayant les règles suivantes :
S → aS → aASS → (S)ASS → aBSS → (S)BSS → (S)A → +B → ∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 32
Grammaires Hors-Contexte Formes normales
Mise en forme normale de Greibach : exemple simple
On considère la grammaire propre ayant les règles suivantes :
S → aS → aASS → (S)ASS → aBSS → (S)BSS → (S)A → +B → ∗
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 32
Grammaires Hors-Contexte Formes normales
Mise en forme normale de Greibach : exemple simple
On considère la grammaire propre ayant les règles suivantes :
S → aS → aASS → (SCASS → aBSS → (SCBSS → (SCA → +B → ∗C → )
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 32
Grammaires Hors-Contexte Formes normales
Mise en forme normale de Greibach : exemple simple
On considère la grammaire propre ayant les règles suivantes :
S → aS → aASS → (SCASS → aBSS → (SCBSS → (SCA → +B → ∗C → )
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 32
Automates à pile
Automates à pile
IntroductionRappels sur les pilesAutomates à pile : définitionAutomates à pile : configurationsLes critères d’acceptationAutomates à pile déterministesAutomates à pile et langages algébriquesGrammaire algébrique vers automate à pileAutomate à pile vers grammaire algébriqueCloture des langages algébriques
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 2 / 61
Automates à pile Introduction
Automates à pile
IntroductionRappels sur les pilesAutomates à pile : définitionAutomates à pile : configurationsLes critères d’acceptationAutomates à pile déterministesAutomates à pile et langages algébriquesGrammaire algébrique vers automate à pileAutomate à pile vers grammaire algébriqueCloture des langages algébriques
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 3 / 61
Automates à pile Introduction
Introduction
Grammaires hors contexte : génèrent des langages algébriques
Les automates finis acceptent (exactement) les langages réguliers
Langages réguliers : sous-ensemble strict des langages algébriques
Comment obtenir des automates qui acceptent les langages algébriquesnon réguliers?
Un automate fini dispose par définition d’une mémoire finie⇒ L’ajout d’une pile permet d’étendre les possibilités de mémorisation
→ Garder en mémoire les étapes de calculs passées→ Conditionner les étapes de calculs à venir
ցր
cba
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 4 / 61
Automates à pile Introduction
Introduction
Automate fini : défini principalement à partir de sa fonction de transition
Automate à pile : enrichi la fonction de transition par1. un nouvel alphabet fini qui contient les symboles qui peuvent être empilés
et dépilés2. des transitions conditionnées par le symbole en haut de la pile3. lors d’une transition dans l’automate, il est possible d’empiler ou de dépiler
un symbole dans la pile
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 5 / 61
Automates à pile Introduction
Automate à pile : un exemple introductif
Soit l’automate suivant qui reconnaît le langage {anbm|n,m > 0}
0 1 2a b
a b
Cet automate ne peut pas reconnaitre le langage {anbm|n = m > 0} :impossible de compter le nombre de a vus.
⇒ Automate à pile :Empiler un symbole (T ) à chaque passage dans la boucle de l’état 1Dépiler un symbole à chaque passage dans la boucle de l’état 2Calcul réussi : pile vide
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 6 / 61
Automates à pile Introduction
Automate à pile : un exemple introductif
0 1 2a b
a b
Trace du calcul pour w = aaabbb
Entrée Etat Pile
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 7 / 61
Automates à pile Introduction
Automate à pile : un exemple introductif
0 1 2a b
a b
Trace du calcul pour w = aaabbb
Entrée Etat Pileaaabbb 0 Pile vide
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 7 / 61
Automates à pile Introduction
Automate à pile : un exemple introductif
0 1 2a b
a b
Trace du calcul pour w = aaabbb
Entrée Etat Pileaaabbb 0 Pile videaabbb 1 Pile vide
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 7 / 61
Automates à pile Introduction
Automate à pile : un exemple introductif
0 1 2a b
a b
Trace du calcul pour w = aaabbb
Entrée Etat Pileaaabbb 0 Pile videaabbb 1 Pile videabbb 1 T
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 7 / 61
Automates à pile Introduction
Automate à pile : un exemple introductif
0 1 2a b
a b
Trace du calcul pour w = aaabbb
Entrée Etat Pileaaabbb 0 Pile videaabbb 1 Pile videabbb 1 Tbbb 1 TT
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 7 / 61
Automates à pile Introduction
Automate à pile : un exemple introductif
0 1 2a b
a b
Trace du calcul pour w = aaabbb
Entrée Etat Pileaaabbb 0 Pile videaabbb 1 Pile videabbb 1 Tbbb 1 TTbb 2 TT
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 7 / 61
Automates à pile Introduction
Automate à pile : un exemple introductif
0 1 2a b
a b
Trace du calcul pour w = aaabbb
Entrée Etat Pileaaabbb 0 Pile videaabbb 1 Pile videabbb 1 Tbbb 1 TTbb 2 TTb 2 T
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 7 / 61
Automates à pile Introduction
Automate à pile : un exemple introductif
0 1 2a b
a b
Trace du calcul pour w = aaabbb
Entrée Etat Pileaaabbb 0 Pile videaabbb 1 Pile videabbb 1 Tbbb 1 TTbb 2 TTb 2 Tε 2 Pile vide
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 7 / 61
Automates à pile Introduction
Automate à pile
De manière imagée, un automate à pile est composé de trois unités :
Une unité centrale, dont la configuration est symbolisée par un état
Un canal de lecture qui contient un mot à analyser
Un canal de lecture-écriture qui est organisé en pile, et qui sert à contenirde l’information auxiliaire, en quantité non bornée.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 8 / 61
Automates à pile Rappels sur les piles
Automates à pile
IntroductionRappels sur les pilesAutomates à pile : définitionAutomates à pile : configurationsLes critères d’acceptationAutomates à pile déterministesAutomates à pile et langages algébriquesGrammaire algébrique vers automate à pileAutomate à pile vers grammaire algébriqueCloture des langages algébriques
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 9 / 61
Automates à pile Rappels sur les piles
Rappels sur les piles
Pile : Type P
LIFO (Last In First Out)constante pilevide ∈ Pempiler : E×P→ Pdepiler : P \{pilevide}→ Psommet : P \{pilevide}→ Eest_vide : P→ IB
ց րep...
e2
e1
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 10 / 61
Automates à pile Rappels sur les piles
Piles et automates à pile
On introduit un alphabet de pile Γ
Une pile p est un mot p ∈ Γ∗
Opérations sur les piles :Tester si la pile est vide : déterminer si p = εEmpiler un élément x ∈ Γ dans une pile p ∈ Γ∗ : p→ xpSi la pile est non vide, elle est de la forme xp, où x ∈ Γ et p ∈ Γ∗. Dépilerl’élément x : xp→ pOn peut étendre ces notions à des mots. Ainsi, empiler un motu = u1u2 . . .ul revient à empiler successivement les lettres u1, . . . ,ul ∈ Γ.Partant de la pile p ∈ Pi∗, on obtient
p→ u1p→ u2u1p→ . . .→ ul . . .u2u1p = uRp
Attention : On obtient le miroir du mot u dans la pile
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 11 / 61
Automates à pile Automates à pile : définition
Automates à pile
IntroductionRappels sur les pilesAutomates à pile : définitionAutomates à pile : configurationsLes critères d’acceptationAutomates à pile déterministesAutomates à pile et langages algébriquesGrammaire algébrique vers automate à pileAutomate à pile vers grammaire algébriqueCloture des langages algébriques
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 12 / 61
Automates à pile Automates à pile : définition
Automate à pile
Automate à pile
Un automate à pile non déterministe (en anglais pushdown automaton ) estun septuplet M = (Σ,Γ,Z0,Q,q0,F ,δ), où
Σ est l’alphabet d’entrée
Γ est l’alphabet de pile
Z0 ∈ Γ est le symbole initial de la pile
Q est un ensemble fini d’états
q0 ∈ Q est l’état initial de l’automate
F ⊆ Q est l’ensemble des état finaux (on peut avoir F = /0)
δ est une fonction de Q×(Σ∪{ε})×(Γ∪{ε}) vers l’ensemble des partiesde Q×(Γ∪{ε})
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 13 / 61
Automates à pile Automates à pile : définition
Automate à pile
Automate à pile : automate fini non-déterministe, à la différence près quela fonction de transition δ comporte trois arguments
l’état courantle symbole d’entrée courantle symbole courant en haut de la pile, appartenant à l’alphabet de pile.
Si (r ,T )∈ δ(q,a,Y ) (on peut écrire aussi (q,a,Y , r ,T ) ∈ δ ou(q,a,Y )→ (r ,T )), alors l’utilisation de cette transition conduira à :
dépiler YSi Y = ε la transition a lieu indépendamment du symbole en haut de pile, quireste inchangée
empiler TSi T = ε, aucun symbole n’est empilé
lire le symbole atransiter dans l’état r
Automate fini “traditionnel” est un automate à pile particulier, défini sur unalphabet de pile vide (Γ = /0) et dont toutes les transitions laissent la pileinchangée.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 14 / 61
Automates à pile Automates à pile : définition
Automate à pile
Transition (r ,T )∈ δ(q,a,Y )dépiler Y
Si Y = ε la transition a lieu indépendamment du symbole en haut de pile, quireste inchangée
empiler TSi T = ε, aucun symbole n’est empilé
lire le symbole atransiter dans l’état r
q ra,Y /T
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 15 / 61
Automates à pile Automates à pile : définition
Automate à pile : exemple
Soit l’automate à pile suivant qui reconnaît le langage {anbn|n > 0}
0 1 2a, ε/ε b, ε/ε
a, ε/T b, T /ε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 16 / 61
Automates à pile Automates à pile : définition
Automate à pile : exemple
Soit l’automate à pile suivant qui reconnaît le langage {w ∈ Σ∗|w est unpalindrome}
0 1a, ε/ε
b, ε/ε
ε, ε/ε
a, ε/Ta
b, ε/Tb
a, Ta/ε
b, Tb/ε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 17 / 61
Automates à pile Automates à pile : configurations
Automates à pile
IntroductionRappels sur les pilesAutomates à pile : définitionAutomates à pile : configurationsLes critères d’acceptationAutomates à pile déterministesAutomates à pile et langages algébriquesGrammaire algébrique vers automate à pileAutomate à pile vers grammaire algébriqueCloture des langages algébriques
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 61
Automates à pile Automates à pile : configurations
Exécution et configurations
Une exécution est une suite de configurations.
Pour un automate fini, une configuration est :mot restant à lire m ∈ Σ∗
état courant q ∈ QExemple : (abbb,q)
Pour un automate à pile, une configuration est définie par :le mot restant à lire m ∈ Σ∗
l’état courant q ∈ Qle contenu de la pile, lu du bas vers le haut de la pile.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 19 / 61
Automates à pile Automates à pile : configurations
Configurations
Configuration
La pile contient, à tout moment, un mot h sur Γ. L’automate se trouve dans unétat q, et doit lire encore le mot m ∈ Σ∗
Le couple (m,q,h) est appelé une configuration de l’automate.
L’ensemble des configurations est Σ∗×Q×Γ∗.
La configuration initiale (m,q0,Z0) ∈ Σ∗×Q×Γ est formée de l’étatinitial et du symbole initial de la pile
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 61
Automates à pile Automates à pile : configurations
Configurations
Configuration
La pile contient, à tout moment, un mot h sur Γ. L’automate se trouve dans unétat q, et doit lire encore le mot m ∈ Σ∗
Le couple (m,q,h) est appelé une configuration de l’automate.
L’ensemble des configurations est Σ∗×Q×Γ∗.
La configuration initiale (m,q0,Z0) ∈ Σ∗×Q×Γ est formée de l’étatinitial et du symbole initial de la pile
Un “mouvement” de l’automate représente le passage d’une configuration àune autre.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 61
Automates à pile Automates à pile : configurations
Passage d’une configuration à une autre
Le passage d’une configuration c1 à une configuration c2 dans unautomate M s’écrit :
c1 ⊢M c2
On note ⊢∗M la clôture réflexive et transitive de ⊢M
Il y a deux modes de transition pour changer de configuration :Sur une Σ-transitionSur une ε-transition
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 21 / 61
Automates à pile Automates à pile : configurations
Σ-transition : exemple
Transition (q1,b,TA)→ (q1,TBTA)
Configuration (bba,q1,TAZ0)
On aura alors :
(bba,q1,TAZ0) ⊢M (ba,q1,TBTAZ0)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 22 / 61
Automates à pile Automates à pile : configurations
ε-transition : exemple
Transition (q1,ε,TA)→ (q2,TA)
Configuration (bba,q1,TAZ0)
On aura alors :(bba,q1,TAZ0) ⊢M (bba,q2,TAZ0)
On ne touche pas à la tête de lecture
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 61
Automates à pile Automates à pile : configurations
Transitions : exemple
Soit l’automate à pile suivant qui reconnaît le langage {anbn|n > 0}
0 1 2a, ε/ε b, ε/ε
a, ε/T b, T /ε
(aabb,0,Z0)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 24 / 61
Automates à pile Automates à pile : configurations
Transitions : exemple
Soit l’automate à pile suivant qui reconnaît le langage {anbn|n > 0}
0 1 2a, ε/ε b, ε/ε
a, ε/T b, T /ε
(aabb,0,Z0) ⊢M (abb,1,Z0)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 24 / 61
Automates à pile Automates à pile : configurations
Transitions : exemple
Soit l’automate à pile suivant qui reconnaît le langage {anbn|n > 0}
0 1 2a, ε/ε b, ε/ε
a, ε/T b, T /ε
(aabb,0,Z0) ⊢M (abb,1,Z0)⊢M (bb,1,TZ0)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 24 / 61
Automates à pile Automates à pile : configurations
Transitions : exemple
Soit l’automate à pile suivant qui reconnaît le langage {anbn|n > 0}
0 1 2a, ε/ε b, ε/ε
a, ε/T b, T /ε
(aabb,0,Z0) ⊢M (abb,1,Z0)⊢M (bb,1,TZ0)⊢M (b,2,TZ0)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 24 / 61
Automates à pile Automates à pile : configurations
Transitions : exemple
Soit l’automate à pile suivant qui reconnaît le langage {anbn|n > 0}
0 1 2a, ε/ε b, ε/ε
a, ε/T b, T /ε
(aabb,0,Z0) ⊢M (abb,1,Z0)⊢M (bb,1,TZ0)⊢M (b,2,TZ0)⊢M (ε,2,Z0)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 24 / 61
Automates à pile Automates à pile : configurations
Transitions : exemple
Soit l’automate à pile suivant qui reconnaît le langage {w ∈ Σ∗|w est unpalindrome}
0 1a, ε/ε
b, ε/ε
ε, ε/ε
a, ε/Ta
b, ε/Tb
a, Ta/ε
b, Tb/ε
(baaab,0,Z0)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 25 / 61
Automates à pile Automates à pile : configurations
Transitions : exemple
Soit l’automate à pile suivant qui reconnaît le langage {w ∈ Σ∗|w est unpalindrome}
0 1a, ε/ε
b, ε/ε
ε, ε/ε
a, ε/Ta
b, ε/Tb
a, Ta/ε
b, Tb/ε
(baaab,0,Z0) ⊢M (aaab,0,TbZ0)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 25 / 61
Automates à pile Automates à pile : configurations
Transitions : exemple
Soit l’automate à pile suivant qui reconnaît le langage {w ∈ Σ∗|w est unpalindrome}
0 1a, ε/ε
b, ε/ε
ε, ε/ε
a, ε/Ta
b, ε/Tb
a, Ta/ε
b, Tb/ε
(baaab,0,Z0) ⊢M (aaab,0,TbZ0)⊢M (aab,0,TaTbZ0)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 25 / 61
Automates à pile Automates à pile : configurations
Transitions : exemple
Soit l’automate à pile suivant qui reconnaît le langage {w ∈ Σ∗|w est unpalindrome}
0 1a, ε/ε
b, ε/ε
ε, ε/ε
a, ε/Ta
b, ε/Tb
a, Ta/ε
b, Tb/ε
(baaab,0,Z0) ⊢M (aaab,0,TbZ0)⊢M (aab,0,TaTbZ0)⊢M (ab,0,TaTbZ0)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 25 / 61
Automates à pile Automates à pile : configurations
Transitions : exemple
Soit l’automate à pile suivant qui reconnaît le langage {w ∈ Σ∗|w est unpalindrome}
0 1a, ε/ε
b, ε/ε
ε, ε/ε
a, ε/Ta
b, ε/Tb
a, Ta/ε
b, Tb/ε
(baaab,0,Z0) ⊢M (aaab,0,TbZ0)⊢M (aab,0,TaTbZ0)⊢M (ab,0,TaTbZ0)⊢M (b,0,TbZ0)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 25 / 61
Automates à pile Automates à pile : configurations
Transitions : exemple
Soit l’automate à pile suivant qui reconnaît le langage {w ∈ Σ∗|w est unpalindrome}
0 1a, ε/ε
b, ε/ε
ε, ε/ε
a, ε/Ta
b, ε/Tb
a, Ta/ε
b, Tb/ε
(baaab,0,Z0) ⊢M (aaab,0,TbZ0)⊢M (aab,0,TaTbZ0)⊢M (ab,0,TaTbZ0)⊢M (b,0,TbZ0)⊢M (ε,1,Z0)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 25 / 61
Automates à pile Les critères d’acceptation
Automates à pile
IntroductionRappels sur les pilesAutomates à pile : définitionAutomates à pile : configurationsLes critères d’acceptationAutomates à pile déterministesAutomates à pile et langages algébriquesGrammaire algébrique vers automate à pileAutomate à pile vers grammaire algébriqueCloture des langages algébriques
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 26 / 61
Automates à pile Les critères d’acceptation
Les critères d’acceptation
Dans nos exemples, on accepte un mot si le ruban vide, on est sur l’étatfinal et la pile vide
Ce sont des cas particuliers
Il y a deux critères d’acceptation possibles :Acceptation par état final (quelle que soit la pile quand on s’arrête)Acceptation par pile vide (quel que soit l’état dans lequel on s’arrête)
Mais le ruban doit toujours être vide!
Ces deux critères sont équivalents
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 27 / 61
Automates à pile Les critères d’acceptation
Acceptation par état final
Acceptation par état final
Un mot m ∈ Σ∗ est accepté par état final par un automate à pileM = (Σ,Γ,Z0,Q,q0,F ,δ) si pour la configuration (m,q0,Z0), il existe un étatqf ∈ F et un mot z ∈ Γ∗ tel que
(m,q0,Z0) ⊢∗M (ε,qf ,z)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 28 / 61
Automates à pile Les critères d’acceptation
Acceptation par état final
Acceptation par état final
Un mot m ∈ Σ∗ est accepté par état final par un automate à pileM = (Σ,Γ,Z0,Q,q0,F ,δ) si pour la configuration (m,q0,Z0), il existe un étatqf ∈ F et un mot z ∈ Γ∗ tel que
(m,q0,Z0) ⊢∗M (ε,qf ,z)
Langage accepté par état final
Le langage accepté par état final par un automate à pile est l’ensemble desmots acceptés par cet automate.
LF (M) = {m ∈ Σ∗|(m,q0,Z0) ⊢∗M (ε,qf ,z)}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 28 / 61
Automates à pile Les critères d’acceptation
Acceptation par état final : exemple
Soit l’automate à pile suivant qui reconnaît le langage {anbn|n ≥ 0}
0
1
F
ε, Z0/Z0
a, ε/T
b, T /ε
ε, Z0/Z0
b, T /ε
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 29 / 61
Automates à pile Les critères d’acceptation
Acceptation par pile vide
Acceptation par pile vide
Un mot m ∈ Σ∗ est accepté par pile vide par un automate à pileM = (Σ,Γ,Z0,Q,q0,F ,δ) si pour la configuration (m,q0,Z0), il existe un étatq ∈ Q tel que
(m,q0,Z0) ⊢∗M (ε,q,ε)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 30 / 61
Automates à pile Les critères d’acceptation
Acceptation par pile vide
Acceptation par pile vide
Un mot m ∈ Σ∗ est accepté par pile vide par un automate à pileM = (Σ,Γ,Z0,Q,q0,F ,δ) si pour la configuration (m,q0,Z0), il existe un étatq ∈ Q tel que
(m,q0,Z0) ⊢∗M (ε,q,ε)
Langage accepté par pile vide
Le langage accepté par pile vide par un automate à pile est l’ensemble desmots acceptés par cet automate.
LV (M) = {m ∈ Σ∗|(m,q0,Z0) ⊢∗M (ε,q,ε)}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 30 / 61
Automates à pile Les critères d’acceptation
Acceptation par pile vide : exemple
Soit l’automate à pile suivant qui reconnaît le langage {anbn|n ≥ 0}
0 1
ε, Z0/ε
a, Z0/T
b, T /ε
b, T /ε
a, T /TT
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 61
Automates à pile Les critères d’acceptation
Critères d’acceptation
Les deux critères d’acceptation (par état final et par pile vide) sontéquivalents
Théorème
Un langage est accepté par un automate à pile avec le critère d’acceptationsur pile vide si et seulement si il est accepté par un automate à pile avecacceptation par état final.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 61
Automates à pile Les critères d’acceptation
Critères d’acceptation
Les deux critères d’acceptation (par état final et par pile vide) sontéquivalents
Théorème
Un langage est accepté par un automate à pile avec le critère d’acceptationsur pile vide si et seulement si il est accepté par un automate à pile avecacceptation par état final.
⇒ Chaque transition dans laquelle Z0 est dépilé est remplacée par unetransition vers un nouvel état final
⇐ Après avoir atteint un état final, on vide entièrement la pile
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 61
Automates à pile Automates à pile déterministes
Automates à pile
IntroductionRappels sur les pilesAutomates à pile : définitionAutomates à pile : configurationsLes critères d’acceptationAutomates à pile déterministesAutomates à pile et langages algébriquesGrammaire algébrique vers automate à pileAutomate à pile vers grammaire algébriqueCloture des langages algébriques
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 33 / 61
Automates à pile Automates à pile déterministes
Automates déterministes
Les automates à pile que nous avons défini jusqu’à maintenant sontindéterministes
Un mot est accepté s’il existe au moins une suite de configurations quiconduit à l’acceptationMais il peut y en avoir plusieursEt il peut il y avoir plusieurs suites de configuration qui mènent à l’échec
⇒ Automate à pile déterministe?
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 34 / 61
Automates à pile Automates à pile déterministes
Automates déterministes
Les automates à pile M est déterministe à 2 conditions :
Première conditionpour un état q donnépour un symbole d’entrée x donnépour un sommet de pile z donné
il existe au plus une transition partant de (q,x ,z)
Seconde conditionpour un état q donnépour un sommet de pile z donné
s’il existe une transition partant de (q,ε,z), elle est unique et pour toutelettre x , il n’en existe pas partant de (q,x ,z).
⇒ Dans une configuration donnée, on ne peut pas avoir le choix sur latransition à appliquer
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 35 / 61
Automates à pile Automates à pile et langages algébriques
Automates à pile
IntroductionRappels sur les pilesAutomates à pile : définitionAutomates à pile : configurationsLes critères d’acceptationAutomates à pile déterministesAutomates à pile et langages algébriquesGrammaire algébrique vers automate à pileAutomate à pile vers grammaire algébriqueCloture des langages algébriques
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 36 / 61
Automates à pile Automates à pile et langages algébriques
Automates à pile et langages algébriques (hors-contextes)
Théorème
Un langage est algébrique si et seulement si il est reconnu par un automate àpile
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 37 / 61
Automates à pile Automates à pile et langages algébriques
Automates à pile et langages algébriques (hors-contextes)
Théorème
Un langage est algébrique si et seulement si il est reconnu par un automate àpile
Théorème
Tout langage algébrique n’est pas reconnu par un automate à piledéterministe
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 37 / 61
Automates à pile Automates à pile et langages algébriques
Automates à pile et langages algébriques (hors-contextes)
Théorème
Un langage est algébrique si et seulement si il est reconnu par un automate àpile
Théorème
Tout langage algébrique n’est pas reconnu par un automate à piledéterministe
Langages algébriquesdéterministes
Langages algébriquesnon déterministes
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 37 / 61
Automates à pile Automates à pile et langages algébriques
Langage algébrique déterministe
Langage algébrique déterministe
Un langage algébrique L est déterministe s’il existe un automate à pile Macceptant par état final déterministe tel que LF (M) = L
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 38 / 61
Automates à pile Automates à pile et langages algébriques
Langage algébrique déterministe
Langage algébrique déterministe
Un langage algébrique L est déterministe s’il existe un automate à pile Macceptant par état final déterministe tel que LF (M) = L
Par exemple, {m ∈ (a+b)∗|m est un palindrome} est un langage algébriquenon déterministe.Intuitivement, on ne sait pas deviner où est le milieu du mot.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 38 / 61
Automates à pile Automates à pile et langages algébriques
Langage algébrique déterministe
Langage algébrique déterministe
Un langage algébrique L est déterministe s’il existe un automate à pile Macceptant par état final déterministe tel que LF (M) = L
Par exemple, {m ∈ (a+b)∗|m est un palindrome} est un langage algébriquenon déterministe.Intuitivement, on ne sait pas deviner où est le milieu du mot.{m1cm2|m1m2 ∈ (a+b)∗ est un palindrome} est un langage algébriquedéterministe.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 38 / 61
Automates à pile Automates à pile et langages algébriques
Automates à pile et grammaires algébriques
Les automates à pile sont nécessaires pour reconnaître les langagesalgébriques
Mais ils ne sont pas si faciles à concevoir
Le lien entre dérivations d’une grammaire et exécution d’un automate àpile n’est pas évident à voir
? Est-il possible de dériver automatiquement un automate à pile à partird’une grammaire algébrique?
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 39 / 61
Automates à pile Grammaire algébrique vers automate à pile
Automates à pile
IntroductionRappels sur les pilesAutomates à pile : définitionAutomates à pile : configurationsLes critères d’acceptationAutomates à pile déterministesAutomates à pile et langages algébriquesGrammaire algébrique vers automate à pileAutomate à pile vers grammaire algébriqueCloture des langages algébriques
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 40 / 61
Automates à pile Grammaire algébrique vers automate à pile
Rappel : Forme normale de Greibach
Forme normale de Greibach
Une grammaire algébrique G = 〈V ,Σ,P,S〉 est sous la forme normale deGreibach si toute production est de la forme :
A → aA1 . . .An
A → a
avec A,Ai ∈ V \Σ, et a ∈ Σ
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 41 / 61
Automates à pile Grammaire algébrique vers automate à pile
Grammaire algébrique vers automate à pile
On présente un algorithme de passage d’une grammaire algébrique sousforme normale de Greibach vers un automate à pile non déterministe
Idée :Empiler l’axiomeA chaque symbole lu de la chaîne d’entrée, remplacer la partie gauche dela production concernée par le reste de la partie droite
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 42 / 61
Automates à pile Grammaire algébrique vers automate à pile
Grammaire algébrique vers automate à pile
Grammaire algébrique vers automate à pile
Soit L = L\ ε le langage engendré par G = 〈V ,Σ,P,S〉 sous forme normalede Greibach.On construit l’automate à pile M = (Σ,Γ,S,Q,q0,F ,δ) tel que
Γ = V \Σ
Q = {q0}
F = /0 (reconnaissance sur pile vide)
S le symbole initial de la pile
On construit δ itérativement de la façon suivante :1. δ← /02. Pour toute règle A→ aA1A2 . . .An,
δ← δ∪{(q0,a,A)→ (q0,A1A2 . . .An)}
On lit a, on dépile A et on empile A1A2 . . .An (A1 est en sommet de la pile)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 43 / 61
Automates à pile Grammaire algébrique vers automate à pile
Grammaire algébrique vers automate à pile : exemple
Soit G = 〈V ,Σ,P,S〉 avec
V = {a,b,S,B}
Σ= {a,b}
P = {S→ aSB|aB;B→ b}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 44 / 61
Automates à pile Grammaire algébrique vers automate à pile
Grammaire algébrique vers automate à pile : exemple
Soit G = 〈V ,Σ,P,S〉 avec
V = {a,b,S,B}
Σ= {a,b}
P = {S→ aSB|aB;B→ b}
On construit l’automate M = (Σ,Γ,S,Q,q0,F ,δ) tel que
Γ = {S,B}
Q = {q0}, F = /0δ contient
(q0,a,S)→ (q0,SB)(q0,a,S)→ (q0,B)(q0,b,B)→ (q0,ε)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 44 / 61
Automates à pile Grammaire algébrique vers automate à pile
Grammaire algébrique vers automate à pile : exemple
Soit G = 〈V ,Σ,P,S〉 avec V = {a,+,∗,(,),S,A,B,C}, Σ= {a,b,+,∗,(,)}
S → a S → (SCS → aAS A → +S → (SCAS B → ∗S → aBS C → )S → (SCBS
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 45 / 61
Automates à pile Grammaire algébrique vers automate à pile
Grammaire algébrique vers automate à pile : exemple
Soit G = 〈V ,Σ,P,S〉 avec V = {a,+,∗,(,),S,A,B,C}, Σ= {a,b,+,∗,(,)}
S → a S → (SCS → aAS A → +S → (SCAS B → ∗S → aBS C → )S → (SCBS
On construit l’automate M = (Σ,Γ,S,Q,q0,F ,δ) tel que Γ = {S,A,B,C},Q = {q0}, F = /0 et δ contient
(q0,a,S) → (q0,ε) (q0,(,S) → (q0,SC)(q0,a,S) → (q0,AS) (q0,+,A) → (q0,ε)(q0,(,S) → (q0,SCAS) (q0,∗,B) → (q0,ε)(q0,a,S) → (q0,BS) (q0,),C) → (q0,ε)(q0,(,S) → (q0,SCBS)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 45 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automates à pile
IntroductionRappels sur les pilesAutomates à pile : définitionAutomates à pile : configurationsLes critères d’acceptationAutomates à pile déterministesAutomates à pile et langages algébriquesGrammaire algébrique vers automate à pileAutomate à pile vers grammaire algébriqueCloture des langages algébriques
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 46 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique
On présente un algorithme de passage d’un automate à pile à unegrammaire algébrique
A tout couple (p,q) d’états de l’automate, et à tout X de la pile, onassocie un non terminal de la forme 〈p,X ,q〉
On associe toutes les lectures possibles dans l’automate pour obtenir lagrammaire sans savoir a priori lesquelles vont vider la pile
A la fin, on nettoie la grammaire obtenue
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 47 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : algorithme
Soit M = (Σ,Γ,Z0,Q,q0,F ,δ). On veut construire G = 〈V ,Σ,P,S〉équivalente.
1. V = {〈q,X ,p〉|p et q ∈ Q, X ∈ Γ}∪{S}
2. P← /03. Pour tout état q ∈ Q, P← P ∪{S→ 〈q0,Z0,q〉}
4. Pour toute transition (q,a,X)→ (p,ε) de δ faire P← P∪{〈q,X ,p〉 → a}
5. Pour toute transition (q,a,X)→ (p,Bm . . .B1) de δ fairePour tout m-uplet d’états q1, . . . ,qm de Q faire
P← P ∪{〈q,X ,qm〉 → a〈p,B1,q1〉〈q1,B2,q2〉 . . .〈qm−1,Bm,qm〉}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 48 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
0 1
ε, Z0/ε
a, Z0/T
b, T /ε
b, T /ε
a, T /TT
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 49 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
0 1
ε, Z0/ε
a, Z0/T
b, T /ε
b, T /ε
a, T /TT
1. V = {〈q,X ,p〉|p et q ∈ Q, X ∈ Γ}∪{S}
V = {S,〈q0,Z0,q0〉,〈q0,Z0,q1〉,〈q1,Z0,q0〉,〈q1,Z0,q1〉,〈q0,T ,q0〉,〈q0,T ,q1〉,〈q1,T ,q0〉,〈q1,T ,q1〉}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 49 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
0 1
ε, Z0/ε
a, Z0/T
b, T /ε
b, T /ε
a, T /TT
2. P← /03. Pour tout état q ∈ Q, P← P ∪{S→ 〈q0,Z0,q〉}
P reçoitS → 〈q0,Z0,q0〉S → 〈q0,Z0,q1〉
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 49 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
0 1
ε, Z0/ε
a, Z0/T
b, T /ε
b, T /ε
a, T /TT
4. Pour toute transition (q,a,X)→ (p,ε) de δ faire P← P∪{〈q,X ,p〉 → a}P reçoit
〈q0,Z0,q0〉 → ε〈q0,T ,q1〉 → b〈q1,T ,q1〉 → b
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 49 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
0 1
ε, Z0/ε
a, Z0/T
b, T /ε
b, T /ε
a, T /TT
5. Pour toute transition (q,a,X)→ (p,Bm . . .B1) de δ fairePour tout m-uplet d’états q1, . . . ,qm de Q faire
P← P ∪{〈q,X ,qm〉 → a〈p,B1,q1〉〈q1,B2,q2〉 . . .〈qm−1,Bm,qm〉}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 49 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
0 1
ε, Z0/ε
a, Z0/T
b, T /ε
b, T /ε
a, T /TT
5. Pour toute transition (q,a,X)→ (p,Bm . . .B1) de δ fairePour tout m-uplet d’états q1, . . . ,qm de Q faire
P← P ∪{〈q,X ,qm〉 → a〈p,B1,q1〉〈q1,B2,q2〉 . . .〈qm−1,Bm,qm〉}
〈q0,Z0,q0〉 → a〈q0,T ,q0〉〈q0,Z0,q1〉 → a〈q0,T ,q1〉
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 49 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
0 1
ε, Z0/ε
a, Z0/T
b, T /ε
b, T /ε
a, T /TT
5. Pour toute transition (q,a,X)→ (p,Bm . . .B1) de δ fairePour tout m-uplet d’états q1, . . . ,qm de Q faire
P← P ∪{〈q,X ,qm〉 → a〈p,B1,q1〉〈q1,B2,q2〉 . . .〈qm−1,Bm,qm〉}
〈q0,T ,q0〉 → a〈q0,T ,q0〉〈q0,T ,q0〉〈q0,T ,q0〉 → a〈q0,T ,q1〉〈q1,T ,q0〉〈q0,T ,q1〉 → a〈q0,T ,q0〉〈q0,T ,q1〉〈q0,T ,q1〉 → a〈q0,T ,q1〉〈q1,T ,q1〉
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 49 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
On récapitule :
V = {S,〈q0,Z0,q0〉,〈q0,Z0,q1〉,〈q1,Z0,q0〉,〈q1,Z0,q1〉,〈q0,T ,q0〉,〈q0,T ,q1〉,〈q1,T ,q0〉,〈q1,T ,q1〉}
S → 〈q0,Z0,q0〉S → 〈q0,Z0,q1〉〈q0,Z0,q0〉 → ε〈q0,T ,q1〉 → b〈q1,T ,q1〉 → b〈q0,Z0,q0〉 → a〈q0,T ,q0〉〈q0,Z0,q1〉 → a〈q0,T ,q1〉〈q0,T ,q0〉 → a〈q0,T ,q0〉〈q0,T ,q0〉〈q0,T ,q0〉 → a〈q0,T ,q1〉〈q1,T ,q0〉〈q0,T ,q1〉 → a〈q0,T ,q0〉〈q0,T ,q1〉〈q0,T ,q1〉 → a〈q0,T ,q1〉〈q1,T ,q1〉
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 50 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
On renomme :
V = {S,〈q0,Z0,q0〉,〈q0,Z0,q1〉,〈q1,Z0,q0〉,〈q1,Z0,q1〉,〈q0,T ,q0〉,〈q0,T ,q1〉,〈q1,T ,q0〉,〈q1,T ,q1〉}
S → 〈q0,Z0,q0〉S → 〈q0,Z0,q1〉〈q0,Z0,q0〉 → ε〈q0,T ,q1〉 → b〈q1,T ,q1〉 → b〈q0,Z0,q0〉 → a〈q0,T ,q0〉〈q0,Z0,q1〉 → a〈q0,T ,q1〉〈q0,T ,q0〉 → a〈q0,T ,q0〉〈q0,T ,q0〉〈q0,T ,q0〉 → a〈q0,T ,q1〉〈q1,T ,q0〉〈q0,T ,q1〉 → a〈q0,T ,q0〉〈q0,T ,q1〉〈q0,T ,q1〉 → a〈q0,T ,q1〉〈q1,T ,q1〉
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 51 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
On renomme :
V = {S,A,〈q0,Z0,q1〉,〈q1,Z0,q0〉,〈q1,Z0,q1〉,〈q0,T ,q0〉,〈q0,T ,q1〉,〈q1,T ,q0〉,〈q1,T ,q1〉}
S → AS → 〈q0,Z0,q1〉A → ε〈q0,T ,q1〉 → b〈q1,T ,q1〉 → bA → a〈q0,T ,q0〉〈q0,Z0,q1〉 → a〈q0,T ,q1〉〈q0,T ,q0〉 → a〈q0,T ,q0〉〈q0,T ,q0〉〈q0,T ,q0〉 → a〈q0,T ,q1〉〈q1,T ,q0〉〈q0,T ,q1〉 → a〈q0,T ,q0〉〈q0,T ,q1〉〈q0,T ,q1〉 → a〈q0,T ,q1〉〈q1,T ,q1〉
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 51 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
On renomme :
V = {S,A,B,C,D,E ,F ,G,H}
S → AS → BA → εF → bH → bA → aEB → aFE → aEEE → aFGF → aEFF → aFH
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 51 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
On nettoie :
V = {S,A,B,C,D,E ,F ,G,H}
S → A B → aFS → B E → aEEA → ε E → aFGF → b F → aEFH → b F → aFHA → aE
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 52 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
On nettoie :
V = {S,A,B,C,D,E ,F ,G,H}
S → A B → aFS → B E → aEEA → ε E → aFGF → b F → aEFH → b F → aFHA → aE
Symboles productifs : {A,F ,H,S,B}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 52 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
On nettoie :
V = {S,A,B,C,D,E ,F ,G,H}
S → A B → aFS → B E → aDDA → ε E → aFGF → b F → aDFH → b F → aFHA → aD
Symboles productifs : {A,F ,H,S,B}→ On supprime C,D,E ,G
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 52 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
On nettoie :
V = {S,A,B,F ,H}
S → A B → aFS → BA → εF → bH → b F → aFH
Symboles productifs : {A,F ,H,S,B}→ On supprime C,D,E ,G
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 52 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
On nettoie :
V = {S,A,B,F ,H}
S → A B → aFS → B F → bA → ε F → aFHH → b
Symboles productifs : {A,F ,H,S,B}→ On supprime C,D,E ,G
Symboles accessibles : {S,A,B,F ,H}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 52 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
On nettoie :
V = {S,A,B,F ,H}
S → A B → aFS → B F → bA → ε F → aFHH → b
Symboles productifs : {A,F ,H,S,B}→ On supprime C,D,E ,G
Symboles accessibles : {S,A,B,F ,H}
Suppression des règles unitaires
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 52 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
On nettoie :
V = {S,A,B,F ,H}
S → εS → aF F → b
F → aFb
Symboles productifs : {A,F ,H,S,B}→ On supprime C,D,E ,G
Symboles accessibles : {S,A,B,F ,H}
Suppression des règles unitaires
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 52 / 61
Automates à pile Automate à pile vers grammaire algébrique
Automate à pile vers grammaire algébrique : exemple
0 1
ε, Z0/ε
a, Z0/T
b, T /ε
b, T /ε
a, T /TT
On obtient :S → εS → aFF → bF → aFb
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 53 / 61
Automates à pile Cloture des langages algébriques
Automates à pile
IntroductionRappels sur les pilesAutomates à pile : définitionAutomates à pile : configurationsLes critères d’acceptationAutomates à pile déterministesAutomates à pile et langages algébriquesGrammaire algébrique vers automate à pileAutomate à pile vers grammaire algébriqueCloture des langages algébriques
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 54 / 61
Automates à pile Cloture des langages algébriques
Clôture par union
Clôture par union
Soient L1 et L2 deux langages algébriques.Alors L1∪L2 est un langage algébrique.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 55 / 61
Automates à pile Cloture des langages algébriques
Clôture par union
Clôture par union
Soient L1 et L2 deux langages algébriques.Alors L1∪L2 est un langage algébrique.
Preuve par construction :
Soient G1 = 〈V1,Σ1,P1,S1〉 et G1 = 〈V2,Σ2,P2,S2〉 engendrant L1 et L2
et tels que (V1 \Σ1)∩ (V2 \Σ2) = /0 et S 6∈ V1∪V2 (et sinon onrenomme)
On construit G = 〈V ,Σ,P,S〉 telle que :V = V1∪V2∪{S}Σ= Σ1∪Σ2
P = P1∪P2∪{S→ S1|S2}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 55 / 61
Automates à pile Cloture des langages algébriques
Clôture par concaténation
Clôture par concaténation
Soient L1 et L2 deux langages algébriques.Alors L1.L2 est un langage algébrique.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 56 / 61
Automates à pile Cloture des langages algébriques
Clôture par concaténation
Clôture par concaténation
Soient L1 et L2 deux langages algébriques.Alors L1.L2 est un langage algébrique.
Preuve par construction :
Soient G1 = 〈V1,Σ1,P1,S1〉 et G1 = 〈V2,Σ2,P2,S2〉 engendrant L1 et L2
et tels que (V1 \Σ1)∩ (V2 \Σ2) = /0 et S 6∈ V1∪V2 (et sinon onrenomme)
On construit G = 〈V ,Σ,P,S〉 telle que :V = V1∪V2∪{S}Σ= Σ1∪Σ2
P = P1∪P2∪{S→ S1S2}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 56 / 61
Automates à pile Cloture des langages algébriques
Clôture par opération étoile
Clôture par opération étoile
Soit L un langage algébrique.Alors L∗ est un langage algébrique.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 57 / 61
Automates à pile Cloture des langages algébriques
Clôture par opération étoile
Clôture par opération étoile
Soit L un langage algébrique.Alors L∗ est un langage algébrique.
Preuve par construction :
Soit G1 = 〈V1,Σ1,P1,S1〉 engendrant le langage L
On construit G = 〈V ,Σ,P,S〉 engendrant le langage L∗ telle que :V = V1∪{S}Σ= Σ1
P = P1∪{S→ ε|S1S}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 57 / 61
Automates à pile Cloture des langages algébriques
Exemple
Peut-on trouver une grammaire algébrique pour L = {aibjck |i = j ou j = k} ?
L se décompose en l’union deL1 = {aibjck |i = j,k ≥ 0}L2 = {aibjck |i ≥ 0, j = k}
L1 = {aibjck |i = j,k ≥ 0} est la concaténation de{aibj |i = j} et{ck |k ≥ 0}
L2 = {aibjck |i ≥ 0, j = k} est la concaténation de{ai |i ≥ 0} et{bjck |j = k}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 58 / 61
Automates à pile Cloture des langages algébriques
Exemple
Peut-on trouver une grammaire algébrique pour L = {aibjck |i = j ou j = k} ?
L se décompose en l’union deL1 = {aibjck |i = j,k ≥ 0}L2 = {aibjck |i ≥ 0, j = k}
L1 = {aibjck |i = j,k ≥ 0} est la concaténation de{aibj |i = j} et{ck |k ≥ 0}
L2 = {aibjck |i ≥ 0, j = k} est la concaténation de{ai |i ≥ 0} et{bjck |j = k}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 58 / 61
Automates à pile Cloture des langages algébriques
Exemple
Peut-on trouver une grammaire algébrique pour L = {aibjck |i = j ou j = k} ?
L se décompose en l’union deL1 = {aibjck |i = j,k ≥ 0}L2 = {aibjck |i ≥ 0, j = k}
L1 = {aibjck |i = j,k ≥ 0} est la concaténation de{aibj |i = j} et{ck |k ≥ 0}
L2 = {aibjck |i ≥ 0, j = k} est la concaténation de{ai |i ≥ 0} et{bjck |j = k}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 58 / 61
Automates à pile Cloture des langages algébriques
Exemple
Peut-on trouver une grammaire algébrique pour L = {aibjck |i = j ou j = k} ?
L se décompose en l’union deL1 = {aibjck |i = j,k ≥ 0}L2 = {aibjck |i ≥ 0, j = k}
L1 = {aibjck |i = j,k ≥ 0} est la concaténation de{aibj |i = j} et{ck |k ≥ 0}
L2 = {aibjck |i ≥ 0, j = k} est la concaténation de{ai |i ≥ 0} et{bjck |j = k}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 58 / 61
Automates à pile Cloture des langages algébriques
Exemple, suite
{aibj |i = j}S1→ ε|aS1b
{ck |k ≥ 0}S2→ ε|cS2
L1 = {aibjck |i = j,k ≥ 0}S1→ ε|aS1bS2→ ε|cS2
SL1 → S1S2
L2 = {aibjck |i ≥ 0, j = k}S3→ ε|aS3
S4→ ε|bS4cSL2 → S3S4
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 59 / 61
Automates à pile Cloture des langages algébriques
Exemple, suite
{aibj |i = j}S1→ ε|aS1b
{ck |k ≥ 0}S2→ ε|cS2
L1 = {aibjck |i = j,k ≥ 0}S1→ ε|aS1bS2→ ε|cS2
SL1 → S1S2
L2 = {aibjck |i ≥ 0, j = k}S3→ ε|aS3
S4→ ε|bS4cSL2 → S3S4
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 59 / 61
Automates à pile Cloture des langages algébriques
Exemple, suite
{aibj |i = j}S1→ ε|aS1b
{ck |k ≥ 0}S2→ ε|cS2
L1 = {aibjck |i = j,k ≥ 0}S1→ ε|aS1bS2→ ε|cS2
SL1 → S1S2
L2 = {aibjck |i ≥ 0, j = k}S3→ ε|aS3
S4→ ε|bS4cSL2 → S3S4
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 59 / 61
Automates à pile Cloture des langages algébriques
Exemple, suite
{aibj |i = j}S1→ ε|aS1b
{ck |k ≥ 0}S2→ ε|cS2
L1 = {aibjck |i = j,k ≥ 0}S1→ ε|aS1bS2→ ε|cS2
SL1 → S1S2
L2 = {aibjck |i ≥ 0, j = k}S3→ ε|aS3
S4→ ε|bS4cSL2 → S3S4
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 59 / 61
Automates à pile Cloture des langages algébriques
Exemple, suite
L = {aibjck |i = j ou j = k}
G = 〈V ,Σ,S,P〉
V = {S1,S2,S3,S4,SL1 ,SL2 ,S}
Σ= {a,b,c}
P :S1 → ε|aS1bS2 → ε|cS2
SL1 → S1S2
S3 → ε|aS3
S4 → ε|bS4cSL2 → S3S4
S → SL1 |SL2
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 60 / 61
Automates à pile Cloture des langages algébriques
Exemple, suite
L = {aibjck |i = j ou j = k}
G = 〈V ,Σ,S,P〉
V = {S1,S2,S3,S4,SL1 ,SL2 ,S}
Σ= {a,b,c}
P :S1 → ε|aS1bS2 → ε|cS2
SL1 → S1S2
S3 → ε|aS3
S4 → ε|bS4cSL2 → S3S4
S → SL1 |SL2
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 60 / 61
Automates à pile Cloture des langages algébriques
Exemple, suite
L = {aibjck |i = j ou j = k}
G = 〈V ,Σ,S,P〉
V = {S1,S2,S3,S4,SL1 ,SL2 ,S}
Σ= {a,b,c}
P :S1 → ε|aS1bS2 → ε|cS2
SL1 → S1S2
S3 → ε|aS3
S4 → ε|bS4cSL2 → S3S4
S → SL1 |SL2
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 60 / 61
Automates à pile Cloture des langages algébriques
Exemple, suite
L = {aibjck |i = j ou j = k}
G = 〈V ,Σ,S,P〉
V = {S1,S2,S3,S4,SL1 ,SL2 ,S}
Σ= {a,b,c}
P :S1 → ε|aS1bS2 → ε|cS2
SL1 → S1S2
S3 → ε|aS3
S4 → ε|bS4cSL2 → S3S4
S → SL1 |SL2
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 60 / 61
Automates à pile Cloture des langages algébriques
Exemple, suite
L = {aibjck |i = j ou j = k}
G = 〈V ,Σ,S,P〉
V = {S1,S2,S3,S4,SL1 ,SL2 ,S}
Σ= {a,b,c}
P :S1 → ε|aS1bS2 → ε|cS2
SL1 → S1S2
S3 → ε|aS3
S4 → ε|bS4cSL2 → S3S4
S → SL1 |SL2
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 60 / 61
Automates à pile Cloture des langages algébriques
Clôture par intersection et complémentation
Clôture par intersection
La classe des langages algébriques n’est pas close par intersection
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 61 / 61
Automates à pile Cloture des langages algébriques
Clôture par intersection et complémentation
Clôture par intersection
La classe des langages algébriques n’est pas close par intersection
Clôture par complémentation
La classe des langages algébriques n’est pas close par complémentation
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 61 / 61
Théorie des langages et compilation
Théorie des langages et compilation
Structure d’un compilateurAnalyse lexicaleAnalyse syntaxiqueAnalyse sémantiqueConclusion
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 2 / 38
Théorie des langages et compilation Structure d’un compilateur
Théorie des langages et compilation
Structure d’un compilateurAnalyse lexicaleAnalyse syntaxiqueAnalyse sémantiqueConclusion
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 3 / 38
Théorie des langages et compilation Structure d’un compilateur
Un compilateur, c’est quoi?
Un compilateur est un programme qui
prend en entrée une donnée textuelle source (programme, donnée xml,fichier de configuration, etc)
la reconnaît (l’analyse) pour vérifier sa correction
émet éventuellement un message d’erreur
le traduit dans un langage cible
programme source Compilateur programme cible
messages d’erreur
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 4 / 38
Théorie des langages et compilation Structure d’un compilateur
Les différentes étapes de la compilation
Table des
symboles
Programme source
Analyseur lexical
Analyseur syntaxique
Analyseur sémantique
Générateur de code intermédiaire
Optimisateur de code
Générateur de code
Programme cible
Erreurs
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 5 / 38
Théorie des langages et compilation Structure d’un compilateur
Les différentes étapes de la compilation
Table des
symboles
Programme source
Analyseur lexical
Analyseur syntaxique
Analyseur sémantique
Générateur de code intermédiaire
Optimisateur de code
Générateur de code
Programme cible
Erreurs
Partie analyse : sépare les 6=
constituants du prog. source et produit
une représentation intermédiaire
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 5 / 38
Théorie des langages et compilation Structure d’un compilateur
Les différentes étapes de la compilation
Table des
symboles
Programme source
Analyseur lexical
Analyseur syntaxique
Analyseur sémantique
Générateur de code intermédiaire
Optimisateur de code
Générateur de code
Programme cible
Erreurs
Partie analyse : sépare les 6=
constituants du prog. source et produit
une représentation intermédiaire
Partie synthèse : génère le prog. cible à
partir de la représentation intermédiaire
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 5 / 38
Théorie des langages et compilation Structure d’un compilateur
Analyse lexicale
Table des
symboles
Programme source
Analyseur lexical
Analyseur syntaxique
Analyseur sémantique
Générateur de code intermédiaire
Optimisateur de code
Générateur de code
Programme cible
Erreurs
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 6 / 38
Théorie des langages et compilation Structure d’un compilateur
Analyse lexicale
Seul module au contact avec le texte source
Son but est de reconnaître les unités lexicales ou lexèmesles identificateurs et les mots clefs du langagel’affectation et les opérateurs
Utilise des expressions régulières : automates finis
ab := y * x + 20
identificateur
affectationoperateur
nombre
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 7 / 38
Théorie des langages et compilation Structure d’un compilateur
Analyse syntaxique
Table des
symboles
Programme source
Analyseur lexical
Analyseur syntaxique
Analyseur sémantique
Générateur de code intermédiaire
Optimisateur de code
Générateur de code
Programme cible
Erreurs
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 8 / 38
Théorie des langages et compilation Structure d’un compilateur
Analyse syntaxique
Regroupe les unités lexicales en structures grammaticales en suivant lesrègles figurant dans une grammaireRésultat représenté par un arbre syntaxiqueLa structure hiérarchique d’un programme est exprimée à l’aide de règles
Tout identificateur est une expressionTout nombre est une expressionSi expr1 et expr2 sont des expressions alors expr1∗expr2 est uneexpression
Grammaires hors contexte : automates à pile
ab
:=
y
*
x
+
20
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 9 / 38
Théorie des langages et compilation Structure d’un compilateur
Analyse sémantique
Table des
symboles
Programme source
Analyseur lexical
Analyseur syntaxique
Analyseur sémantique
Générateur de code intermédiaire
Optimisateur de code
Générateur de code
Programme cible
Erreurs
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 10 / 38
Théorie des langages et compilation Structure d’un compilateur
Analyse sémantique
Vérifie la présence d’erreurs d’ordre sémantiqueVérification de typageVérification des déclarations
Par exemple, si x et y sont des réels :
ab
:=
y
*
x
+
conversion entier -> réel
20
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 11 / 38
Théorie des langages et compilation Structure d’un compilateur
Partie synthèse
Table des
symboles
Programme source
Analyseur lexical
Analyseur syntaxique
Analyseur sémantique
Générateur de code intermédiaire
Optimisateur de code
Générateur de code
Programme cible
Erreurs
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 12 / 38
Théorie des langages et compilation Structure d’un compilateur
Partie synthèse
Génération du code intermédiaireUtilisation de variables temporairesChoix de l’ordre pour faire un calcul
Optimisation du codeAmélioration du code intermédiaireRéduction du nombre de variables et d’instructions
Génération du codeChoix des emplacements mémoire pour les variablesAssignation de variables aux registres
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 13 / 38
Théorie des langages et compilation Structure d’un compilateur
Tables des symboles
Table des
symboles
Programme source
Analyseur lexical
Analyseur syntaxique
Analyseur sémantique
Générateur de code intermédiaire
Optimisateur de code
Générateur de code
Programme cible
Erreurs
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 14 / 38
Théorie des langages et compilation Structure d’un compilateur
Table des symboles
Enregistre les identifiants et les attibuts (emplacement mémoire, type,portée)
Chaque identifiant (variable) a une entrée dans la table des symboles
L’analyseur lexical crée une entrée dans la table des symboles à chaquefois qu’il rencontre un nouvel identificateur
Par contre, les attributs seront calculés plus tard
L’analyseur sémantique se sert de la table des symboles pour vérifier laconcordence des types
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 15 / 38
Théorie des langages et compilation Structure d’un compilateur
Détection des erreurs
Table des
symboles
Programme source
Analyseur lexical
Analyseur syntaxique
Analyseur sémantique
Générateur de code intermédiaire
Optimisateur de code
Générateur de code
Programme cible
Erreurs
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 16 / 38
Théorie des langages et compilation Structure d’un compilateur
Détection des erreurs
Erreur lexicale : le flot de caractères n’est pas reconnu
Erreur syntaxique : construction non reconnue par le langage
Erreur sémantique : problème de typage,...
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 17 / 38
Théorie des langages et compilation Analyse lexicale
Théorie des langages et compilation
Structure d’un compilateurAnalyse lexicaleAnalyse syntaxiqueAnalyse sémantiqueConclusion
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 18 / 38
Théorie des langages et compilation Analyse lexicale
Analyseur lexical et analyseur syntaxique
L’analyse lexicale produit des lexèmesEn général à la volée à la demande de l’analyseur syntaxiqueL’analyseur syntaxique demande le prochain lexème à l’analyseur lexical,qui le reconnaît et retourne un code identifiant ce lexème
On pourrait imaginer que l’analyse lexicale travaille indépendamment etfournisse une suite de lexèmes
mais on n’a pas besoin, en général, d’avoir reconnu tous les lexèmes pourfaire l’analyse syntaxique : la connaissance du lexème courant suffit pourla plupart des méthodes utiliséeset malheureusement, pour certains langages (C notamment), lareconnaissance d’un lexème dépend du contexte grammatical dans lequelil se trouve
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 19 / 38
Théorie des langages et compilation Analyse lexicale
Analyse lexicale
Chaque lexème est un mot d’un langageDans la plupart des cas, langage qui peut être représenté par uneexpression régulière,par exemple ((A−Z )+(a− z))((A−Z )+(a− z)+(0−9))∗ pourreconnaître des identificateurs du genre X , Compteur , i3, R2D2, . . .Langage fini pour de nombreux lexèmes : +, ==, for , . . .
L’analyseur lexical est donc un (gros) automate fini déterministe quireconnaît l’union des langages des lexèmes
un état terminal correspond à la reconnaissance d’un mot d’un deslangages des lexèmes
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 20 / 38
Théorie des langages et compilation Analyse lexicale
Fragment d’automate lexical
q0
q1
q2
q3
q4 q5 q6
q7 q8
i a-z sauf i
0-9
=
f
a-z sauf f
a-z
a-z
.
0-9
0-9
0-9
=
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 21 / 38
Théorie des langages et compilation Analyse lexicale
Analyse lexicale
Analyseur lexical : En général pas tout à fait un automate déterministe
Certains lexèmes sont préfixes d’un autre+, +=, ++ ; = et ==mots-clés et identificateurs (for et forme)entiers et réels (3 et 3.14)
Le principe est de reconnaître le mot le plus long
Un état terminal n’implique donc pas toujours l’arrêt de l’automate : ilpeut continuer, et éventuellement revenir en arrière au dernier état finalrencontré
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 22 / 38
Théorie des langages et compilation Analyse lexicale
Reconnaissance contextuelle
Il existe des langages où une forme lexicale peut correspondre àdifférents lexèmes selon le contexte
selon le contexte gauche : par exemple, if reconnu comme mot-cléuniquement s’il est au début d’une instructionselon le contexte droit : par exemple if reconnu comme mot-cléuniquement s’il est suivi d’une parenthèseCombinaison des deux
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 23 / 38
Théorie des langages et compilation Analyse lexicale
Problèmes de la reconnaissance contextuelle
Dans des langages mal définis
Pour les langages de programmation, dans des langages anciens(Fortran, partiellement C, . . .)
Ils ne peuvent en général pas être résolus par le seul analyseur lexical :les contextes sont le plus souvent des langages non-contextuelsreconnus par l’analyseur syntaxique→ Donc forte interaction entre les deux analyseurs
Entraine des problèmes de lisibilité, de fiabilité et des difficultés à lamaintenance et aux extensions
C’est pourquoi les langages modernes de programmation évitent cesquestions de reconnaissance contextuelle
Mais pas les langages de script, de description, . . . conçus la plupart dutemps par des non spécialistes des langages
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 24 / 38
Théorie des langages et compilation Analyse lexicale
Exemple de problème de la reconnaissance contextuelle
en Fortran, les espaces sont non significatifsDO12I = 1.25 : identificateur DO12I, opérateur d’affectation =, réel 1.25DO12I = 1,25 : mot-clé DO, etiquette 12, variable I : boucle qui se termineà l’énoncé étiqueté 12 pour i allant dee 1 à 25d’après la légende, on aurait perdu une fusée du projet Mercury à caused’un ’.’ à la place d’une ’,’ (à moins que ce ne soit l’inverse. . .)
Dans la plupart des langages de programmation actuels, les espacessont significatifs, et les mots-clés sont réservés
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 25 / 38
Théorie des langages et compilation Analyse lexicale
Générateurs d’analyseurs lexicaux
Langage C : lex ou flex
Langage Ada : Alex
Langage Java : Jflex
Langage OCaml : OCamllex
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 26 / 38
Théorie des langages et compilation Analyse lexicale
Exemple très rapide : Lex
On écrit des expressions régulières, munies de fonctions simples pourcalculer les valeurs associées aux lexèmes :
e = |’[’ {BRACKET}|[’0’-’9’] [’0’-’9’]∗ {INT (int_of_string e)}|[’0’-’9’] [’0’-’9’]∗’.’[’0’-’9’]∗ {FLOAT (float_of_string e)}|[’a’-’z’][’a’-’z”A’-’Z”0’-’9’]∗ {try find keyword_table e
with Not_found -> IDENT e}
Après compilation par lex, on obtient un programme analyseur, qui lit descaractères dans un flux d’entrée et écrit des lexèmes dans un flux desortie
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 27 / 38
Théorie des langages et compilation Analyse syntaxique
Théorie des langages et compilation
Structure d’un compilateurAnalyse lexicaleAnalyse syntaxiqueAnalyse sémantiqueConclusion
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 28 / 38
Théorie des langages et compilation Analyse syntaxique
Qu’est ce que l’analyse syntaxique?
L’analyse syntaxique a pour but :de vérifier que le texte d’entrée est conforme à la grammaired’indiquer les erreurs de syntaxede construire une représentation intermédiaire pour les autres modules ducompilateur
→ arbre de syntaxe abstraite, utilisé par la suite de la compilation
Ne s’occupe pas des aspects contextuels de la syntaxepar exemple détecter l’erreur dans int i; . . .; i = “abcd”;c’est le rôle de l’analyse sémantique, qui travaille sur la représentationintermédiaire
Représentation unique du texte source→ l’analyse doit être déterministe,si possible linéaire (éviter notamment les retours en arrière)
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 29 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques
Analyseur syntaxique descendant, ou analyseur prédictifConstruit l’arbre de dérivation à partir de sa racine et en effectuant desdérivations en considérant la tête des règles de production et en faisantdes dérivations les plus à gaucheFamille des analyseurs LL (left scanning, leftmost derivation )JavaCC, ANTLR, LLGen, . . .
Analyseur syntaxique ascendant ou par décalage-réductionConstruit l’arbre de dérivation à partir de ses feuilles et en effectuant desdérivations en considérant la partie droite des règles de production et enfaisant des dérivations les plus à droiteFamille des analyseurs LR (left scanning, rightmost derivation )YACC/Bison
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 30 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Soit w = accbbadbc
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Soit w = accbbadbc
Analyse LL :S
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Soit w = accbbadbc
Analyse LL :S −→ aSbT
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Soit w = accbbadbc
Analyse LL :S −→ aSbT −→ acT bT
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Soit w = accbbadbc
Analyse LL :S −→ aSbT −→ acTbT −→ accbT
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Soit w = accbbadbc
Analyse LL :
S −→ aSbT −→ acTbT −→ accbT −→ accbbS
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Soit w = accbbadbc
Analyse LL :
S −→ aSbT −→ acTbT −→ accbT −→ accbbS −→ accbbaSbT
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Soit w = accbbadbc
Analyse LL :
S −→ aSbT −→ acTbT −→ accbT −→ accbbS −→ accbbaSbT−→ accbbadbT
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Soit w = accbbadbc
Analyse LL :
S −→ aSbT −→ acTbT −→ accbT −→ accbbS −→ accbbaSbT−→ accbbadbT −→ accbbadbc
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Soit w = accbbadbc
Analyse LL :
S −→ aSbT −→ acTbT −→ accbT −→ accbbS −→ accbbaSbT−→ accbbadbT −→ accbbadbc
Analyse LR :accbbadbc
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Soit w = accbbadbc
Analyse LL :
S −→ aSbT −→ acTbT −→ accbT −→ accbbS −→ accbbaSbT−→ accbbadbT −→ accbbadbc
Analyse LR :accbbadbc
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Soit w = accbbadbc
Analyse LL :
S −→ aSbT −→ acTbT −→ accbT −→ accbbS −→ accbbaSbT−→ accbbadbT −→ accbbadbc
Analyse LR :accbbadbc ←− acT bbadbc
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Soit w = accbbadbc
Analyse LL :
S −→ aSbT −→ acTbT −→ accbT −→ accbbS −→ accbbaSbT−→ accbbadbT −→ accbbadbc
Analyse LR :
accbbadbc ←− acTbbadbc←− aSbbadbc
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Soit w = accbbadbc
Analyse LL :
S −→ aSbT −→ acTbT −→ accbT −→ accbbS −→ accbbaSbT−→ accbbadbT −→ accbbadbc
Analyse LR :
accbbadbc ←− acTbbadbc←− aSbbadbc←− aSbbaSbc
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Soit w = accbbadbc
Analyse LL :
S −→ aSbT −→ acTbT −→ accbT −→ accbbS −→ accbbaSbT−→ accbbadbT −→ accbbadbc
Analyse LR :
accbbadbc ←− acTbbadbc←− aSbbadbc←− aSbbaSbc←− aSbbaSbT
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Soit w = accbbadbc
Analyse LL :
S −→ aSbT −→ acTbT −→ accbT −→ accbbS −→ accbbaSbT−→ accbbadbT −→ accbbadbc
Analyse LR :
accbbadbc ←− acTbbadbc←− aSbbadbc←− aSbbaSbc←− aSbbaSbT←− aSbbS
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Soit w = accbbadbc
Analyse LL :
S −→ aSbT −→ acTbT −→ accbT −→ accbbS −→ accbbaSbT−→ accbbadbT −→ accbbadbc
Analyse LR :
accbbadbc ←− acTbbadbc←− aSbbadbc←− aSbbaSbc←− aSbbaSbT←− aSbbS←− aSbT
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse syntaxique
Types d’analyseurs syntaxiques : exemple
Soit G = 〈V ,Σ,P,S〉 avec
Σ= {a,b,c,d}
V \Σ= {S,T}
6 règles de production :S→ aSbT |cT |dT → aT |bS|c
Soit w = accbbadbc
Analyse LL :
S −→ aSbT −→ acTbT −→ accbT −→ accbbS −→ accbbaSbT−→ accbbadbT −→ accbbadbc
Analyse LR :
accbbadbc ←− acTbbadbc←− aSbbadbc←− aSbbaSbc←− aSbbaSbT←− aSbbS←− aSbT ←− S
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 31 / 38
Théorie des langages et compilation Analyse sémantique
Théorie des langages et compilation
Structure d’un compilateurAnalyse lexicaleAnalyse syntaxiqueAnalyse sémantiqueConclusion
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 32 / 38
Théorie des langages et compilation Analyse sémantique
Analyse sémantique - pourquoi?
Correction syntaxique insuffisante
Exemple : 3+ true > 2 syntaxiquement correct
⇒ Nécessité d’une analyse sémantique
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 33 / 38
Théorie des langages et compilation Analyse sémantique
Analyse sémantique - c’est quoi?
Dans le compilateur d’un langage de programmation :Calcul d’un arbre abstraitDécoré par des informations qui préparent la génération de code (ex :adresses mémoire)Vérifications sémantiques : de type, des déclarations, etc.
Applications de traitement de données textuelles : calculs divers.
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 34 / 38
Théorie des langages et compilation Analyse sémantique
Analyse sémantique - comment?
L’analyse sémantique calcule des données (ex : types, arbres)
⇒ Comment exprimer ces calculs ?
Le plus naturel est de le faire en fonction de sa grammaire : on parle detraduction dirigée par la syntaxe
⇒ On enrichit les grammaires algébriques par 2 concepts :donnéescalculs
et on obtient une grammaire attribuée
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 35 / 38
Théorie des langages et compilation Analyse sémantique
Grammaire attribuée, informellement
C’est une grammaire algébrique, plus :des attributs (les données) associés aux terminaux et non-terminauxdes règles (ou actions sémantiques) associées aux productions (lescalculs des données)
Exemple :E → E +T{E0.val = E1.val +T .val}
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 36 / 38
Théorie des langages et compilation Conclusion
Théorie des langages et compilation
Structure d’un compilateurAnalyse lexicaleAnalyse syntaxiqueAnalyse sémantiqueConclusion
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 37 / 38
Théorie des langages et compilation Conclusion
Conclusion
Table des
symboles
Programme source
Analyseur lexical
Analyseur syntaxique
Analyseur sémantique
Générateur de code intermédiaire
Optimisateur de code
Générateur de code
Programme cible
Erreurs
Partie analyse : sépare les 6=
constituants du prog. source et produit
une représentation intermédiaire
Partie synthèse : génère le prog. cible à
partir de la représentation intermédiaire
Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 38 / 38