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 (binaires 1 et 0 bits). L’ordinateur traite le code machine pour effectuer les tâches correspondantes.
Un compilateur doit respecter 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 apporter des modifications à la syntaxe de votre programme. Sinon, il ne compilera pas.
Qu’est-ce qu’un interpréteur ?
Un interpréteur est un programme informatique qui recouvre 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 plus haut niveau en code machine. Cependant, un compilateur convertira le code en code machine (créer 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 DE 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éteur couvre chaque programme de haut niveau déclaration, une par une, dans le 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, en revanche, l’interpréteur affiche les erreurs de chaque ligne une par une.Le compilateur
- est basé sur un modèle de liaison-chargement de traduction, tandis que l’interpréteur est basé sur une méthode d’interprétation.
- Le compilateur prend un programme entier alors que l’interpréteur prend une seule ligne de code.
Différence Entre le Compilateur et l’Interpréteur
Base de différence | Compilateur | Interprète |
---|---|---|
Étapes de programmation |
|
|
Avantage | Le code du programme est déjà traduit en machine code. Ainsi, le temps d’exécution du code informatique est inférieur. | Les interprètes sont plus faciles à utiliser, en particulier pour les débutants. |
Inconvénient | 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. |
Code machine | Stocke le langage machine sous forme de code machine sur le disque | N’enregistre pas du tout le code machine. |
Temps d’exécution | 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 chargement de liens de traduction linguistique. | 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ère 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 séparée 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 deprocessus d’interprétation, il est donc effectué ligne par ligne. |
Mémoire requise | Le programme cible s’exécute indépendamment et ne nécessite pas le compilateur en mémoire. | L’interpréteur existe dans la mémoire lors de l’interprétation. |
Mieux adapté pour | Limité à la machine cible spécifique et ne peut pas être porté. C et C++ sont un langage de programmation le plus populaire qui utilise un 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 du code de petite taille qui peut ne 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 beaucoup d’optimisations qui rendent le code plus rapide | Les interprètes voient le code ligne par ligne, et donc les optimisations ne sont pas aussi robustes que les compilateurs |
Typage dynamique | Difficile à implémenter car les compilateurs ne peuvent pas prédire ce qui se passe au moment du virage. | Les langages interprétés prennent en charge le typage dynamique |
Utilisation | Il est le mieux adapté à l’environnement de production | Il est le mieux adapté au programme et à l’environnement de développement. |
Exécution d’erreur | Le compilateur affiche toutes les erreurs et tous les 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. |
Entrée | Il faut un programme entier | Il faut une seule ligne de code. |
Sortie | Les compliers génèrent du code machnie intermédiaire. L’interpréteur | ne génère jamais de code machnie intermédiaire. |
Erreurs | Affiche toutes les erreurs après la compilation, toutes en même temps. | Affiche toutes les erreurs de chaque ligne une par une. |
Les langages de programmation relatifs | 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 du code exécutable
- Traduit le logiciel écrit 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 processeur peut comprendre.
- Le processus de compilation est relativement compliqué. Il passe beaucoup de temps à analyser et à traiter le programme.
- Le résultat exécutable est une forme de code binaire spécifique à la machine.
Rôle de l’interpréteur
- L’interpréteur convertit le code source ligne par ligne pendant l’EXÉCUTION.
- Interpret 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
LANGAGES de HAUT NIVEAU
Langages de haut niveau, tels que 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 effectué soit par un compilateur, soit par un interprète. Également connu sous le nom de code source.
CODE MACHINE
Les langages machine sont très proches du matériel. Chaque ordinateur a son langage machine. Un programme de langage machine est constitué de séries de motifs binaires. (Par exemple. 110110) Il représente les opérations simples qui doivent être effectuées par l’ordinateur. Les programmes en langage machine sont exécutables afin qu’ils puissent ê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, 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.