Analyse lexical Définition À partir du programme source, qui se présente comme
Analyse lexical Définition À partir du programme source, qui se présente comme un flot de caractères, l'analyse lexicale permet de reconnaitre des unités lexicales, qui sont les mots que l'analyseur syntaxique va ensuite les utiliser. Analyseur Analyseur Unité lexicale Programme Analyseur lexical Analyseur syntaxique Table des symboles Prochaine unité lexicale? Programme source Remarques: 1-Les unités lexicales seront stockées au fur et à mesure dans la table de symboles. 2-L’opération du lecture du texte source doit s’accompagner avec des tâches supplémentaires: Eliminer les blancs, les commentaires, fin de lignes, gérer les numéros des lignes pour l’utiliser dans le cas d’une erreur rencontrée, ….. 3-L’analyseur lexical doit signaler chaque présence d’erreur dans le texte d’entrée. 102 Analyse lexical Lexème, unité lexicale Lexème (ouToken): est une chaîne de caractères qui constitue une seule entité tirée à partir du texte source. Par exemple dans l’instruction suivante: aire:=base * hauteur / 2, l’analyseur lexical reconnaît les lexèmes suivants Unité lexicale: est un type de lexème qui est un symbole terminal qui rentre dans la construction du langage source. Unité lexicale: est un type de lexème qui est un symbole terminal qui rentre dans la construction du langage source. Pour l’exemple précédent, on trouve: Lexèmes Unité lexicale aire , base , hauteur identificateur := op-affectation * , / op-arithmétique 103 Analyse lexical Modèle Modèle: est une règle décrivant les lexèmes qui correspondent à une unité lexicale particulière. Nous utilisons les expressions régulières ou les automates finis pour représenter les modèles des unités lexicales. Exemple: - Modèle identificateur: - Modèle identificateur: 0 lettre | _ lettre | _ | chiffre 1 104 Analyse lexical Spécification des unités lexicales Un identificateur: lettre(lettre|chiffre)* = [a-zA-Z][a-zA-Z0-9]* Un entier signé ou non: (+|-)? (chiffre)+ = [+-]?[0-9]+ Un nombre décimal: (+|-)? (chiffre)+ (.(chiffre)+)? Un réel: (+|-)?(chiffre)+(.(chiffre)+)?((e|E)(+|-)?(chiffre)+)? = [+-]?[0-9]+(.[0-9]+)?((e|E)(+|-)?[0-9]+)? 105 Analyse lexical Spécification des unités lexicales Une définition régulière est une suite de définitions de la forme: d1 r1 Chaque di est un nom distinct d2 r2 et chaque ri est une expression d2 r2 et chaque ri est une expression . . ……… régulière. dn rn Nous allons voir quelques exemples de définitions régulières. 106 Analyse lexical Spécification des unités lexicales Exemples: 1- Définition régulière d'un identificateur: 2- Définition régulière des entiers signés et non signés: 107 Analyse lexical Spécification des unités lexicales 3- Définition régulière d'un réel: 108 Analyse lexical Reconnaitre un mot par un automate: Exemple: 109 Analyse lexical Exercice 1 1- Écrire une grammaire pour générer les identificateurs d’un langage comme Pascal ou C. On considérera qu’un identificateur est valide s’il commence par une lettre (majuscule ou minuscule) suivi d'un nombre quelconque (éventuellement aucun) de symboles. Ces symboles sont constitués par des lettres, des chiffres, et du caractère '_'. 2- Une constante de type chaîne de caractères est délimitée par des apostrophes et constituée d'un nombre quelconque de caractères. Pour permettre à une apostrophe de 2- Une constante de type chaîne de caractères est délimitée par des apostrophes et constituée d'un nombre quelconque de caractères. Pour permettre à une apostrophe de faire partie d'une chaîne de caractères, on double celle-ci. 2-1- Écrire la grammaire qui permet de générer cette unité lexicale. 2-2- Construire l’automate qui permet de reconnaitre cette unité lexicale. 2-3- Donner quelques lexèmes qui sont définis par cette unité lexicale. 2-4-Trouver des constantes qui ne sont pas reconnues par cette unité lexicale. 110 Correction 1) ID →Lettre Suite_de_symbole Suite_de_symbole →Symbole Suite_de_symbole | ε Symbole →Lettre | Chiffre | _ Lettre →a|b|c|….|z|A|B|….|Z Lettre →a|b|c|….|z|A|B|….|Z Chiffre →0|1|2|…..|9 111 Correction 112 Analyse lexical Construction de l’analyseur lexical I- Implémenter tous les modèles (automates) représentant les unités lexicales du langage traité. Exemples: Identificateurs, Mots clés, Nombres, Opérations relationnelles, Opérations logiques, opérations arithmétiques, ……. II- Traiter le programme source caractère par caractère pour: - Extraire les lexèmes reconnus par leur automates et les enregistrer dans une table des symboles avec d’autre attributs attributs - Gérer les erreurs pour les lexèmes non reconnus. Exemples: x:=y+30 Lexèmes Unités lexicales Attributs x , y identificateur Adresse de x et y: Pour le GC Type de x et y: Pour l’AS := op-affectation + op-arithmétique 30 nombre Type: Pour l’AS 113 Analyse Syntaxique Rôle de l’analyse syntaxique 114 Analyse Syntaxique Rôle de l’analyse syntaxique 115 Analyse Syntaxique Rôle de l’analyse syntaxique 116 Analyse Syntaxique Grammaire 117 Analyse Syntaxique Définition formelle d'une grammaire 118 Analyse Syntaxique Exemple d'une grammaire pour les expressions arithmétiques simples 119 Analyse Syntaxique Conventions et notation 120 Analyse Syntaxique Représentations 121 Analyse Syntaxique Dérivations 122 Analyse Syntaxique Arbre de dérivation 123 Analyse Syntaxique Arbre de dérivation 124 Analyse Syntaxique Arbre de dérivation 125 Analyse Syntaxique Arbre de dérivation: Définition plus formelle 126 Analyse Syntaxique Exemple d’arbres de dérivation: 127 Analyse Syntaxique Ambiguïté 128 Analyse Syntaxique Ambiguïté 129 Analyse Syntaxique Ambiguïté 130 Analyse Syntaxique Ambiguïté 131 Analyse Syntaxique Résolution des ambiguïtés: le même non terminal 132 Analyse Syntaxique Résolution des ambiguïtés: le même non terminal 133 Analyse Syntaxique Résolution des ambiguïtés: non terminal différents 134 Analyse Syntaxique Résolution des ambiguïtés: non terminal différents 135 Analyse Syntaxique Résolution des ambiguïtés d'associativité et de précédence 136 Analyse Syntaxique Résolution des ambiguïtés: cas du if 137 Analyse Syntaxique Analyseur Syntaxique 138 Analyse Syntaxique Analyseur Syntaxique 139 Analyse Syntaxique Analyseur Syntaxique: Approche descendante 140 Analyse Syntaxique Analyseur Syntaxique: Approche ascendante 141 Analyse Syntaxique Analyseur Syntaxique: Approche ascendante 142 Analyse Syntaxique Analyseur Syntaxique: Approche ascendante 143 Analyse Syntaxique Analyseur Syntaxique: Approche ascendante 144 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse 145 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse 146 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: First() 147 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: First() 148 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: First() 149 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: First() 150 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: First() 151 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: First() 152 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: First() 153 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: First() 154 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: First() 155 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: Follow() 156 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: Follow() 157 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: Follow() 158 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: Follow() 159 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: Follow() 160 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: Follow() 161 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: Follow() 162 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: Follow() 163 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: Follow() 164 Analyse Syntaxique Analyseur Syntaxique: Table d’analyse: Follow() 165 Analyse Syntaxique Construction de la table d'analyse LL 166 Analyse Syntaxique Construction de la table d'analyse LL 167 Analyse Syntaxique Construction de la table d'analyse LL 168 Analyse Syntaxique Construction de la table d'analyse LL 169 Analyse Syntaxique Construction de la table d'analyse LL 170 Analyse Syntaxique Construction de la table d'analyse LL 171 Analyse Syntaxique Construction de la table d'analyse LL 172 Analyse Syntaxique Construction de la table d'analyse LL 173 Analyse Syntaxique Construction de la table d'analyse LL 174 Analyse Syntaxique Construction de la table d'analyse LL 175 Analyse Syntaxique Construction de la table d'analyse LL 176 Analyse Syntaxique Construction de la table d'analyse LL 177 Analyse Syntaxique Construction de la table d'analyse LL 178 Analyse Syntaxique Accepter/Rejeter un mot par une grammaire 179 Analyse Syntaxique Accepter/Rejeter un mot par une grammaire 180 Analyse Syntaxique Accepter/Rejeter un mot par une grammaire 181 Analyse Syntaxique Accepter/Rejeter un mot par une grammaire 182 Analyse Syntaxique Accepter/Rejeter un mot par une grammaire 183 Analyse Syntaxique Accepter/Rejeter un mot par une grammaire 184 Analyse Syntaxique Accepter/Rejeter un mot par une grammaire 185 Analyse Syntaxique Accepter/Rejeter un mot par une grammaire 186 Analyse Syntaxique Accepter/Rejeter un mot par une grammaire 187 Analyse Syntaxique Accepter/Rejeter un mot par une grammaire 188 Analyse Syntaxique Accepter/Rejeter un mot par une grammaire 189 Analyse Syntaxique Accepter/Rejeter un mot par une grammaire 190 Analyse Syntaxique Accepter/Rejeter un mot par une grammaire 191 Analyse Syntaxique Accepter/Rejeter un mot par une grammaire 192 Analyse Syntaxique Accepter/Rejeter un mot par une grammaire 193 Analyse Syntaxique Accepter/Rejeter un mot par une grammaire 194 Analyse Syntaxique Accepter/Rejeter un mot par une grammaire 195 Analyse Syntaxique Accepter/Rejeter un mot par une grammaire 196 Analyse Syntaxique Arbre de dérivation de l'exemple 197 uploads/Management/ cours-7.pdf
Documents similaires
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/AGHWCaiRS0ZVnsE6LmQmkiyMobKHvooFiLb7MxnYFDYWD5Y5JwHOv38Z9Is4VtgEWlnc1dPm2kEtnCELmVSfMSwJ.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/kM7imsTMIcijncq2Wok9DbLkRkvbWl7awGFNnfeb1fYEefu8Yk7zJxYZPMrkqUZX0OcyW24peZ4BpaIXDkatE4tQ.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/pocWlD5bdndNTKodKjVJOxaIbUqzxH18mWmIroATOh3VEZVknANX9Z7I1DuRGbqIjOFmzfWLxvKTzDPJovH020W4.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/Z7EQAS7Dr6FVPW9Vd7VsfmDBh3OHuA26DdDVAxnnptZpxXw16jtYXPgaP4yeYvxQJbSTD0M175W68uubB0J9Oeca.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/SXKfTO8DnJVOSmUul87LBd1uMAMysfz30cEBpxCmRCaToKHrxCHiku5P4BQ6OeRGKT8p2Vcjjm9F8F8UPUk58oKD.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/aa6c18T5Ymu5wpKjiiCsuI7aD6IXKreSpWnJue513PRaufh9qhWXVnf6CEGwTFMhPHNMsOgHJbdJkSrSHqFvLbin.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/kte4ACZW4IUrmjDmjSQMFVnOY5ZWZSKyOAX50EDFLndKf4tRZtUhkJBkdoCqf5hV9AUmbXT3UqeMrUUESzYAOwKe.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/GKhNREzYwXrAFNtD7DrZbjkBtLGlLCoUNWL7CuIXivJhFyXBmyySNXOzlMcDxxGkxyf0z4kjfLwuXQjVAv9PHgMs.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/CHPv23m501IIbiEpsqQFfJNdQ8JTwmVS7gCggzZdQNgR6AJEWFaFssvsekKF6Oht1VObEhGe9KHjeNyrfSXBMyzv.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/Q1DpC1ziSnLqvYj19cohtkbW1c4MjAAUhNnE8jPdvuLtQ3GfTJRN82fV66VPsIrR4Z3m9EVYy0uDgfPZFo4yWnrb.png)
-
22
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jul 07, 2021
- Catégorie Management
- Langue French
- Taille du fichier 6.7858MB