Dans Compiler Construction de Aho Ullman et Sethi, il est indiqué que la chaîne de caractères d'entrée du programme source est divisée en séquences de caractères qui ont une signification logique, et sont connues sous le nom de tokens et lexèmes sont des séquences qui composent le token donc quelle est la différence fondamentale ?
Réponses
Trop de publicités?Lexème On dit que les lexèmes sont une séquence de caractères (alphanumériques) dans un token.
Token Un jeton est une séquence de caractères qui peut être identifiée comme une entité logique unique. Les jetons sont généralement des mots-clés, des identificateurs, des constantes, des chaînes de caractères, des symboles de ponctuation, des opérateurs et des nombres.
Patronage Un ensemble de chaînes de caractères décrit par une règle appelée motif. Un motif explique ce qui peut être un jeton et ces motifs sont définis au moyen d'expressions régulières, qui sont associées au jeton.
L'analyseur lexical prend une séquence de caractères, identifie un lexème qui correspond à l'expression régulière et le catégorise ensuite en token. Ainsi, un lexème est une chaîne de caractères correspondant et un nom de token est la catégorie de ce lexème.
Par exemple, considérez l'expression régulière ci-dessous pour un identifiant avec l'entrée "int foo, bar ;".
lettre(lettre|chiffre|_)*
Ici, foo
y bar
correspondent à l'expression régulière et sont donc tous deux des lexèmes mais sont catégorisés comme un seul jeton. ID
c'est-à-dire l'identifiant.
Notez également que la phase suivante, c'est-à-dire l'analyseur syntaxique, n'a pas besoin de connaître le lexème mais un jeton.
- Réponses précédentes
- Plus de réponses