ProgrammeL3 · S6Fondements de l’informatique
L3S6Fondements de l’informatique

Compilation

Comprendre les étapes qui transforment un langage source en programme exécutable.

#analyse lexicale#parsing#AST#code intermédiaire
5chapitres
5exercices corrigés
8questions de quiz
0/5chapitres maîtrisés
À LA FIN DE CE COURS

Objectifs d’apprentissage

  • Décrire le pipeline d’un compilateur, de la source à l’exécutable, en distinguant analyse, représentation et synthèse.
  • Construire un flux de lexèmes et spécifier les erreurs lexicales courantes avec des diagnostics précis.
  • Utiliser une grammaire hors contexte pour analyser une expression et produire un arbre syntaxique abstrait correct.
  • Traduire un AST en représentation intermédiaire puis justifier une optimisation locale sans changer la sémantique.
  • Évaluer les limites d’un mini-compilateur : ambiguïtés, portée des noms, types, diagnostics et dépendance à la cible.
AVANT DE COMMENCER

Prérequis utiles

  • Programmation impérative : variables, fonctions, structures de contrôle et manipulation de chaînes.
  • Notions de structures arborescentes, récursivité et complexité asymptotique au niveau licence.
  • Bases de langages formels : alphabet, mots, grammaire et distinction entre syntaxe et sémantique.
CHAPITRE 01 L3 · S6

Analyse lexicale

34 min de lectureLeçon originale de révision

Transformer des caractères en unités

L’analyseur lexical lit le flux de caractères et le regroupe en lexèmes : identifiants, entiers, mots-clés, opérateurs et séparateurs. Il ignore généralement les espaces et commentaires, tout en conservant la position de chaque lexème pour les diagnostics. Une spécification de tokens est souvent réalisée par expressions régulières, puis compilée en automate fini. La règle « plus long lexème » évite de lire <= comme < puis = ; les priorités départagent ensuite les règles de même longueur.

Exemple guidé. Pour x = 12 + 3, on obtient ID(x) ASSIGN INT(12) PLUS INT(3). Un curseur avance : il consomme x, saute l’espace, reconnaît =, puis lit chaque suite de chiffres. Si le langage interdit les identifiants commençant par un chiffre, 12x doit être signalé plutôt que découpé silencieusement en 12 et x.

Erreur fréquente : oublier les caractères illégaux ou confondre valeur textuelle et valeur numérique.

Point de contrôle : proposer le flux de tokens de total<=10 et justifier le choix de <=.

Points à retenir
  • Un lexème est une occurrence concrète d’un type de token.
  • Le principe du plus long lexème stabilise les opérateurs composés.
  • Les positions source sont indispensables aux messages d’erreur exploitables.
Synthèse du chapitre

L’analyseur lexical lit le flux de caractères et le regroupe en lexèmes : identifiants, entiers, mots-clés, opérateurs et séparateurs. Il ignore généralement les espaces et commentaires, tout en conservant la position de chaque lexème pour les diagnostics.