Comment fonctionne un interprète/compilateur? Quelle est la différence entre interprète et compilateur.
Compilateurs
Les compilateurs ont été le premier type de programme de traduction à être écrit. Le L'idée est simple: vous écrivez le programme, puis donnez-le au compilateur qui le traduit. Ensuite, vous exécutez le résultat
Interprètes
Un interprète est aussi un programme qui traduit une langue de haut niveau en un niveau bas, mais il le fait à la moment où le programme est exécuté. Vous écrivez le programme en utilisant un éditeur de texte ou quelque chose de similaire, puis instruire l'interprète pour exécuter le programme. Il Prend le programme, ligne par ligne, Et traduit chaque ligne avant En le lançant: Il traduit la première ligne Et l'exécute, puis traduit la. il etc.
Caractéristiques du compilateur:
Caractéristiques de l'interprète:
Un traducteur S -> T accepte le code exprimé en langue source S et le traduit en code équivalent exprimé en une autre langue (cible) T.
Exemples de traducteurs:
Un interpréteur S accepte le code exprimé en langage S et exécute immédiatement ce code. Cela fonctionne en récupérant, en analysant et en exécutant une instruction à la fois.
Idéal lorsque l'utilisateur entre des instructions de manière interactive (pensez Python) et souhaite obtenir le résultat avant de passer à l'instruction suivante. Également utile lorsque le programme doit être exécuté une seule fois ou doit être portable.
Comportement
Un compilateur traduit le code source en code machine, mais n'exécute pas le code source ou le code objet.
Un interprète exécute le code source une instruction à la fois, mais ne traduit pas le code source.
Performance
Compilateurs d'interprétation
Un compilateur interprétatif est un bon compromis entre compilateurs et interprètes. Il traduit le programme source en code de machine virtuelle, qui est ensuite interprété.
Un compilateur interprétatif associe une traduction rapide à une exécution moyennement rapide, à condition que:
Exemple: JDK fournit un compilateur interprétatif pour Java.
Compilateur , transforme le code source d’un langage informatique en un autre.
Interpreter , exécute le code source directement (généralement dans sa propre machine virtuelle).
alt text http://content.answers.com/main/content/img/CDE/COMPILE.GIF
Généralement interprète est une performance coûteuse.
Quelle est la différence entre interprète et compilateur?
Compiler analyse d'abord le programme complet, puis le traduit en code machine qui sera exécuté par le processeur de l'ordinateur.
Interpreters traduit une instruction en langage machine, l'exécute et passe à l'instruction suivante.
Comment fonctionne un interprète/compilateur?
La différence vs comment ils fonctionnent
Q: _ A quoi servent les compilateurs et interprètes?
A: La plupart des programmes sont écrits dans des langages de haut niveau (c #, Java ...). Les langages de haut niveau contiennent des mots et des expressions compréhensibles. D'autre part, l'ordinateur (au moment où j'ai écrit cet article) comprend le code machine, code 0 et code binaire/1. Par conséquent, nous devons convertir le code de haut niveau en code source qui est (code machine/binaire). D'où la conversion de Word.
Nous concluons donc qu'un travail de compilateur/interprète consiste à convertir le code de haut niveau en code machine.
Mais les deux ont une façon différente de "traduire" le code
Différence:
Compilateur:
convertit le code source en une sorte de forme intermédiaire. Pour le langage statique, un compilateur convertit généralement le code source en assembleur, qui n'est généralement pas stocké sur disque, puis l'assembleur est appelé pour convertir l'assembly en code binaire, généralement stocké sous forme de fichier objet (suffixe .o ou .obj). généralement), l’éditeur de liens est appelé pour lier un ou plusieurs fichiers d’objets à un exécutable binaire. En outre, il est courant de parler de tout ce processus de compilation, d’assemblage, de liaison en tant que compilation. Vous pouvez donc appeler gcc un compilateur, mais il appelle en fait cc1 qui est le compilateur à compiler, ainsi que l’assembleur à assembler, ld qui est l’éditeur de liens à lier.
Interprète:
langage qui a une forme intermédiaire appelée code bytecode, le code source est d’abord converti en code octet, ce processus peut être appelé compilation, javac sert d’exemple . Le bytecode ne peut pas être exécuté sur les ordinateurs hôtes, il a besoin d'un programme, qui est en fait le processus du point de vue du système d'exploitation, pour interpréter le bytecode sur l'ordinateur hôte, ce programme s'appelle un interprète, pensez à Java. Certains langages, comme python, effectuent la compilation et l’interprétation avec un seul
- les deux à partir de: https://www.quora.com/What-are-the-differences-between-a-compiler-an-interpreter-and-assasser-Provide-examples
Comparant
Interprète
- L'analyse du code source prend moins de temps, mais le temps d'exécution global est plus lent.
- Aucun code d'objet intermédiaire n'est généré. Par conséquent, memory est efficace.
- Continue de traduire le programme jusqu'à ce que la première erreur soit rencontrée, auquel cas elle s'arrête. Par conséquent, le débogage est facile.
Compilateur
- L'analyse du code source prend beaucoup de temps, mais le temps d'exécution global est comparativement plus rapide.
- Génère du code d'objet intermédiaire qui nécessite en outre une liaison, nécessite donc davantage de mémoire.
- Il génère le message d'erreur uniquement après avoir analysé l'ensemble du programme. Par conséquent, le débogage est relativement difficile.
- de: https://www.programiz.com/article/difference-compiler-interpreter
Exemples avec des langues
Interprété
compilé
Compilateurs - Un compilateur traduit une langue source en une langue cible. Ensuite, la langue cible prend en entrée et donne en sortie.
Le compilateur produit un code cible en compilant le code source
alors le code cible prend alors l'entrée et donne la sortie
Interpréteurs - Au lieu de générer un code cible, l’interpréteur semble prendre directement l’entrée avec le code source et donner une sortie.
L'interprète associe l'entrée à la sortie à l'aide du programme source
Ensuite, le programme ciblé en langage machine produit par le compilateur est beaucoup plus rapide que l’interprète pour mapper les entrées sur la sortie. Cependant, puisque l'interprète exécute le programme source ligne par ligne, le diagnostic d'erreur est meilleur que celui du compilateur.
Référence - Compilateurs: principes, techniques et outils par Aho aka the dragon book
Quelle est la différence entre interprète et compilateur.
Pour le dire directement et intuitivement:
Compiler est ce qui traduit le code source lisible par l'homme en code machine que l'ordinateur pourrait lire et exécuter.
Interprète est ce qui prétend être ou simule un ordinateur pour lire et exécuter le code source directement.