Comment fonctionne un interpréteur/compilateur ? Quelle est la différence entre un interprète et un compilateur ?
Réponses
Trop de publicités?Compilateurs - Un compilateur traduit un langage source en un langage cible. Le langage cible prend alors les entrées et donne les sorties.
Le compilateur produit un code cible en compilant le code source.
alors le code cible prend l'entrée et donne la sortie
Interprètes - Au lieu de générer un code cible, l'interprète semble prendre l'entrée directement avec le code source et donne la sortie.
L'interpréteur fait correspondre les entrées aux sorties en utilisant le programme source.
Ensuite, le programme ciblé sur le langage machine produit par le compilateur est beaucoup plus rapide que l'interprète pour mettre en correspondance les entrées et les sorties. Cependant, comme l'interprète exécute le programme source ligne par ligne, il fournit de meilleurs diagnostics d'erreur que le compilateur.
Référence - Compilateurs : Principes, techniques et outils par Aho alias le livre du dragon
Quelle est la différence entre l'interprète et le compilateur.
Pour le dire directement et intuitivement :
-
Compilateur est ce qui traduit le code source lisible par l'homme en code machine que l'ordinateur peut lire et exécuter.
-
Interprète est ce qui prétend être ou simule un ordinateur pour lire et exécuter directement le code source.
Regardez PLAI C'est le meilleur livre d'introduction à la réalisation d'un langage dymanique que j'ai trouvé :
Langages de programmation : Application et interprétation (c) Shriram Krishnamurthi
- [accueil] https://cs.brown.edu/~sk/Publications/Livres/ProgLangs/2007-04-26/
- [html] http://cs.brown.edu/courses/cs173/2012/book/
- [pdf] http://www.cs.brown.edu/courses/cs173/2012/book/book.pdf
Ce livre se concentre sur l'écriture d'un interpréteur pour un langage dynamique en Scheme (dr.Racket), en l'utilisant vous pouvez écrire votre propre interpréteur pour n'importe quel langage, et ajouter quelques astuces sur la POO de
- [OOP PLAI] https://users.dcc.uchile.cl/~etanter/ooplai/ (c) Éric Tanter
et SmallTalk et SOM : Simple Object Machine :
- Machines virtuelles pour l'enseignement et la recherche
- Un Smalltalk minimal pour l'enseignement et la recherche sur les machines virtuelles
- Smalltalk-80 : Le langage et son implémentation
Tous les interprètes modernes incluent un compilateur à l'intérieur : compile les éléments de haut niveau. en de faible niveau mais portable code d'octet ou utiliser le JIT pour compiler le code machine dans la RAM.
PS : Si quelqu'un veut écrire un système SmallTalk sur Python, veuillez me le signaler.
- Réponses précédentes
- Plus de réponses