Qu'on se le dise : sans compilateur, vous ne pourriez rien faire de vos programmes C++. Je m'en vais ici vous présenter un peu plus en détail le rôle du compilateur, et puis je vais vous parler un peu des divers compilateurs proposés sur le marché, afin que vous soyez en mesure de les utiliser (c'est vrai que quand on achète un compilateur, on est en droit de s'attendre à savoir l'utiliser).
Ouarf! Le processeur il sait pas lireu!!!
Dans votre machine, il est un petit joujou essentiel : j'ai nommé le processeur (ou CPU, pour Central Processing Unit, in english, oeuf corse!). C'est un peu le coeur de la machine. Mais qu'est-ce que c'est quoi donc qu'un CPU? En fait, ce n'est ni plus ni moins qu'une plaquette de silicium sur laquelle on a gravé des millions et des millions, et puis encore quelques millions de transistors. Ces transistors vont travailler ensemble pour effectuer des opérations (additions, multiplications...). Le problème, c'est qu'une petite bêbête comme ça ne comprend pas grand chose, en dehors de courants électriques. Le CPU reçoit ses instructions octet par octet (c.f. Le langage binaire), de manière codée. Pour lui dire d'ajouter 3 et 5, il faut fournir trois informations: l'opération à effectuer (addition), et puis les deux nombres à ajouter, ce qui fait 3 octets : un pour l'opération et deux pour les opérandes (en fait ceci est faux et il en faut souvent bien plus que 3 octets pour faire une addition, mais je simplifie pour n'embrouiller personne, et de toute façon, le principe reste le même). Voilà ce qu'il y a dans un programme après compilation : si vous avez déjà regardé, vous avez pu constater que vous n'y comprenez rien, mais le CPU, lui, comprend tout!
Tout ceci est un peu confus, je vais vous proposer un second point de vue : le processeur comprend un langage très spécial, le langage machine. Nous, pauvres humains, ne sommes pas arrangés par ce langage machine, qui ne reflète en rien les tâches que nous voulons effectuer. C'est pour cela qu'on à inventé des langages de plus haut niveau (C, C++, Pascal, Basic, Lisp...), qui nous permettent de nous rapprocher de notre conception de l'automatisation. Le compilateur, c'est celui qui va traduire ce qu'on a écrit en langage de haut niveau en langage machine. Imaginez de plus qu'il existe plusieurs dizaines de langages de programmation, chacun ayant une bonne raison d'être ; on conçoit alors qu'il est impossible qu'un processeur comprenne tous ces langages, d'où la nécessité de lui traduire dans son langage à lui.
![]() |
|
Quel compilateur utiliser?
Tout d'abord, il va sans dire qu'il vous faut un compilateur C++. Après cela, le choix reste vaste, mais en fait, tout ce qu'il vous faut, c'est un compilateur (sans blague?) et un éditeur (ou EDI, pour Environnement de Developpement Intégré). Le reste (profiler, debugger, resource editor...) reste du luxe au niveau où nous sommes.
Il existe un compilateur gratuit : GCC (G++ pour compiler du C++). Ce compilateur existe sous Unix, Linux, BeOS, et a un équivalent (DJGPP) sous Windows. Les trois premiers systèmes sont souvent accompagnés de ce compilateur. Sous Windows (ou DOS, par la même occasion), il va faloir aller chercher DJGPP à l'adresse http://ww.delorie.com/djgpp/.
Pour les éditeurs, vous avez le choix. Sous tous les Unix ou semblables, il y a l'incontournable emacs (que je n'aime pas du tout, mais les goûts et les couleurs ne se discutent pas). DJGPP vient avec une editeur qui s'appelle RHIDE. Si vous êtes un peu curieux, allez voir sur internet, et vous trouverez des éditeurs à la pelle. Le mieux serait d'en avoir un qui mette en valeur la syntaxe (qui utilise des couleurs, pour rendre le code plus facile à lire), mais c'est encore une question de goût.
Bien sûr, il y a les commerciaux, comme Borland C++ Builder ou Microsoft Visual C++, qui bien que chers, ont l'énorme avantage de venir avec une documentation souvent assez fournie, ce qui est un atout appréciable. De plus, ils sont généralement dotés d'éditeurs grand luxe.
Le choix du compilateur vous revient donc. Essayez, comparez, faites-vous votre propre opinion. Tout dépend de votre propre goût.
La compilation
Dans un premier temps, il ne vous sera pas utile de créer des projets compliqués. La plupart du temps, nous nous contenterons d'un seul fichier source, ce qui facilite grandement la compilation. En général, si vous utilisez un EDI, il y a une commande Run (ou Lancer, en V.F.). La plupart du temps, il vous suffira de cliquer dessus pour que, si vous n'ayez pas fait d'erreur dans votre programme, celui-ci soit compilé et lancé. Etant donné le vaste choix d'EDIs et de compilateurs, je ne peux pas vous donner la description exact de la marche à suivre ; il vous faudra regarder dans une documentation ou dans l'aide en ligne de votre logiciel (s'il en a une).
Pour l'ensemble des GCC (y compris DJGPP), vous pouvez compiler votre programme monprog.cpp en tapant :
g++ monprog.cpp -o monprog (sous Unix, Linux et BeOS)
gxx monprog.cpp -o monprog.exe (sous Windows ou DOS, avec DJGPP)
Ceci se fait à partir de la ligne de commande (le shell pour les Unixiens), dans le répertoire où vous avez sauvegardé votre fichier monprog.cpp. Pour les autres, je ne pourrais pas vous aider plus que ça, il vous faudra vous renseigner par vous-même. Ensuite, tapez simplement "./monprog" sous Unix ou "monprog" sous DOS pour lancer le programme (comme vous lancez un programme d'habitude).
Voilà pour les compilateurs. Rappelez-vous : il est très important de lire la documentation, elle est la seule à pouvoir vous renseigner correctement!!! Si le chien est le meilleur ami de l'homme, la touche F1 est la meilleure amie du programmeur.
Voir aussi: Liens - Le langage binaire