Dernière modification : Dec 08 , 2024

Introduction à la compilation

Introduction à la compilation

Un compilateur est un programme qui a comme entrée un code source écrit en langage de haut niveau
(langage évolué) et qui produit comme sortie un code cible en langage de bas niveau (langage d’assemblage ou langage machine).

Structure générale d'un compilateur

Un compilateur comprend une séquence d'étapes logiques :

  • l'analyse lexicale
  • l'analyse syntaxique
  • l'analyseur sémantique
  • le générateur de code intermédiaire
  • l'optimisateur de code
  • le générateur de code

Analyse lexicale

Décompose le flux de caractère provenant du code d'origine en un ensemble d’entités lexicales (tokens) qui servent d'alphabet pour la grammaire.

Analyse syntaxique

L’analyseur syntaxique (appelé Parser en anglais) a pour rôle principal la vérification de la syntaxe du code en
regroupant les tokens suivant des phrases obéissant à des règles qui permettent de construire une
représentation syntaxique du code source (AST).

Analyse sémantique

Les analyses sémantiques vérifient que les phrases analysées qui sont syntaxiquement correctes ont un sens.

Exemple : 

Je m'appelle Sylvain. SYNTAXE OK, SENS OK

Tu s'manger 24 ans, SYNTAXE OK, SENS KO

Le générateur de code intermédiaire

Il prend l'AST produit dans les étapes précédentes et génère un code source agnostique, facile à optimiser, proche de l'architecture de la machine.

Introduction à la compilation

Created by Sylvain Leroy


Documentation et resources

  1. Coursera
  2. Cours université