
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