(1) Logiciel qui convertit un ensemble d’instructions de langage de haut niveau en une représentation de niveau inférieur. Par exemple, un compilateur d’aide convertit un document texte intégré avec des commandes appropriées dans un système d’aide en ligne. Un compilateur de dictionnaire convertit les termes et les définitions en un système de recherche de dictionnaire.
(2) Logiciel qui traduit un programme écrit dans un langage de programmation de haut niveau (C/C++, COBOL, etc.) en langage machine. Un compilateur génère généralement d’abord le langage d’assemblage, puis traduit le langage d’assemblage en langage machine. Un utilitaire appelé « éditeur de liens » combine ensuite tous les modules de langage machine requis dans un programme exécutable pouvant s’exécuter sur l’ordinateur. Voir optimisation du compilateur.
Voici un exemple conceptuel de code source converti en langage d’assemblage et en code machine par le compilateur :

 Source Code IF COUNT=10 GOTO END-OF-JOB ELSE GOTO COMPUTE-AGAIN ENDIF Assembly Language Machine Language Compare A to B Compare 3477 2883 If equal go to C If = go to 23732 Go to D Go to 23119 Machine Code 10010101001010001010100 10101010010101001001010 10100101010001010010010

_compasm.gif

De C au langage d’assemblage

Un compilateur C / C++ convertit le code C et C++ en langage d’assemblage comme indiqué dans cet exemple. Les flèches rouges pointent vers divers appels de fonction, et le code d’assemblage pour effectuer ces appels suit chaque instruction.

compile2.jpg

Compilateurs et interprètes

Les programmes compilés (à droite) sont traduits dans le langage machine de l’ordinateur cible. Les programmes interprétés (à gauche et au centre) sont conservés dans leur code source d’origine ou sont précompilés sous une forme intermédiaire. Dans les deux cas, un interpréteur est nécessaire pour traduire le programme en langage machine à l’exécution, alors que le programme compilé est « prêt à fonctionner. »

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *