Qu'est-ce que Analyse lexicale ?

Première phase d'un compilateur, qui découpe la suite de caractères du code source en lexèmes (tokens) : identifiants, nombres, opérateurs, mots réservés. Les espaces et commentaires y sont aussi éliminés.

Nom japonais: 字句解析

« Analyse lexicale » apparaît dans 4 questions d'entraînement réparties sur 1 thèmes, dont Compilateurs.

Domaine: Compilateurs

S'entraîner : questions sur Analyse lexicale

Quel est le rôle de l'analyse lexicale d'un compilateur ?

  1. AVérifier, sous forme d'arbre, que les instructions du programme respectent la grammaire du langage
  2. BDécouper la suite de caractères du code source en lexèmes (tokens) comme les identificateurs et les opérateurs
  3. CVérifier la cohérence des types des variables et l'absence de noms non définis
Afficher la réponse et l'explication

Réponse : B. Découper la suite de caractères du code source en lexèmes (tokens) comme les identificateurs et les opérateurs

L'analyse lexicale est la première phase du compilateur ; elle découpe par exemple « count = count + 1; » en lexèmes : identificateur count, symbole =, identificateur count, symbole +, nombre 1, symbole ;. Les espaces et les commentaires sont aussi éliminés à ce stade. Les règles des lexèmes s'exprimant par des expressions régulières, elles se traitent rapidement par automate fini. Vérifier sous forme d'arbre la conformité à la grammaire relève de l'analyse syntaxique suivante, et l'examen des types et des noms de l'analyse sémantique.

Qu'utilise-t-on souvent pour exprimer les règles de reconnaissance des lexèmes dans l'analyse lexicale ?

  1. ALes règles d'arrondi en virgule flottante
  2. BLes expressions régulières et les automates finis qui les traitent
  3. CLes règles de remplacement du cache
Afficher la réponse et l'explication

Réponse : B. Les expressions régulières et les automates finis qui les traitent

Les types de lexèmes s'écrivent de façon concise par des expressions régulières, par exemple « commence par une lettre suivie de lettres ou chiffres » pour un identificateur ou « un ou plusieurs chiffres » pour un nombre. Une expression régulière se convertit en automate fini (machine à nombre fini d'états), qui découpe les lexèmes en un temps proportionnel à la longueur de l'entrée, en changeant simplement d'état à chaque caractère lu. Les analyseurs lexicaux sont donc souvent produits par des outils qui les génèrent automatiquement à partir d'expressions régulières. Les règles d'arrondi ou de cache n'ont rien à voir.

« Analyse lexicale » dans les explications

Questions mentionnant « Analyse lexicale » (4)

  1. Quel est le rôle de l'analyse lexicale d'un compilateur ?
  2. Qu'utilise-t-on souvent pour exprimer les règles de reconnaissance des lexèmes dans l'analyse lexicale ?
  3. Que fait l'analyse syntaxique d'un compilateur ?
  4. Quel type de grammaire, utilisé pour décrire la grammaire de nombreux langages de programmation, sert de base à l'analyse syntaxique ?

Termes associés

Analyse syntaxique Découpe (dicing) Compilation JIT Allocation de registres Arbre syntaxique abstrait (AST) Bloc de base Débordement (spill) Déroulage de boucle (loop unrolling) Élimination des sous-expressions communes Forme SSA

Retour au glossaire