C'est quoi la compilation

slouma -  
telliak Messages postés 3668 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je veux savoir si la compilation est la traduction du code source en code assembleur ou en code binaire ?

le code binaire est dapres ce que j'ai compris est un fichier composé par des 0 et des 1, le processeur va alors ouvrir ce fichier et le lire et lorsqu'il trouve un 1 il le converti en courant ? c'est ca ?
corriger moi svp

4 réponses

Felice_ Messages postés 265 Date d'inscription   Statut Membre Dernière intervention   11
 
Compilation, en informatique : travail réalisé par un compilateur qui consiste à transformer un code source lisible par un humain en un fichier binaire exécutable par une machine.
1
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Dans certains cas ce que tu dis est correct, mais dans le cas général il y a des imprécisions qui font que cela peut être faux.

"le code binaire est dapres ce que j'ai compris est un fichier composé par des 0 et des 1"
Techniquement, tous les fichiers sont composés de 0 et de 1, car c'est le seul moyen pour l'ordinateur de les stocker et de les traiter.
Un fichier binaire se différencie d'un fichier texte par sa capacité à être modifié par un être humain. L'ajout d'un caractère en plein milieu d'un fichier texte n'aura généralement d'impact que sur le texte proche du caractère modifié, alors qu'une modification d'un fichier binaire - même d'un seul bit - peut corrompre l'intégralité du fichier.
Sauf exceptions, le code source est un fichier texte, le résultat de la compilation est un fichier binaire.

"le processeur va alors ouvrir ce fichier et le lire "
En général ce n'est pas le processeur qui lit le fichier, mais le système d'exploitation, c'est pour cela que la compilation d'un programme est différente pour Windows, Linux ou Mac, car même si le code source est identique au départ, le programme à compiler sera différent.
On peut aussi compiler du bytecode, c'est à dire un format de fichier qui ne sera pas lu par le système d'exploitation mais par un programme installé sur celui-ci (exemple les machines virtuelle Java)

"la compilation est la traduction du code source en code assembleur ou en code binaire ?"
Donc pour répondre à ta question, oui, la compilation est une traduction du code source, en général à sens unique : il n'est pas possible de récupérer le code source à partir du résultat de la compilation.
Cependant on ne peut pas vraiment dire que cette traduction se fasse "en code assembleur ou en code binaire", car cela dépend du compilateur.
De manière général on parlera plutôt de "fichier exécutable" c'est à dire que le programme est valide et prêt à être exécuté (que ce soit directement par le système d'exploitation ou via une machine virtuelle)
La confiance n'exclut pas le contrôle
1
jee pee Messages postés 41520 Date d'inscription   Statut Modérateur Dernière intervention   9 720
 
Salut,

L'assembleur est un langage de programmation, comme le C ou le pascal, il doit lui aussi être compilé pour obtenir un code exécutable.

cdlt
0
telliak Messages postés 3668 Date d'inscription   Statut Membre Dernière intervention   882
 
Re,
le code binaire est dapres ce que j'ai compris est un fichier composé par des 0 et des 1, le processeur va alors ouvrir ce fichier et le lire et lorsqu'il trouve un 1 il le converti en courant ? c'est ca ?
Cette métaphore est quand même un peu éloignée de la réalité... je te conseille plutôt une recherche, avec architecture ordinateur, par exemple.
0