théorie des langages introduction - ucoz
TRANSCRIPT
![Page 1: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/1.jpg)
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
![Page 2: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/2.jpg)
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
![Page 3: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/3.jpg)
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
![Page 4: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/4.jpg)
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
![Page 5: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/5.jpg)
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
![Page 6: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/6.jpg)
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
![Page 7: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/7.jpg)
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
![Page 8: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/8.jpg)
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
![Page 9: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/9.jpg)
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
![Page 10: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/10.jpg)
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
![Page 11: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/11.jpg)
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
![Page 12: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/12.jpg)
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
![Page 13: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/13.jpg)
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
![Page 14: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/14.jpg)
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
![Page 15: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/15.jpg)
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
![Page 16: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/16.jpg)
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
![Page 17: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/17.jpg)
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
![Page 18: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/18.jpg)
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
![Page 19: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/19.jpg)
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
![Page 20: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/20.jpg)
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
![Page 21: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/21.jpg)
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
![Page 22: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/22.jpg)
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
![Page 23: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/23.jpg)
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
![Page 24: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/24.jpg)
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
![Page 25: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/25.jpg)
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
![Page 26: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/26.jpg)
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
![Page 27: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/27.jpg)
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
![Page 28: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/28.jpg)
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
![Page 29: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/29.jpg)
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
![Page 30: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/30.jpg)
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
![Page 31: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/31.jpg)
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
![Page 32: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/32.jpg)
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
![Page 33: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/33.jpg)
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
![Page 34: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/34.jpg)
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
![Page 35: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/35.jpg)
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
![Page 36: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/36.jpg)
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
![Page 37: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/37.jpg)
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
![Page 38: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/38.jpg)
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
![Page 39: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/39.jpg)
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
![Page 40: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/40.jpg)
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
![Page 41: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/41.jpg)
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
![Page 42: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/42.jpg)
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
![Page 43: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/43.jpg)
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
![Page 44: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/44.jpg)
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
![Page 45: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/45.jpg)
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
![Page 46: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/46.jpg)
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
![Page 47: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/47.jpg)
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
![Page 48: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/48.jpg)
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
![Page 49: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/49.jpg)
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
![Page 50: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/50.jpg)
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
![Page 51: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/51.jpg)
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
![Page 52: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/52.jpg)
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
![Page 53: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/53.jpg)
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
![Page 54: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/54.jpg)
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
![Page 55: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/55.jpg)
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
![Page 56: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/56.jpg)
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
![Page 57: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/57.jpg)
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
![Page 58: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/58.jpg)
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
![Page 59: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/59.jpg)
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
![Page 60: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/60.jpg)
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
![Page 61: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/61.jpg)
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
![Page 62: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/62.jpg)
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
![Page 63: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/63.jpg)
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
![Page 64: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/64.jpg)
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
![Page 65: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/65.jpg)
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
![Page 66: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/66.jpg)
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
![Page 67: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/67.jpg)
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
![Page 68: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/68.jpg)
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
![Page 69: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/69.jpg)
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
![Page 70: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/70.jpg)
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
![Page 71: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/71.jpg)
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
![Page 72: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/72.jpg)
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
![Page 73: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/73.jpg)
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
![Page 74: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/74.jpg)
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
![Page 75: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/75.jpg)
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
![Page 76: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/76.jpg)
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
![Page 77: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/77.jpg)
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
![Page 78: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/78.jpg)
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
![Page 79: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/79.jpg)
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
![Page 80: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/80.jpg)
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
![Page 81: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/81.jpg)
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
![Page 82: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/82.jpg)
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
![Page 83: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/83.jpg)
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
![Page 84: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/84.jpg)
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
![Page 85: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/85.jpg)
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
![Page 86: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/86.jpg)
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
![Page 87: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/87.jpg)
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
![Page 88: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/88.jpg)
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
![Page 89: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/89.jpg)
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
![Page 90: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/90.jpg)
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
![Page 91: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/91.jpg)
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
![Page 92: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/92.jpg)
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
![Page 93: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/93.jpg)
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
![Page 94: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/94.jpg)
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
![Page 95: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/95.jpg)
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
![Page 96: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/96.jpg)
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
![Page 97: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/97.jpg)
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
![Page 98: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/98.jpg)
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
![Page 99: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/99.jpg)
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
![Page 100: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/100.jpg)
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
![Page 101: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/101.jpg)
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
![Page 102: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/102.jpg)
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
![Page 103: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/103.jpg)
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
![Page 104: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/104.jpg)
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
![Page 105: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/105.jpg)
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
![Page 106: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/106.jpg)
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
![Page 107: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/107.jpg)
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
![Page 108: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/108.jpg)
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
![Page 109: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/109.jpg)
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
![Page 110: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/110.jpg)
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
![Page 111: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/111.jpg)
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
![Page 112: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/112.jpg)
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
![Page 113: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/113.jpg)
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
![Page 114: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/114.jpg)
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
![Page 115: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/115.jpg)
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
![Page 116: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/116.jpg)
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
![Page 117: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/117.jpg)
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
![Page 118: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/118.jpg)
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
![Page 119: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/119.jpg)
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
![Page 120: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/120.jpg)
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
![Page 121: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/121.jpg)
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
![Page 122: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/122.jpg)
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
![Page 123: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/123.jpg)
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
![Page 124: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/124.jpg)
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
![Page 125: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/125.jpg)
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
![Page 126: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/126.jpg)
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
![Page 127: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/127.jpg)
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
![Page 128: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/128.jpg)
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
![Page 129: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/129.jpg)
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
![Page 130: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/130.jpg)
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
![Page 131: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/131.jpg)
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
![Page 132: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/132.jpg)
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
![Page 133: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/133.jpg)
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
![Page 134: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/134.jpg)
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
![Page 135: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/135.jpg)
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
![Page 136: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/136.jpg)
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
![Page 137: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/137.jpg)
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
![Page 138: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/138.jpg)
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
![Page 139: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/139.jpg)
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
![Page 140: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/140.jpg)
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
![Page 141: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/141.jpg)
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
![Page 142: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/142.jpg)
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
![Page 143: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/143.jpg)
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
![Page 144: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/144.jpg)
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
![Page 145: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/145.jpg)
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
![Page 146: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/146.jpg)
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
![Page 147: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/147.jpg)
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
![Page 148: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/148.jpg)
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
![Page 149: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/149.jpg)
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
![Page 150: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/150.jpg)
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
![Page 151: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/151.jpg)
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
![Page 152: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/152.jpg)
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
![Page 153: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/153.jpg)
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
![Page 154: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/154.jpg)
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
![Page 155: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/155.jpg)
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
![Page 156: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/156.jpg)
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
![Page 157: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/157.jpg)
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
![Page 158: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/158.jpg)
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
![Page 159: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/159.jpg)
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
![Page 160: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/160.jpg)
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
![Page 161: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/161.jpg)
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
![Page 162: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/162.jpg)
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
![Page 163: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/163.jpg)
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
![Page 164: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/164.jpg)
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
![Page 165: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/165.jpg)
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
![Page 166: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/166.jpg)
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
![Page 167: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/167.jpg)
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
![Page 168: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/168.jpg)
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
![Page 169: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/169.jpg)
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
![Page 170: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/170.jpg)
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
![Page 171: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/171.jpg)
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
![Page 172: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/172.jpg)
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
![Page 173: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/173.jpg)
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
![Page 174: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/174.jpg)
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
![Page 175: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/175.jpg)
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
![Page 176: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/176.jpg)
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
![Page 177: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/177.jpg)
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
![Page 178: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/178.jpg)
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
![Page 179: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/179.jpg)
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
![Page 180: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/180.jpg)
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
![Page 181: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/181.jpg)
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
![Page 182: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/182.jpg)
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
![Page 183: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/183.jpg)
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
![Page 184: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/184.jpg)
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
![Page 185: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/185.jpg)
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
![Page 186: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/186.jpg)
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
![Page 187: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/187.jpg)
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
![Page 188: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/188.jpg)
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
![Page 189: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/189.jpg)
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
![Page 190: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/190.jpg)
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
![Page 191: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/191.jpg)
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
![Page 192: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/192.jpg)
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
![Page 193: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/193.jpg)
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
![Page 194: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/194.jpg)
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
![Page 195: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/195.jpg)
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
![Page 196: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/196.jpg)
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
![Page 197: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/197.jpg)
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
![Page 198: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/198.jpg)
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
![Page 199: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/199.jpg)
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
![Page 200: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/200.jpg)
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
![Page 201: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/201.jpg)
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
![Page 202: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/202.jpg)
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
![Page 203: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/203.jpg)
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
![Page 204: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/204.jpg)
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
![Page 205: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/205.jpg)
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
![Page 206: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/206.jpg)
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
![Page 207: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/207.jpg)
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
![Page 208: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/208.jpg)
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
![Page 209: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/209.jpg)
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
![Page 210: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/210.jpg)
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
![Page 211: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/211.jpg)
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
![Page 212: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/212.jpg)
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
![Page 213: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/213.jpg)
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
![Page 214: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/214.jpg)
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
![Page 215: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/215.jpg)
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
![Page 216: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/216.jpg)
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
![Page 217: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/217.jpg)
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
![Page 218: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/218.jpg)
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
![Page 219: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/219.jpg)
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
![Page 220: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/220.jpg)
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
![Page 221: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/221.jpg)
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
![Page 222: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/222.jpg)
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
![Page 223: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/223.jpg)
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
![Page 224: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/224.jpg)
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
![Page 225: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/225.jpg)
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
![Page 226: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/226.jpg)
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
![Page 227: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/227.jpg)
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
![Page 228: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/228.jpg)
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
![Page 229: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/229.jpg)
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
![Page 230: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/230.jpg)
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
![Page 231: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/231.jpg)
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
![Page 232: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/232.jpg)
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
![Page 233: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/233.jpg)
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
![Page 234: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/234.jpg)
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
![Page 235: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/235.jpg)
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
![Page 236: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/236.jpg)
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
![Page 237: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/237.jpg)
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
![Page 238: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/238.jpg)
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
![Page 239: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/239.jpg)
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
![Page 240: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/240.jpg)
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
![Page 241: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/241.jpg)
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
![Page 242: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/242.jpg)
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
![Page 243: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/243.jpg)
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
![Page 244: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/244.jpg)
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
![Page 245: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/245.jpg)
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
![Page 246: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/246.jpg)
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
![Page 247: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/247.jpg)
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
![Page 248: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/248.jpg)
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
![Page 249: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/249.jpg)
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
![Page 250: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/250.jpg)
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
![Page 251: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/251.jpg)
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
![Page 252: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/252.jpg)
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
![Page 253: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/253.jpg)
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
![Page 254: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/254.jpg)
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
![Page 255: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/255.jpg)
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
![Page 256: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/256.jpg)
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
![Page 257: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/257.jpg)
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
![Page 258: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/258.jpg)
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
![Page 259: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/259.jpg)
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
![Page 260: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/260.jpg)
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
![Page 261: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/261.jpg)
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
![Page 262: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/262.jpg)
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
![Page 263: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/263.jpg)
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
![Page 264: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/264.jpg)
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
![Page 265: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/265.jpg)
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
![Page 266: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/266.jpg)
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
![Page 267: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/267.jpg)
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
![Page 268: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/268.jpg)
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
![Page 269: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/269.jpg)
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
![Page 270: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/270.jpg)
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
![Page 271: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/271.jpg)
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
![Page 272: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/272.jpg)
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
![Page 273: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/273.jpg)
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
![Page 274: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/274.jpg)
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
![Page 275: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/275.jpg)
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
![Page 276: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/276.jpg)
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
![Page 277: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/277.jpg)
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
![Page 278: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/278.jpg)
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
![Page 279: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/279.jpg)
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
![Page 280: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/280.jpg)
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
![Page 281: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/281.jpg)
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
![Page 282: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/282.jpg)
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
![Page 283: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/283.jpg)
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
![Page 284: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/284.jpg)
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
![Page 285: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/285.jpg)
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
![Page 286: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/286.jpg)
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
![Page 287: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/287.jpg)
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
![Page 288: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/288.jpg)
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
![Page 289: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/289.jpg)
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
![Page 290: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/290.jpg)
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
![Page 291: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/291.jpg)
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
![Page 292: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/292.jpg)
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
![Page 293: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/293.jpg)
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
![Page 294: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/294.jpg)
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
![Page 295: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/295.jpg)
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
![Page 296: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/296.jpg)
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
![Page 297: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/297.jpg)
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
![Page 298: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/298.jpg)
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
![Page 299: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/299.jpg)
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
![Page 300: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/300.jpg)
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
![Page 301: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/301.jpg)
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
![Page 302: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/302.jpg)
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
![Page 303: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/303.jpg)
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
![Page 304: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/304.jpg)
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
![Page 305: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/305.jpg)
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
![Page 306: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/306.jpg)
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
![Page 307: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/307.jpg)
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
![Page 308: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/308.jpg)
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
![Page 309: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/309.jpg)
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
![Page 310: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/310.jpg)
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
![Page 311: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/311.jpg)
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
![Page 312: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/312.jpg)
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
![Page 313: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/313.jpg)
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
![Page 314: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/314.jpg)
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
![Page 315: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/315.jpg)
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
![Page 316: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/316.jpg)
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
![Page 317: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/317.jpg)
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
![Page 318: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/318.jpg)
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
![Page 319: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/319.jpg)
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
![Page 320: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/320.jpg)
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
![Page 321: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/321.jpg)
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
![Page 322: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/322.jpg)
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
![Page 323: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/323.jpg)
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
![Page 324: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/324.jpg)
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
![Page 325: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/325.jpg)
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
![Page 326: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/326.jpg)
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
![Page 327: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/327.jpg)
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
![Page 328: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/328.jpg)
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
![Page 329: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/329.jpg)
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
![Page 330: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/330.jpg)
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
![Page 331: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/331.jpg)
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
![Page 332: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/332.jpg)
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
![Page 333: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/333.jpg)
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
![Page 334: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/334.jpg)
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
![Page 335: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/335.jpg)
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
![Page 336: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/336.jpg)
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
![Page 337: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/337.jpg)
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
![Page 338: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/338.jpg)
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
![Page 339: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/339.jpg)
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
![Page 340: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/340.jpg)
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
![Page 341: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/341.jpg)
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
![Page 342: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/342.jpg)
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
![Page 343: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/343.jpg)
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
![Page 344: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/344.jpg)
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
![Page 345: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/345.jpg)
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
![Page 346: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/346.jpg)
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
![Page 347: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/347.jpg)
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
![Page 348: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/348.jpg)
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
![Page 349: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/349.jpg)
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
![Page 350: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/350.jpg)
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
![Page 351: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/351.jpg)
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
![Page 352: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/352.jpg)
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
![Page 353: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/353.jpg)
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
![Page 354: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/354.jpg)
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
![Page 355: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/355.jpg)
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
![Page 356: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/356.jpg)
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
![Page 357: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/357.jpg)
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
![Page 358: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/358.jpg)
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
![Page 359: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/359.jpg)
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
![Page 360: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/360.jpg)
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
![Page 361: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/361.jpg)
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
![Page 362: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/362.jpg)
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
![Page 363: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/363.jpg)
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
![Page 364: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/364.jpg)
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
![Page 365: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/365.jpg)
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
![Page 366: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/366.jpg)
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
![Page 367: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/367.jpg)
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
![Page 368: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/368.jpg)
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
![Page 369: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/369.jpg)
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
![Page 370: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/370.jpg)
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
![Page 371: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/371.jpg)
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
![Page 372: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/372.jpg)
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
![Page 373: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/373.jpg)
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
![Page 374: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/374.jpg)
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
![Page 375: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/375.jpg)
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
![Page 376: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/376.jpg)
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
![Page 377: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/377.jpg)
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
![Page 378: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/378.jpg)
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
![Page 379: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/379.jpg)
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
![Page 380: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/380.jpg)
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
![Page 381: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/381.jpg)
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
![Page 382: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/382.jpg)
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
![Page 383: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/383.jpg)
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
![Page 384: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/384.jpg)
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
![Page 385: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/385.jpg)
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
![Page 386: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/386.jpg)
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
![Page 387: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/387.jpg)
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
![Page 388: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/388.jpg)
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
![Page 389: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/389.jpg)
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
![Page 390: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/390.jpg)
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
![Page 391: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/391.jpg)
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
![Page 392: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/392.jpg)
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
![Page 393: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/393.jpg)
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
![Page 394: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/394.jpg)
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
![Page 395: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/395.jpg)
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
![Page 396: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/396.jpg)
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
![Page 397: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/397.jpg)
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
![Page 398: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/398.jpg)
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
![Page 399: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/399.jpg)
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
![Page 400: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/400.jpg)
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
![Page 401: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/401.jpg)
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
![Page 402: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/402.jpg)
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
![Page 403: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/403.jpg)
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
![Page 404: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/404.jpg)
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
![Page 405: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/405.jpg)
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
![Page 406: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/406.jpg)
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
![Page 407: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/407.jpg)
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
![Page 408: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/408.jpg)
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
![Page 409: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/409.jpg)
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
![Page 410: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/410.jpg)
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
![Page 411: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/411.jpg)
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
![Page 412: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/412.jpg)
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
![Page 413: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/413.jpg)
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
![Page 414: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/414.jpg)
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
![Page 415: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/415.jpg)
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
![Page 416: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/416.jpg)
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
![Page 417: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/417.jpg)
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
![Page 418: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/418.jpg)
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
![Page 419: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/419.jpg)
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
![Page 420: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/420.jpg)
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
![Page 421: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/421.jpg)
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
![Page 422: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/422.jpg)
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
![Page 423: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/423.jpg)
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
![Page 424: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/424.jpg)
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
![Page 425: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/425.jpg)
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
![Page 426: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/426.jpg)
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
![Page 427: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/427.jpg)
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
![Page 428: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/428.jpg)
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
![Page 429: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/429.jpg)
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
![Page 430: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/430.jpg)
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
![Page 431: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/431.jpg)
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
![Page 432: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/432.jpg)
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
![Page 433: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/433.jpg)
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
![Page 434: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/434.jpg)
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
![Page 435: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/435.jpg)
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
![Page 436: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/436.jpg)
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
![Page 437: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/437.jpg)
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
![Page 438: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/438.jpg)
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
![Page 439: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/439.jpg)
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
![Page 440: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/440.jpg)
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
![Page 441: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/441.jpg)
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
![Page 442: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/442.jpg)
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
![Page 443: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/443.jpg)
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
![Page 444: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/444.jpg)
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
![Page 445: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/445.jpg)
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
![Page 446: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/446.jpg)
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
![Page 447: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/447.jpg)
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
![Page 448: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/448.jpg)
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
![Page 449: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/449.jpg)
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
![Page 450: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/450.jpg)
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
![Page 451: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/451.jpg)
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
![Page 452: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/452.jpg)
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
![Page 453: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/453.jpg)
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
![Page 454: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/454.jpg)
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
![Page 455: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/455.jpg)
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
![Page 456: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/456.jpg)
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
![Page 457: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/457.jpg)
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
![Page 458: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/458.jpg)
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
![Page 459: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/459.jpg)
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
![Page 460: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/460.jpg)
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
![Page 461: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/461.jpg)
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
![Page 462: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/462.jpg)
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
![Page 463: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/463.jpg)
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
![Page 464: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/464.jpg)
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
![Page 465: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/465.jpg)
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
![Page 466: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/466.jpg)
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
![Page 467: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/467.jpg)
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
![Page 468: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/468.jpg)
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
![Page 469: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/469.jpg)
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
![Page 470: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/470.jpg)
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
![Page 471: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/471.jpg)
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
![Page 472: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/472.jpg)
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
![Page 473: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/473.jpg)
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
![Page 474: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/474.jpg)
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
![Page 475: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/475.jpg)
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
![Page 476: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/476.jpg)
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
![Page 477: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/477.jpg)
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
![Page 478: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/478.jpg)
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
![Page 479: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/479.jpg)
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
![Page 480: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/480.jpg)
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
![Page 481: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/481.jpg)
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
![Page 482: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/482.jpg)
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
![Page 483: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/483.jpg)
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
![Page 484: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/484.jpg)
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
![Page 485: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/485.jpg)
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
![Page 486: Théorie des langages Introduction - uCoz](https://reader031.vdocuments.us/reader031/viewer/2022012101/6169ebd611a7b741a34cd7cf/html5/thumbnails/486.jpg)
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