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

  • 32
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jui 29, 2021
  • Catégorie Management
  • Langue French
  • Taille du fichier 0.4780MB