Processus de compilation en c

Qu’est-ce qu’une compilation ?

La compilation est un processus de conversion du code source en code objet. Cela se fait avec 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 le code objet.

 Processus de compilation en c

Le processus de compilation c convertit le code source pris en entrée dans le code objet ou le code machine. Le processus de compilation peut être divisé en quatre étapes, c’est-à-dire, Prétraitement, Compilation, Assemblage et 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 < stdio.h >, la directive est disponible dans le programme, puis le préprocesseur interprète la directive et remplace cette directive par le contenu du ‘stdio.fichier h.

Voici les phases par lesquelles notre programme passe avant d’être transformé en une forme exécutable:

  • Préprocesseur
  • Compilateur
  • Assembleur
  • Éditeur de liens

 Processus de compilation en c

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 étend 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 d’assemblage. Ou on peut dire que le compilateur C convertit le code prétraité en code assembleur.

Assembleur

Le code d’assemblage 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 le 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 ‘bonjour.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 ‘.lib’ (ou ‘.a’) extension. Le travail 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 produit lorsque notre programme se réfère aux fonctions définies dans d’autres fichiers; alors linker 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 consiste à 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 le 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, l’éditeur de liens ajoute son code associé dans un fichier de sortie.

Comprenons à travers un exemple.

bonjour.c

Maintenant, nous allons créer un diagramme de flux du programme ci-dessus:

 Processus de compilation en c

Dans le diagramme de flux ci-dessus, les étapes suivantes sont prises pour exécuter un programme:

  • Tout d’abord, le fichier d’entrée, c’est-à-dire bonjour.c, est passé au préprocesseur, et le préprocesseur convertit le code source en code source étendu. L’extension du code source étendu serait bonjour.i.
  • Le code source étendu est transmis au compilateur, et le compilateur convertit ce code source étendu en code d’assemblage. L’extension du code d’assemblage serait bonjour.s.
  • Ce code d’assemblage est ensuite envoyé à l’assembleur, qui convertit le code d’assemblage 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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.