théorie des langages introduction - ucoz

486
Théorie des langages Introduction Elise Bonzon http://web.mi.parisdescartes.fr/bonzon/ [email protected] 2012-2013 Elise Bonzon (Université Paris Descartes) Théorie des langages Licence MIA 2012-2013 1/8

Upload: others

Post on 16-Oct-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Théorie des langages Introduction - uCoz

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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