0627-theorie-des-langages-analyse-lexicale-et-syntaxique

Telechargé par Walid Ouchaou
Université Paris-Sud
Licence d’Informatique
Informatique Théorique :
Théorie des Langages,
Analyse Lexicale,
Analyse Syntaxique
Jean-Pierre Jouannaud
Professeur
Adresse de l’auteur :
LIX
École Polytechnique
F-91128 Palaiseau CEDEX
URL : http://www.lix.polytechnique.fr/
ii Table des matières
Table des matières
1 Introduction 2
2 Langages formels 3
3 Automates de mots finis 4
3.1 Automates déterministes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2 Automates non déterministes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Déterminisation d’un automate non-déterministe . . . . . . . . . . . 6
3.3 Automates non déterministes avec transitions vides . . . . . . . . . . . . . . . . . . 7
Élimination des transitions vides d’un automate . . . . . . . . . . . . 8
3.4 Minimisation d’un automate déterministe . . . . . . . . . . . . . . . . . . . . . . . 9
3.4.1 Automate minimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.4.2 Calcul de l’automate minimal . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.5 Exercices ........................................ 14
4 Nettoyage des automates 18
4.1 Décision du vide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.2 Décision de la finitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.3 Décision du plein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.4 Exercices ........................................ 19
5 Propriétés de clôture des langages reconnaissables 21
5.1 Clôture Booléenne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.2 Clôture par produits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.3 Clôture par morphisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.4 Pompage des langages reconnaissables . . . . . . . . . . . . . . . . . . . . . . . . . 23
6 Expressions rationnelles 25
6.1 Expressions rationnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.2 Théorème de Kleene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.3 Identités remarquables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.4 Analyse lexicale avec l’outil LEX . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.4.1 Notion de token . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.4.2 Fichier de description LEX . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.4.3 Description des tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.4.4 Règles de priorité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.5 Exercices ........................................ 30
J.-P. Jouannaud Université Paris Sud
Table des matières iii
7 Grammaires formelles 32
7.1 Grammaires....................................... 32
7.2 Langage engendré par une grammaire . . . . . . . . . . . . . . . . . . . . . . . . . 33
7.3 Classification de Chomsky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7.3.1 Grammaires contextuelles . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7.3.2 Grammaires hors-contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7.3.3 Grammaires régulières . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7.4 Forme normale de Chomsky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.5 Dérivations gauches et droites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.6 Arbres syntaxiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7.7 Exercices ........................................ 40
8 Automates à pile 41
8.1 Langages reconnaissables par automates à pile . . . . . . . . . . . . . . . . . . . . . 41
8.2 Automates à pile et grammaires hors-contexte . . . . . . . . . . . . . . . . . . . . . 43
8.3 Exercices ........................................ 44
9 Propriétés de clôture des langages algébriques 45
9.1 Vide et finitude des langages algébriques . . . . . . . . . . . . . . . . . . . . . . . . 45
9.2 Pompage des langage algébriques . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
9.2.1 Propriété de pompage des algébriques . . . . . . . . . . . . . . . . . . . . . 45
9.2.2 Un peu de logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
9.3 Propriétés de clôture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Union, produit et étoile de Kleene. . . . . . . . . . . . . . . . . . . . 47
Intersection et complémentation. . . . . . . . . . . . . . . . . . . . . 48
9.3.1 Substitution et homomorphisme . . . . . . . . . . . . . . . . . . . . . . . . 48
9.3.2 Homomorphisme inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
9.3.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
9.4 Exercices ........................................ 49
10 Analyse syntaxique 50
10.1 Analyse syntaxique descendante . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
10.1.1 Analyse descendante non-déterministe . . . . . . . . . . . . . . . . . . . . . 51
10.1.2 Analyse descendante déterministe . . . . . . . . . . . . . . . . . . . . . . . 51
10.1.3 Automate d’analyse prédictive descendante . . . . . . . . . . . . . . . . . . 53
10.1.4 Condition de déterminisme . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
10.1.5 Factorisation des membres droits . . . . . . . . . . . . . . . . . . . . . . . . 54
10.2 Analyse syntaxique ascendante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
10.2.1 Automate non-déterministe d’analyse ascendante . . . . . . . . . . . . . . . 56
10.2.2 Déterminisation de l’analyse ascendante . . . . . . . . . . . . . . . . . . . . 57
10.2.3 Principes d’une analyse ascendante prédictive . . . . . . . . . . . . . . . . . 57
Conditions de déterminisme . . . . . . . . . . . . . . . . . . . . . . 59
10.2.4 Automate SLR d’analyse ascendante . . . . . . . . . . . . . . . . . . . . . . 60
Variantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
10.2.5 Génération d’analyseurs syntaxiques avec YACC . . . . . . . . . . . . . . . 64
10.3Exercices ........................................ 65
11 Syntaxe abstraite des langages 68
11.1 Grammaires abstraites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
11.2 Arbres de syntaxe abstraite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
11.3 Représentation des valeurs des tokens dans l’arbre . . . . . . . . . . . . . . . . . . . 70
11.4 Calcul des arbres de syntaxe abstraite . . . . . . . . . . . . . . . . . . . . . . . . . 70
J.-P. Jouannaud Université Paris Sud
iv Table des matières
11.5 Codages des arbres de syntaxe abstraite . . . . . . . . . . . . . . . . . . . . . . . . 72
11.6Exercices ........................................ 72
12 Machines de Turing 73
12.1Exercices ........................................ 73
13 Complexité en temps et en espace 74
13.1 Classes de complexité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
13.2 Comparaisons entre mesures de complexité . . . . . . . . . . . . . . . . . . . . . . 75
13.3 Langages complets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
13.3.1 Réductions et complétude . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
13.3.2 NP-complétude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
13.3.3 PSPACE-complétude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
13.4Exercices ........................................ 81
J.-P. Jouannaud Université Paris Sud
1 / 87 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !