Autres liens concernant ce sujet:
  • Programmation en C
  • Accueil Forum Imprimer Contact

    Compilateurs

    Une question fréquente lorsqu'un langage de programmation est abordé, est de connaître l'équipement logiciel nécessaire, en particulier le compilateur. Nous allons ici aborder le fonctionnement général des compilateurs et, bien entendu, évoquer des compilateurs C/C++ pour les systèmes d'exploitation Linux et Windows.
    Fondamentalement, le rôle d'un compilateur est de transformer un code source écrit dans un langage de haut niveau (ici le langage C) en langage machine (code binaire) compréhensible par l'ordinateur.




    Niveaux des langages

    Nous parlons de langage de bas niveau lorsque celui-ci est composé de valeurs binaires (langage machine) ou en est proche. Au contraire, un langage de haut niveau est compréhensible pour nous et peut être travaillé. Dans le schéma ci-dessous, vous pouvez observer la "hiérarchie" des niveaux de langages.




    Niveaux des langages



    Processus de conversion en langage machine

    Le processus de conversion du langage de haut niveau en langage machine est illustré plus bas. Le code C est d'abord compilé et converti en code machine, qui est enregistré dans un fichier objet qui porte l'extension .OBJ ou .o. Une étape intermédiaire consiste à convertir le code en assembleur. Cela n'est pas illustré dans le schéma, car les fichiers en assembleur n'apparaissent pas. Seul le fichier objet contenant le code en langage machine est visible. L'éditeur de lien entre ensuite en fonction. Son rôle est d'intégrer dans le code en langage machine les instructions se rapportant aux bibliothèques de fonctions. Ces bibliothèques de fonctions sont en réalité les fichiers .h (headers ou fichiers d'en-tête) que nous déclarons en début de programme. Une fois l'édition des liens terminée, nous obtenons un fichier exécutable. Il y a donc 3 fichiers importants que nous pouvons relever: le code source (fichier.c ou .cpp), le fichier objet (.obj ou .o) et le fichier exécutable (.exe ou .out).

    Afin de se faire une idée concrète du contenu du fichier objet, analysons l'instruction suivante en assembleur. Celle-ci effectue l'addition de 2 et 3.

    ADD 2, 3

    En langage machine, cette instruction est représentée par les valeurs binaires suivantes.

    0001101 0010 0011




    Le préprocesseur

    Les instructions destinées au préprocesseur commencent toujours par le symbole #. Ainsi, nous pouvons inclure le contenu d'un fichiers d'en-tête avec l'instruction #include<fichier.h>. C'est notamment à cette tâche qu'est astreint le préprocesseur: intégrer au fichier le contenu des fichiers .h. Il signal également les éventuelles erreurs présentes dans le code source.
    Le schéma ci-dessous résume toutes ces notions.




    Processus de compilation et d'édition de liens



    Compilateurs et programmation sous Linux

    Sous Linux, le meilleur moyen de programmer est d'utiliser le compilateur GCC fourni. Vous pouvez utiliser n'importe quel éditeur de texte pour éditer votre code.
    Vous obtiendrez de l'aide sur GCC en tapant la commande:

    man gcc


    Pour compiler un programme et le rendre exécutable, tapez la commande:

    gcc monprogramme.c


    Cette commande va générer un fichier exécutable nommé a.out. Pour l'exécuter, tapez:

    ./a.out


    Si vous désirez donner un nom plus explicite à l'exécutable, tapez le commande suivante:

    gcc monprogramme.c -o monexecutable


    Le fichier source monprogramme.c sera compilé et un exécutable sera généré sous le nom "monexecutable.out", que nous pouvons lancer comme suit:

    ./monexecutable


    Notez que la programmation graphique sous Linux se fait à l'aide des outils Gnome/GTK. Notez également qu'un exécutable créé sous Linux ne pourra pas être exécuté sous Windows. A l'inverse, un fichier exécutable de Windows ne peut pas être exécuté directement sous Linux. Il existe des outils permettant de contourner ce problème (émulateurs). Nous n'entrerons pas ici dans les détails.



    Compilateurs et programmation sous Windows

    Il existe deux compilateurs très populaires dans Windows. Il s'agit de Borland C++ Builder et Microsoft C++. Nous avons retenu ici Borland C++. Son interface permet de créer votre code, et également d'en faire un programme graphique. L'image ci-dessous montre l'interface de Borland C++ Builder.




    Compilateur Borland C++ Builder

    Ce compilateur fournit les outils nécessaires pour créer des programmes graphiques. Nous en avons illustré un exemple ici. Dans cet exemple, nous avons ajouté un bouton. Cette action génère une fonction contenant le code que ce bouton doit exécuter. Il ne s'agit que d'un exemple simple. La totalité de l'utilisation de l'outil graphique est détaillée dans la documentation fournie avec ce compilateur.




    Création d'une interface graphique avec le compilateur Borland C++ Builder





    Ce manuel est gratuit mais n'est pas libre de droits.
    © J.BAUMANN