Compilateur Vs Interpreteur : les differences.
En tant que developpeur, nous devons bien comprendre ces deux outils qui nous servent essentiellement à traduire notre code qu'on écrit dans un langage de programmation quelconque en langage machine donc en code binaire qui est exécuté par le processeur de la machine ou notre application est exécutée. (Quand on parle de l'architecture d'une Machine/ordinateur/peripherie digitale en terme de coding, on est indirectement entrain de parler du processeur de la machine, car le processeur c'est le coeur d'une peripherie digitale et chaque peripherie est basée sur un processeur ayant une architecture differente des autres peripheries, architecture differente signifit qu'il n'interprete pas de la meme manière le code binaire produit par notre code, qu'il doivent executer)
Dans l'image suivante je vous présente l'arbre géneaologique des langages de programmations comme cela vous pouvez comprendre qui vient de qui.
=> Interpreteur:
Un interpreteur c'est un programme(écrit lui aussi en un langage de programmation donc c'est aussi un logiciel, ecrit par un developpeur comme vous et moi), qui lit votre code source une ligne à la fois, le traduit en langage binaire(code binaire) et le passe au processeur pour son exécution, une fois que le processeur a exécuté le code de cette ligne, l'interpreteur passe à la ligne successive et ainsi de suite, c'est exactement comme le traducteur entre deux persones qui parlent deux langues differentes (image2), l'un parle en anglais, l'autre le chinoix, celui en anglais dit une parole et le traducteur le traduit en chinoix à l'autre persone et ainsi de suite.
=>Compilateur:
le compilateur quant à lui ne traduit pas ligne par ligne, il traduit d'abord tout ton code en langage binaire et une fois que tout le code est traduit, il le fait executer par le processeur. En image3 c'est comme le traducteur d'un livre d'une langue à l'autre, quand un écrivain fait son livre en français et veut le voir en anglais, il écrit son livre, puis donne à un traducteur de langue anglaise, qui doit complètement le traduire en anglais pour le public anglophone.
En image4 voilà ce que fait exactement l'interpreteur, il lit une ligne, le traduit et le fait executer et va à la ligne successive et refait la meme chose jusqu'à la fin, à coté vous avez le compilateur qui traduit tout le fichier avant de l'envoyer en execution
=>Avantage Interpreteur
1.la dimension du programme est reduit
2.si on a le code source et l'interpreteur, on peut executer notre application dans n'importe quelle machine (windows, mac, linux etc..).
3.les langages basés sur les interpreteurs sont flexibles car on peut utiliser des variables dynamiques comme en javascript ou on est pas obligé de connaitre le type d'une variable.
=> Désavantage des Interpreteurs
1.Le programme peut etre lent car cela prend du temps pour traduire toute l'application dans la mesure ou l'application est parcourue ligne par ligne.
2.dans toutes les machines ou il faut executer l'application il faut avoir l'interpreteur si non rien ne fonctionnera.
3.Les utilisateurs de l'application doivent avoir le code source de l'application dans leur machine, donc c'est visible à l'oeil nu car c'est du texte et donc s'il y a des données sensibles dans ce code, c'est à la mercie de tout le monde.
=> Avantage des compilateurs
1.l'application compilée est plus rapide dans la mesure ou elle est traduit en binaire(langage machine) bien avant son exécution donc en amont.
2. On a pas besoin d'installé dans la machine de l'utilisateur le compilateur car le code est dejà traduit en binaire et on doit juste lancé ce code bianire (le .exe dans windows) dans la machine de l'utilisateur pour exécuter l'application
3.Dans les langages compilés, le compilateur controle le code avant de le traduire ce qui fait que les erreurs sont detectées en amont et pas pendant l'exécution du programme comme c'est le cas dans les langages interprétés.
=> Désavantage des compilateurs.
1.la dimension du programme est assez plus grande en terme de byte par rapport à un programme interpreté.
2.On doit faire differente version de chaque code binaire(.exe) en fonction du type de processeur ou le programme sera lancé ou executer car chaque processeur à sa manière d'interpreter et d'executer le code binaire et il faudra donc pour chaque processeur produire un code binaire different
3.Parfois le temps mis pour compiler peut etre long et apporte de la complexité.
Vous avez compris terre à terre la difference qu'il y a entre un interpreteur et un compilateur?
alors dite en commentaire quels sont les langages compilés et interpretés et justifiez.
Bon coding
LarrySig Guest
24.05.2024, 18:18
Post: Comment fonctionnent Internement les guichets automatiques ?
Orvilledop Guest
22.05.2024, 00:57
Post: Comment fonctionnent Internement les guichets automatiques ?
Orvilledop Guest
15.05.2024, 16:04
Post: Comment fonctionnent Internement les guichets automatiques ?
Franck Guest
14.05.2024, 19:34
Post: Comment deployer un site web statique sur github?