polycpp.pdf


Aperçu du fichier PDF polycpp.pdf - page 2/36

Page 1 23436



Aperçu texte


fonctionnalités sont spécifiques au C++ (les autres fonctionnant également en C ANSI)

2) Le processus de compilation
Le C++ est un langage compilé, c'est à dire qu'il faut :




entrer un texte dans l'ordinateur (à l'aide d'un programme appelé EDITEUR, par exemple kwrite ou
le blocnotes),
le traduire en langage machine (c'est à dire en codes binaires compréhensibles par l'ordinateur) : c'est
la compilation (nous utiliserons le compilateur g++),
l'exécuter.

Pour aller plus en détails (voir schéma) : Pour commencer, la compilation d'un source C++ se fait en
plusieurs phases. La première (la précompilation) permet des modifications du code source, et ce à l'aide de
« directives » (commençant par #). Ce n'est que dans une seconde phase que ce source intermédiaire est
effectivement traduit en langage machine : l'objet.
Un programme exécutable peut être fabriqué à partir de divers éléments. On peut par exemple décomposer
son programme source C++ en plusieurs fichiers, que l'on compile séparément. Cela permet, en cas de
modification d'un seul source, de ne recompiler que celui-ci (et réutiliser les autres objets tels quels). Cela
permet également d'utiliser un même objet dans différents programmes (s'ils nécessitent une fonction
commune). On peut également utiliser des objets générés à partir d'un autre langage (si, quand on les a
écrits, on utilisait un autre langage, ou si quelqu'un nous a donné ses sources).
Tout ces objets doivent être regroupés en un seul programme exécutable : c'est le « link ». Il permet
également de lier diverses librairies. Les librairies sont des objets qu'on nous a fournies toutes faites :
fonctions d'accès aux ressources de l'ordinateur, fonctions graphiques, bibliothèques de fonctions
mathématiques... A la différence d'un objet, seules les parties utiles d'une librairie seront chargées dans
l'exécutable.
Pour qu'un programme puisse être exécuté, il faut qu'il soit complètement chargé dans la mémoire de
l'ordinateur. C'est pourquoi tous les objets et librairies statiques sont incorporés dans l'exécutable (qui pourra
donc devenir assez gros). Dans les systèmes d'exploitation multitâches, si plusieurs programmes utilisent
une même librairie, elle serait alors copiée plusieurs fois en mémoire. C'est pourquoi on utilise des librairies
dynamiques (.dll sous Windows) : l'exécutable sait simplement qu'elle est nécessaire. Si, lors du chargement
du programme, elle est déjà présente, inutile de la charger une seconde fois. Certains systèmes ont du mal
par contre à décider quand supprimer une librairie dynamique de la mémoire (en particulier si l'un des
programmes l'ayant demandé à planté).

http://www-ipst.u-strasbg.fr/pat/program/cpp

page 2/36