Principes et Techniques des Compilateurs Année Universitaire 2013 / 2014Analyse
Principes et Techniques des Compilateurs Année Universitaire 2013 / 2014AnalyseLexicale 2 Plan Généralités Unité lexicale, Lexème et Modèles Définition régulière Diagramme de transition 3 Rôle de l’analyseur lexical Lire les caractères du texte d'entrée. Supprimer les blancs, les commentaires, etc. Former des unités lexicales . Passer des couples <unité lexicale, valeur lexicale> à l'Analyseur Syntaxique. Relier les messages d’erreurs issus du compilateur au code source. Schéma usuel d’implémentation de l’analyseur lexical – interaction avec l’analyseur syntaxique Programme source Programme source Analyseur lexical Analyseur Syntaxique Table de symboles TOKEN COURANT TOKEN PROCHAIN L’unité lexicale. le lexème. le modèle. Unités lexicales, lexèmes et modèles A propos d’une unité lexicale reconnue dans le texte source on doit distinguer trois notions importantes : 4 Unités lexicales, lexèmes et modèles Unité lexicale Pour la plupart des langages de programmation, les constructions suivantes sont traitées comme des unités lexicales : Mots clés. Opérateurs arithmétiques Opérateurs logiques Identificateurs. Séparateurs ( ‘(’, ‘)’, ‘,’, ‘:’, etc.) 5 Unités lexicales, lexèmes et modèles Lexème Un lexème est une suite de caractères du programme source qui concordent avec le modèle de l’unité lexicale. Exemple : const max_length = 256; Dans la déclaration précédente, la chaîne de caractères max_length est un lexème de l’unité lexicale Identifier. 6 Unités lexicales, lexèmes et modèles Modèle le modèle sert à spécifier l’unité lexicale. Pour les mots réservés tels que const, if, while, etc. le lexème et le modèle coïncident généralement. Le modèle de l’unité lexicale const est la chaîne const. Pour une unité lexicale rel_oper qui représente les opérateurs relationnels, le modèle est l’ensemble des opérateurs relationnels : <, < =, ==, >=, >, != Pour décrire précisément les modèles des unités lexicales plus complexes tels que les identificateurs et les nombres, on utilise les expressions régulières . Des langages et outils permettent d’engendrer une reconnaissance efficace par automates finis des expressions régulières. 7 Unités lexicales, lexèmes et modèles Unité lexicale Lexèmes Description informelle des modèles const const const if if if rel_oper < , <= , == , != , >= , > < | <= | == | != | >= | > identifier e pi length Lettre suivie de lettres ou de chiffres ou le caractère ‘_’ 8 Les définitions régulières Les définitions régulières permettent de donner des noms à des ER définies sur un alphabet à partir de symboles de base et de les utiliser comme s’ils étaient des symboles de . d1 r1 d2 r2 … dn rn di est un nom distinct et chaque ri est une ER sur les symboles de ∪{d1, d2, …, di-1}. 9 Rappel : Les expressions régulières Exemple letter A | B | … | Z | a | b | … | z digit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 identifier letter (letter | digit)* number digit+ 10 Les diagrammes de transitions décrivent les actions qui sont réalisées quand l’analyseur syntaxique appelle un analyseur lexical pour fournir la prochaine unité lexicale. Un état initial du diagramme. En entrant dans un état on lit le prochain caractère. Si l’étiquette d’un arc sortant de l’état courant concorde avec le caractère d’entrée on passe à l’état pointé par cet arc. Autrement on signale une erreur. Diagrammes de transitions 11 Diagrammes de transitions Exemples begin 0 1 2 3 4 5 6 7 8 < = return (relop, LE) > return (relop, DIFF) other return (relop, LT) = return (relop,EQ) > = return (relop, GE) other return (relop, GT) Diagramme de transition pour les opérateurs de relation Diagramme de transition pour les identificateurs begin 9 11 10 letter Letter | digit other * * * État d’acceptation 12 Réalisation de Diagrammes de transitions begin 0 1 5 6 2 3 4 7 8 < = > other = > = other 9 10 letter other Letter | digit * * * 19 20 21 22 * digit digit . digit digit other 23 24 digit digit other * 13 uploads/Management/ analyse-lexicale 2 .pdf
Documents similaires










-
32
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 29, 2021
- Catégorie Management
- Langue French
- Taille du fichier 0.4780MB