Qu'est-ce que le compilateur?
Un compilateur est un programme informatique qui transforme le code écrit dans un langage de programmation de haut niveau en code machine. C'est un programme qui traduit le code lisible par l'homme dans un langage qu'un processeur informatique comprend (binaire 1 et 0 bits). L'ordinateur traite le code machine pour effectuer les tâches correspondantes.
Un compilateur doit se conformer à la règle de syntaxe du langage de programmation dans lequel il est écrit. Cependant, le compilateur n'est qu'un programme et ne peut pas corriger les erreurs trouvées dans ce programme. Donc, si vous faites une erreur, vous devez modifier la syntaxe de votre programme. Sinon, il ne se compilera pas.
Qu'est-ce que l'interprète?
Un interpréteur est un programme informatique qui transpose chaque instruction de programme de haut niveau dans le code machine. Cela inclut le code source, le code précompilé et les scripts. Le compilateur et les interprètes font le même travail qui consiste à convertir un langage de programmation de niveau supérieur en code machine. Cependant, un compilateur convertit le code en code machine (crée un exe) avant l'exécution du programme. Les interprètes convertissent le code en code machine lorsque le programme est exécuté.
DIFFÉRENCE CLÉ
- Le compilateur transforme le code écrit dans un langage de programmation de haut niveau en code machine, immédiatement avant l'exécution du programme, tandis qu'un interprète transforme chaque instruction de programme de haut niveau, une par une, en code machine, pendant l'exécution du programme.
- Le code compilé s'exécute plus rapidement tandis que le code interprété s'exécute plus lentement.
- Le compilateur affiche toutes les erreurs après la compilation, par contre, l'interpréteur affiche les erreurs de chaque ligne une par une.
- Le compilateur est basé sur le modèle de liaison-chargement de traduction, tandis que l'interpréteur est basé sur la méthode d'interprétation.
- Le compilateur prend un programme entier tandis que l'interpréteur prend une seule ligne de code.
Différence entre compilateur et interprète
Base de la différence | Compilateur | Interprète |
---|---|---|
Étapes de programmation |
|
|
Avantage | Le code du programme est déjà traduit en code machine. Ainsi, le temps d'exécution du code est inférieur. | Les interprètes sont plus faciles à utiliser, en particulier pour les débutants. |
Désavantage | Vous ne pouvez pas modifier le programme sans revenir au code source. | Les programmes interprétés peuvent s'exécuter sur des ordinateurs dotés de l'interpréteur correspondant. |
Langage machine | Stocker le langage machine sous forme de code machine sur le disque | Ne pas enregistrer du tout le code machine. |
Temps de fonctionnement | Le code compilé s'exécute plus rapidement | Le code interprété s'exécute plus lentement |
Modèle | Il est basé sur le modèle de traduction-chargement de la langue. | Il est basé sur la méthode d'interprétation. |
Génération de programme | Génère un programme de sortie (sous forme d'exe) qui peut être exécuté indépendamment du programme d'origine. | Ne générez pas de programme de sortie. Ils évaluent donc le programme source à chaque fois pendant l'exécution. |
Exécution | L'exécution du programme est distincte de la compilation. Il n'a été exécuté qu'après la compilation de l'ensemble du programme de sortie. | L'exécution du programme fait partie du processus d'interprétation, elle est donc effectuée ligne par ligne. |
Mémoire nécessaire | Le programme cible s'exécute indépendamment et ne nécessite pas le compilateur dans la mémoire. | L'interprète existe dans la mémoire lors de l'interprétation. |
Idéal pour | Limité à la machine cible spécifique et ne peut pas être porté. C et C ++ sont les langages de programmation les plus populaires qui utilisent le modèle de compilation. | Pour les environnements Web, où les temps de chargement sont importants. En raison de toute l'analyse exhaustive effectuée, les compilations prennent un temps relativement plus long pour compiler même le petit code qui ne peut pas être exécuté plusieurs fois. Dans de tels cas, les interprètes sont meilleurs. |
Optimisation du code | Le compilateur voit tout le code à l'avance. Par conséquent, ils effectuent de nombreuses optimisations qui accélèrent l'exécution du code | Les interprètes voient le code ligne par ligne, et donc les optimisations ne sont pas aussi robustes que les compilateurs |
Saisie dynamique | Difficile à mettre en œuvre car les compilateurs ne peuvent pas prédire ce qui se passe au moment du tour. | Les langues interprétées prennent en charge la saisie dynamique |
Usage | Il est le mieux adapté à l'environnement de production | Il est le mieux adapté au programme et à l'environnement de développement. |
Erreur d'exécution | Le compilateur affiche toutes les erreurs et avertissements au moment de la compilation. Par conséquent, vous ne pouvez pas exécuter le programme sans corriger les erreurs | L'interpréteur lit une seule instruction et affiche l'erreur le cas échéant. Vous devez corriger l'erreur pour interpréter la ligne suivante. |
Saisir | Cela prend tout un programme | Cela prend une seule ligne de code. |
Production | Compliers génère du code machnie intermédiaire. | L'interpréteur ne génère jamais de code machnie intermédiaire. |
les erreurs | Afficher toutes les erreurs après la compilation, toutes en même temps. | Affiche toutes les erreurs de chaque ligne une par une. |
Langages de programmation pertinents | C, C ++, C #, Scala, Java utilisent tous complier. | PHP, Perl, Ruby utilise un interpréteur. |
Rôle du compilateur
- Compliers lit le code source, produit le code exécutable
- Traduit les logiciels écrits dans un langage de niveau supérieur en instructions que l'ordinateur peut comprendre. Il convertit le texte qu'un programmeur écrit dans un format que le CPU peut comprendre.
- Le processus de compilation est relativement compliqué. Il passe beaucoup de temps à analyser et à traiter le programme.
- Le résultat de l'exécutable est une forme de code binaire spécifique à la machine.
Rôle de l'interprète
- L'interpréteur convertit le code source ligne par ligne pendant le temps d'exécution.
- Interpréter traduit complètement un programme écrit dans un langage de haut niveau en langage de niveau machine.
- L'interpréteur permet l'évaluation et la modification du programme pendant son exécution.
- Relativement moins de temps consacré à l'analyse et au traitement du programme
- L'exécution du programme est relativement lente par rapport au compilateur
LANGUES DE HAUT NIVEAU
Les langages de haut niveau, comme C, C ++, JAVA, etc., sont très proches de l'anglais. Cela facilite le processus de programmation. Cependant, il doit être traduit en langage machine avant son exécution. Ce processus de traduction est mené soit par un compilateur, soit par un interprète. Aussi connu sous le nom de code source.
LANGAGE MACHINE
Les langages machine sont très proches du matériel. Chaque ordinateur a son langage machine. Les programmes en langage machine sont constitués de séries de motifs binaires. (Ex. 110110) Il représente les opérations simples qui doivent être effectuées par l'ordinateur. Les programmes en langage machine sont exécutables pour pouvoir être exécutés directement.
CODE OBJET
Lors de la compilation du code source, le code machine généré pour différents processeurs comme Intel, AMD, un ARM est différent. Pour rendre le code portable, le code source est d'abord converti en code objet. C'est un code intermédiaire (similaire au code machine) qu'aucun processeur ne comprendra. Au moment de l'exécution, le code objet est converti en code machine de la plate-forme sous-jacente.
Java est à la fois compilé et interprété.
Pour exploiter les avantages relatifs des compilateurs sont des interprètes, certains langages de programmation comme Java sont à la fois compilés et interprétés. Le code Java lui-même est compilé en code objet. Au moment de l'exécution, la machine virtuelle Java interprète le code objet en code machine de l'ordinateur cible.