Vous êtes sur la page 1sur 12

Institut supérieur des études Technologique de Rades

Département Technologies de l’informatique

PRÉSENTATION DU
THÈME 1 : LES ÉTAPES DE COMPILATION
D’UN PROGRAMME C
Enseignant : Habib Smei
Réalisé par : Khammassi Nourhéne

Classe : L3-SEM

Année Universitaire : 2020-2021


Plan
01 Introduction

02 Définition de la compilation

03 Les étapes de compilation d’un programme c

04 Conclusion
INTRODUCTIO
N
• Un programme en c est un programme écrit en langage c qui traduit un algorithme décrivant la solution
d’un problème . Il est composé de :
 Directives de préprocesseur (#)
 Déclarations
 Fonctions
 Fonction principale (main)
 Instruction
 Bloc
 Commentaires ( /* texte */ , // ligne )

1
DÉFINITION DE LA
COMPILATION

• C’est la traduction automatique d'une description écrite dans un langage vers un


autre langage.
• Très souvent ce terme est restreint a la traduction d’un langage de programmation de
haut niveau tel que le c vers le langage machine du processeur qui devra exécuter
le programme .

2
Les étapes de compilation d’un programme c :

Prog.c Source du programme

I
nt1r-opdruéct–iotrnaitement

Prog.i Source du programme traité

2 - Compilation
Compilation

Prog.s Programme en assembleur

3 - Assemblage
Prog.o
Fichier objet

4 - Edition de lien
Fichier exécutable
Prog
3
Les étapes de compilation d’un programme c :

Prog.c

gcc -E prog.c > prog,i

Prog.i

gcc –S prog.i –o prog.s


Compilation

Prog.s

gcc –c prog.s –o prog.o

Prog.o

gcc prog.o –o prog

Prog
4
• 1ére étape : pré – traitement
 Enlève les commentaries //,/*,*/ qui sont
utiles au programmeur mais inutiles our
l’ordinateur .
 Inclusion des fichiers ,h dans le fichier .c
(#include) .
 Evalue les directives de pré – traitement
commencent par un caractère #.
 #ifdef, #ifndef, #if defined ,#else ,#undef
… #endif evaluation conditionnelle
des directives de pré – traitement .
 cpp fichier.c > fichier.i
 ou directement depuis le fichier C
 gcc –E fichier.c > fichier.i
 Le fichier resultant porte
souvent 5
• 2éme étape compilation en langage
assembleur :
• Le programme C obtenu après pré-
traitement produit un fichier texte
contenu du code en langage
d’assemblage spécifique a la machine .
• Sur laquelle le code est compile
(compilation native ) .
• cc1 prog.i –o prog.s
• Ou directement depuis le fichier c
• gcc –S prog.c –o prog.s
• Le fichier résultant porte
souvent
l’extension .s
• Au cas ou aucun nom de
fichier
d’exécutable n’aurait été précise avec
6
–o , l’exécutable génère a par default
• 3éme étape Assemblage :
• Le code assembleur est assemblé
pour générer du code machine .
• Le fichier produit est appelé fichier
objet .
• as prog.s –o prog.o
• Ou directement depuis le fichier.c

• gcc –c prog.c –o prog.o


• Le fichier résultant porte souvent
l’extension .o
• Au cas ou aucun nom de fichier
d’exécutable n’aurait été précise
avec –o , l’exécutable génère a par
default le nom du fichier suivi de .o

7
4éme étape Edition de liens :
 L'édition de liens prend un ensemble
de fichiers objets pour produire un
programme exécutable.
 Rassemble les fichiers objets du
programme / rassemble les
objets fichiers
(système) / extrait les L'édition des liens va réunir le fichier
objet et les formations contenues
du des bibliothèques dans les bibliothèques, pour produire
le programme complet : l'exécutable
fonctions
(statistiques et dynamiques) / résout a.out dans notre exemple .
les problèmes d’adressage .

 Au cas ou aucun nom de


fichier
d’exècutable n’aurait été précise avec
8
-o et l’exècutable génère a par défaut
CONCLUSION

Le langage C est le langage C est un langage compilé


reconnu dans le monde entier donc après avoir tapé vos
commandes , pour exécuter
et utilisé dans une multitude
votre programme vous devez
d’applications , il est un
langage de base de tous les l’exécuter a travers un
langages. compilateur pour transformer
le formulaire lisible en
langage lisible par machine .

9
MERCI POUR
VOTRE
ATTENTION