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…