Qu'est-ce qu'une compilation ?
La compilation est un processus de conversion du code source en code objet. Cela se fait à l'aide du compilateur. Le compilateur vérifie le code source pour les erreurs syntaxiques ou structurelles, et si le code source est sans erreur, il génère alors le code objet.
Le processus de compilation c convertit le code source pris en entrée en code objet ou code machine. Le processus de compilation peut être divisé en quatre étapes, à savoir le prétraitement, la compilation, l'assemblage et la liaison.
Le préprocesseur prend le code source en entrée et supprime tous les commentaires du code source. Le préprocesseur prend la directive du préprocesseur et l'interprète. Par exemple, si , la directive est disponible dans le programme, puis le préprocesseur interprète la directive et remplace cette directive par le contenu du 'stdio.h' déposer.
Voici les phases par lesquelles passe notre programme avant d'être transformé en une forme exécutable :
Préprocesseur
Le code source est le code qui est écrit dans un éditeur de texte et le fichier de code source reçoit une extension « .c ». Ce code source est d'abord transmis au préprocesseur, puis le préprocesseur développe ce code. Après avoir développé le code, le code développé est transmis au compilateur.
Compilateur
Le code développé par le préprocesseur est transmis au compilateur. Le compilateur convertit ce code en code assembleur. Ou on peut dire que le compilateur C convertit le code prétraité en code assembleur.
Assembleur
Le code assembleur est converti en code objet à l'aide d'un assembleur. Le nom du fichier objet généré par l'assembleur est le même que celui du fichier source. L'extension du fichier objet sous DOS est « .obj » et sous UNIX, l'extension est « o ». Si le nom du fichier source est 'Bonjour c', alors le nom du fichier objet serait « hello.obj ».
Éditeur de liens
Principalement, tous les programmes écrits en C utilisent des fonctions de bibliothèque. Ces fonctions de bibliothèque sont précompilées et le code objet de ces fichiers de bibliothèque est stocké avec l'extension « .lib » (ou « .a »). Le fonctionnement principal de l'éditeur de liens est de combiner le code objet des fichiers de bibliothèque avec le code objet de notre programme. Parfois, la situation se présente lorsque notre programme fait référence aux fonctions définies dans d'autres fichiers ; alors l'éditeur de liens joue un rôle très important à cet égard. Il relie le code objet de ces fichiers à notre programme. Par conséquent, nous concluons que le travail de l'éditeur de liens est de lier le code objet de notre programme avec le code objet des fichiers de bibliothèque et d'autres fichiers. La sortie de l'éditeur de liens est le fichier exécutable. Le nom du fichier exécutable est le même que celui du fichier source mais ne diffère que par ses extensions. Sous DOS, l'extension du fichier exécutable est « .exe » et sous UNIX, le fichier exécutable peut être nommé « a.out ». Par exemple, si nous utilisons la fonction printf() dans un programme, alors l'éditeur de liens ajoute son code associé dans un fichier de sortie.
Comprenons à travers un exemple.
Bonjour c
#include int main() { printf('Hello javaTpoint'); return 0; }
Maintenant, nous allons créer un organigramme du programme ci-dessus :
Dans l'organigramme ci-dessus, les étapes suivantes sont suivies pour exécuter un programme :
- Premièrement, le fichier d'entrée, c'est-à-dire Bonjour c, est transmis au préprocesseur, et le préprocesseur convertit le code source en code source étendu. L'extension du code source étendu serait bonjour.je.
- Le code source étendu est transmis au compilateur et le compilateur convertit ce code source étendu en code assembleur. L'extension du code assembleur serait bonjour.s.
- Ce code assembleur est ensuite envoyé à l'assembleur, qui convertit le code assembleur en code objet.
- Après la création d'un code objet, l'éditeur de liens crée le fichier exécutable. Le chargeur chargera ensuite le fichier exécutable pour l'exécution.