WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Les systèmes embarqués

( Télécharger le fichier original )
par Ramzi BOULKROUNE
Université de Annaba - Ingénieur d'état en électronique option télécommunication 2009
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

II.7. De la compilation au ciblage du logiciel :

II.7.1 Introduction sur la compilation :

La compilation est un sujet récurrent en informatique comme en électronique : en effet, pour simplifier les descriptions, il est préférable d'utiliser des langages de haut niveau, proche d'un langage naturel. Cependant, ces langages ne peuvent en général pas être utilisés directement : il est

nécessaire de les traduire dans des formes moins sympathiques, mais correspondant directement à la réalité (dans le cas de l'électronique), ou directement utilisables par les outils ou les machines (dans le cas de l'électronique et de l'informatique). Cette section est une introduction à ce mécanisme de traduction appelé compilation.

II.7.1.1. Définitions de la compilation :

La compilation est la traduction automatique d'une description écrite dans un langage vers un autre langage. Très souvent, ce terme est restreint à la traduction d'un langage de programmation de haut niveau tel que le C vers le langage machine du processeur qui devra exécuter le programme.

Le flot de compilation est décomposé en plusieurs étapes (passes) consécutives :

- L'analyse lexicale qui produit une suite d'identificateurs correspondant aux instructions du programme d'entrée. Ces identificateurs sont appelés unités lexicales ou token ;

- L'analyse syntaxique qui produit un arbre dont chaque noeud décrit une opération élémentaire, et dont les arcs indiquent les dépendances de contrôle ;

- L'analyse sémantique qui enrichit cet arbre pour obtenir un arbre dit « décoré ». Il s'agit d'une étape de synthèse ;

- La génération de code qui parcourt l'arbre « décoré » en générant le code du langage cible correspondant à chaque noeud.

Les trois premières étapes ne dépendent que du langage d'entrée et sont appelées le frontal du compilateur. La dernière étape ne dépend que du langage cible et est appelée le dorsal du compilateur.

REMARQUE :

Très souvent, il y a une étape supplémentaire entre l'analyse sémantique et la génération de code : l'étape d'optimisation indépendante du langage cible. Cette étape se rencontre notamment avec les compilateurs vers les langages d'assemblage.

L'étape de génération de code peut être très complexe lorsque des optimisations spécifiques au langage cible sont entreprises.

Un abus de langage souvent commis est d'inclure l'édition de liens dans le flot de compilation vers le langage machine d'un processeur. L'édition de liens consiste à associer une adresse à chaque objet d'un programme en langage machine pour pouvoir le charger en mémoire et l'utiliser conjointement avec d'autres programmes.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Tu supportes des injustices; Consoles-toi, le vrai malheur est d'en faire"   Démocrite