Lexeur

Définition, exemples et bonnes pratiques

À retenir

  • C'est la toute première étape de l'analyse d'un code source.
  • Il transforme un flux de caractères en une liste de jetons (tokens).
  • Il ne vérifie pas la logique du code, seulement la validité des mots utilisés.

Un lexeur est un composant logiciel qui agit comme un traducteur de premier niveau : il lit un texte brut (comme du code informatique) et regroupe les caractères individuels pour former des unités de sens appelées "jetons" (ou tokens). C'est un peu comme une personne qui lirait une suite de lettres et identifierait où s'arrêtent et commencent les mots avant d'essayer de comprendre la phrase.

Étymologie

Il s'agit d'un calque de l'anglais lexer, formé sur la racine « lexique » (du grec lexis, le mot) avec le suffixe -eur désignant celui qui effectue l'action. Ce terme s'est imposé avec le développement des premiers compilateurs et outils automatisés comme Lex dans les années 1970.

Exemples d'usage

  • Dans la ligne de code x = 10 + 2, le lexeur identifie cinq jetons : l'identifiant x, l'opérateur =, le nombre 10, l'opérateur + et le nombre 2.
  • Dans un fichier de configuration, il permet de distinguer une clé d'une valeur ou d'un crochet de section.

Cas d'usage

Le lexeur intervient systématiquement lors de la compilation ou de l'interprétation d'un langage de programmation. On le retrouve aussi dans les éditeurs de texte pour la coloration syntaxique (souligner les mots-clés en bleu, les chiffres en vert, etc.) et dans l'analyse de formats de données complexes comme le JSON ou le XML.

Bonnes pratiques

Un bon lexeur doit savoir gérer proprement les erreurs (ex: un caractère inconnu comme ¤ dans un code), ignorer les éléments inutiles comme les espaces superflus ou les commentaires, et être extrêmement rapide car il traite l'intégralité du fichier source caractère par caractère.

Synonymes

analyseur lexical scanneur

Conseil

Si vous apprenez la programmation, considérez le lexeur comme un trieur de pièces de LEGO : avant de construire un château (le programme), il sépare les briques par type et par couleur pour que l'étape suivante soit plus simple.

Questions fréquentes

Quelle est la différence entre un lexeur et un parseur ?

Le lexeur reconnaît les 'mots' (tokens), tandis que le parseur (analyseur syntaxique) vérifie si l'ordre de ces mots respecte les règles de grammaire du langage pour former des phrases cohérentes.

Un lexeur peut-il corriger mon code ?

Non, il se contente de signaler s'il rencontre un symbole qu'il ne reconnaît pas dans son dictionnaire de règles.