Logistique
Chaîne de production d’un programme
Chaîne de production d’un programme
Plan
1. Généralités : • compilateur, assembleur, éditeur de liens • compilation séparée • directives #include, … • espace d’adressage d’un programme
2. l’outil make • cible, dépendance • fichier Makefile de base • un peu plus sur le fichier Makefile 3. Annexes • Structure des fichiers objets • Structure des fichiersexécutables
_______________________________________ ___© ENST BCI Informatique
227
_______________________________________ ___© ENST BCI Informatique
228
Chaîne de production d’un programme
Chaîne de production d’un programme
Chaîne de production
1. Généralités : • compilateur, assembleur, éditeur de liens • compilation séparée • directive #include, bibliothèques
2.l’outil make • cible, dépendance • fichier Makefile de base • un peu plus sur le fichier Makefile
_______________________________________ ___© ENST BCI Informatique
229
_______________________________________ ___© ENST BCI Informatique
230
Chaîne de production d’un programme
Chaîne de production d’un programme
Pour exécuter un programme, on passe par les étapes suivantes : -écriture d’un ou plusieurs fichiers sources qui sont automatiquement rangés sur disque par l’éditeur, – utilisation, éventuellement complètement transparente, d’OUTILS DE PRODUCTION pour obtenir un fichier exécutable. Ce fichier, comme les fichiers sources, est rangé sur disque. – pour exécuter ce fichier, on le charge en mémoire. Ceci est fait en « tapant » le nom de ce fichier exécutable qui estalors chargé du disque vers la mémoire par le système d’exploitation. Pour le fichier exécutable, on parle également de fichier binaire. On utilise ce terme pour signifier que ce fichier contient des instructions et des données représentées suivant un format et un codage compréhensibles par le processeur de la machine. Les fichiers sources, par contre, sont lisibles par l’utilisateur, maisincompréhensibles pour le processeur. Le rôle du compilateur est principalement de traduire le fichier source, écrit en langage de haut niveau, espéranto des programmeurs, dans le langage du processeur qui pilote la machine. Les outils de productions aident à automatiser ce passage du source à l’exécutable, surtout dans le cas de l’existence de nombreux fichiers sources.
Place des outils de productionEditeur
Reflexion
Fichier source 1
•••
Fichier source i
•••
Fichier source n
Programmation
OUTILS DE PRODUCTION
Outils de production
Fichier exécutable
Fichier exécutable rangé sur disque
Chargement en mémoire pour l’exécution
Exécution en mémoire
_______________________________________ ___© ENST BCI Informatique
231_______________________________________ ___© ENST BCI Informatique
232
Chaîne de production d’un programme
Chaîne de production d’un programme
1-Compilateur Traduit les modules sources écrits en langage de haut niveau (C, Ada, …) en modules objets qui contiennent du langage machine mais dans lesquels les calculs d’adresses ne sont pas résolus. 2-Editeur de liens (linker) : rassemble les modules traduits séparément parles traducteurs, les relie et produit un module chargeable (ou relogeable – relocatable -). Fonctions de l’éditeur de liens : Pour fusionner les espaces d’adressage séparés des modules objet en un seul espace linéaire, l’éditeur de liens : – Construit une table qui indique le nom, la taille et la longueur de tous les modules objet, – Affecte une adresse de chargement à chaque module objet, -Effectue la translation en modifiant les instructions qui contiennent une référence mémoire, – Résout les références externes en insérant l’adresse des procédures à l’endroit où elles sont appelées. 3- Chargeur (loader) : On rappelle que le processeur va chercher en MEMOIRE les informations dont il a besoin, c’est-à-dire le programme et les données. Le rôle du chargeur est donc d’aller chercher…