Académique Documents
Professionnel Documents
Culture Documents
Introduction à la compilation
1.1 Introduction
Ce chapitre est organisé comme suit :
La section 2 est consacrée aux diverses définitions des concepts de la compilation. Dans
la section 3, nous présentons les différentes phases de la compilation, et enfin, nous finissons
ce chapitre par une conclusion.
1.2.1 Compiler
Signifie analyser une description d’informations et synthétiser une autre forme de celle-ci
mieux adaptée à ce que l’on veut en faire tout en maintenant la sémantique invariable.
1.2.2 Compilateur
Il peut ˆetre défini comme étant un traducteur d’une forme source à la forme objet. Un
compilateur est un programme traduisant un programme écrit dans un langage évolué
”source” en un programme objet qui est un code executable par une machine réelle ou vir-
tuelle. Un programme source est une suite de caractères ; dans le cas d’une présence d’erreurs,
le compilateur donne un diagnostic à l’utilisateur.
1.2.5 Interpréteur
C’est un programme qui traduit un programme source écrit dans un langage évolué ligne
par ligne et l’exécute au fur à mesure à la différence d’un compilateur. Le temps d’exécution
d’un interpréteur est plus grand que le temps d’exécution d’un compilateur.
La figure 1.1 illustre le fonctionnement d’un compilateur.
Programme Source
Méssages d’erreurs
Analyse Lexicale
Analyse Syntaxique
Analyse Sémantique
Génération des erreurs
Generation du code
intermédiaire
Optimisation du code
intermédiaire et
allocation mémoire
Géneration du code
Objet
Programme Objet
Allocation Mémoire
Son role consiste à
– allouer de l’espace mémoire aux entités du programme (identificateurs, tableaux, struc-
tures, etc.)
– faire correspondre à chaque entité une adresse mémoire contenue dans la table des
symboles ;
– organiser l’espace mémoire pour les procédures et les fonctions ;
– substituer chaque occurrence d’un identificateur par son adresse mémoire.
1.4 Conclusion
Un compilateur traduit le programme source écrit dans un langage évolué vers un pro-
gramme objet, en plus il vérifie que le programme source fourni par le programmeur respecte
les règles de construction du langage de programmation choisi. Il gênera aussi les erreurs au
niveau de chaque étape de la compilation.