Tom's Guide > Forum > Programmation > c'est quoi un COMPILATEUR ??!

c'est quoi un COMPILATEUR ??!

Forum Programmation : c'est quoi un COMPILATEUR ??!

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

salut tt,

je voudrais vous posez une question

c'est quoi un Compilateur ?

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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.

Répondre à jun

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.

Répondre à CRicky

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??

Répondre à The_Greek22

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)

Répondre à CRicky

Le Compilateur est au code source ce que la cafetière est au café :o

Répondre à ludvic@IDN

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

Répondre à The_Greek22

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.

Répondre à bluedylc

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).

Répondre à CRicky
Tom's Guide > Forum > Programmation > c'est quoi un COMPILATEUR ??!
Aller à :

Il y a 2685 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens