Se connecter / S'enregistrer
Votre question

c'est quoi un COMPILATEUR ??!

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
4 Octobre 2005 12:59:47

salut tt,

je voudrais vous posez une question

c'est quoi un Compilateur ?

Autres pages sur : compilateur

4 Octobre 2005 13:11:13

C'est un programme généralement livré avec un kit de devellopement, il permet de passé d'un langage de programmation donné à un fichier executable, en gros il sert d'interface entre le langage de programmation compréhensible par l'homme au fichier binaire compréhensible par la machine.

Chaque langage possède son propre compilateur.
a b L Programmation
4 Octobre 2005 13:19:50

Un compilateur a 2 parties:
- L'analyse syntaxique (les règles d'écritures)
- L'analyse sémantique (les contextes de variables comme dans les fonctions)

ça convertit un langage en un autre plus simple (langage machine, assembleur, C ou autre), un exécutable binaire étant du langage machine.

L'interface de développement (IDE ou kit de développement) n'est pas un compilateur, mais une interface facilitant l'écriture d'un code qui sera compilé par le compilateur pour générer le fichier exécutable.

Après il y a les interpréteurs, qui contrairement aux compilateurs ne crée pas d'exécutable, mais exécute les instructions en même temps que la lecture du source. L'incovénient est qu'il est plus lent car à chaque ligne de code, il faut faire une analyse syntaxique.
Le langage machine n'a pas besoin d'analyse syntaxique, car c'est le processeur qui prend l'instruction et fait son traitement.
Contenus similaires
4 Octobre 2005 15:53:16

hmm, c'est bien complexe tout ça ,lol!

Mais alors pourquoi si on prend le language php par exemple: il suffit d'écrire dans le bloc-note et d'enregistrer sous monfichier.php!
Mais avec C, C++ etc.. on doit avoir un programme spécial pour pouvoir le créer sous forme .exe .

Je comprend pas pourquoi??
a b L Programmation
4 Octobre 2005 19:42:36

C'est complexe car tu ne sais pas ce qu'il se passe derrière qui est bien plus complexe que ce que j'ai dit.

Un processeur ne connait qu'une suite de bits, comment traduis-tu un fichier qu'un être humain comprend en une suite de bits qu'un ordinateur comprend ?
Le PHP c'est pareil : lui il est interprété (par un serveur PHP qui fait office d'interpréteur):
il faut lire le fichier que tu as écrit dans ton bloc note caractère par caractère : un ordinateur n'est pas intelligent et ce n'est pas de la magie.
Quand il lis un caractère et trouve un '{' il mémorise un début de contexte, il transforme les appel de fonctions reprère la fin du contexte avec les '}' et plein d'autres trucs.
Mais l'interprétation c'est de l'exécution d'un code:
copie du contenu du fichier dans une adresse mémoire, lecture de cette mémoire octet par octet etc.

Quand tu exécutes un langage interprété comme le PHP, il y a énormément plus d'instructions processeur qui sont exéctés derrière, alors qu'avec un .exe on envoie tout directement au processeur. Avec un interpréteur, c'est le programme de l'interpréteur qui est envoyé au processeur et qui permet l'analyse.
C'est ce qui fait les grosses différences de performances entre de l'interprété et du compilé.

La création d'un .exe rend le programme très difficile à comprendre pour un être humaine mais extrêment facile pour un ordinateur.
Pour simplifier, un processeur à une liste d'instruction codé en binaire (une valeur signifiant addition, une autre multiplication, une autre copie mémoire etc (mais seulement des opérations de bases)
5 Octobre 2005 18:01:22

Le Compilateur est au code source ce que la cafetière est au café :o 
5 Octobre 2005 18:16:14

merci Cricky , je crois avoir compris! :-D
Très bonne explication (en tout cas mieux que celle de LudVic).
:arf:

5 Octobre 2005 18:17:54

faux. L´analogie totale serait : le programme c'est le café moulu, le compilateur c'est la cafetière, l'éxécutable c'est le verre de café.

De plus, PHP c'est bien gentil, mais comme c'est interprété (et que c'est mal fait) c'est très, très lent.

Enfin, il ne faut pas dire "il existe un compilateur par langage" mais "un compilateur fonctionne pour un seul langage". Pour pas mal de langages il existe plusieurs compilateurs.
a b L Programmation
5 Octobre 2005 20:51:13

Pour le café effectivement, le café moulu est le code source ("programme" est ambigu ;-) )

Citation :

bluedylc a écrit :
Enfin, il ne faut pas dire "il existe un compilateur par langage" mais "un compilateur fonctionne pour un seul langage". Pour pas mal de langages il existe plusieurs compilateurs.

C'est pas tout à fait vrai, car un compilateur comme cl (celui de visual C++) compile du C et du C++. Bon ok, c'est certainement 2 parties séparée dans le compilateur, on peut considérer qu'il y a 2 compilateurs ;-)

Sinon pour tous les compilateurs compilant an langage machine, il y a un compilateur par architecture: 1 pour PC, 1 pour Mac (et toutes une multitudes de plateformes diverses), puisque les langages machines sont différents (chaque processeur a son catalogue d'instructions).
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS