Information Technology Reference
In-Depth Information
Nous avons vu que le compilateur traduit un programme écrit en langage de haut
niveau vers un programme objet, écrit en langage machine. Toute modification inter-
venant au niveau du programme source en langage de haut niveau ne peut être prise
en compte que par le biais d'une opération de compilation, qui traduit la modification
en langage machine. Or, la durée d'une opération de compilation est fortement liée à
la taille du programme source à compiler : plus celui-ci est gros, plus la compilation
est longue. C'est pourquoi on préfère souvent, pour l'écriture d'un gros programme,
découper celui-ci en modules , compilables séparément. Un module correspond souvent
à une unité logique du programme : une procédure avec les données qu'elle mani-
pule, le programme principal, etc. La compilation séparée de chacun des modules
source donne autant de modules objet. La construction du programme exécutable
final est alors à la charge de l'éditeur de liens, qui doit relier les modules objets entre
eux pour construire un seul programme exécutable.
Par ailleurs, les modules utilisateurs vont souvent faire appel à des fonctions
prédéfinies disponibles dans des bibliothèques du langage de haut niveau utilisé : par
exemple, les fonctions mathématiques, les fonctions graphiques, l'interface des fonc-
tions du système. C'est également le rôle de l'éditeur de liens que de faire la liaison
entre les appels à ces fonctions dans le code source utilisateur et le code de ces fonc-
tions, stocké dans les bibliothèques. Pour effectuer ces opérations de liaison entre
modules utilisateurs et fonctions de bibliothèques, l'éditeur de liens utilise des infor-
mations de liaison, écrites en entête de chaque module par le compilateur : ce sont
les liens à satisfaire et les liens utilisables des modules.
3.2.2
Fonctionnement de l'éditeur de liens
Nous allons à présent décrire le fonctionnement de l'éditeur de liens. À partir d'un
exemple, nous commençons par définir les notions de liens utilisables et de liens à
satisfaire.
Notion de lien utilisable et de lien à satisfaire
Exemple
Considérons une application de recherche et de réservation de livres dans le cata-
logue informatique d'une bibliothèque. Le logiciel a été structuré sous la forme de
trois modules sources distincts :
- le module interface contient la procédure chargée du dialogue avec le client ;
-le module recherche contient les procédures de recherche dans le catalogue de la
bibliothèque et la procédure de réservation d'un livre ;
-le module affichage contient les procédures permettant l'affichage des résultats
des recherches menées dans le catalogue.
Voici un code source pour chacun des modules, volontairement incomplet et
simplifié, qui porte l'accent sur les dépendances entre les modules.
 
 
Search WWH ::




Custom Search