Python est-il un langage interprété ? Est-ce que ça va compiler ?
Il n'est pas aussi facile de répondre à cette question qu'on l'imagine. Comme beaucoup de personnes qui comprennent le monde, ils ont l’habitude de juger certaines choses sur la base d’un modèle simple. En fait, il contient de très nombreux détails.
De manière générale, la compilation représente la conversion d'un langage de haut niveau en code machine pouvant être exécuté par le CPU. Lorsque vous compilez du C, c'est exactement ce que vous faites. Le résultat de la compilation est un fichier exécutable binaire et votre système peut exécuter ce programme directement.
En revanche, la signification de explication est la suivante : lorsque le programme est en cours d'exécution, il lit à chaque fois une ligne de code dans le fichier source, effectue l'opération correspondante et répète cette opération ligne par ligne. Bien sûr, c’est ainsi que fonctionnent les langages dits de script.
En Python, le code source est compilé sous une forme de niveau inférieur que nous appelons bytecode. Le bytecode est une séquence d'instructions, similaire au jeu d'instructions d'un processeur. Mais le bytecode n’est pas exécuté directement par le CPU, mais dans la machine virtuelle. Bien entendu, la machine virtuelle ici n'imite pas l'ensemble de l'environnement du système d'exploitation, mais fournit uniquement un environnement pour l'exécution du bytecode.
Python possède également une fonctionnalité importante, qui est la ligne de commande interactive. Vous pouvez taper une ligne d'instruction Python et appuyer immédiatement sur Entrée pour l'exécuter. En fait, même dans ce processus, Python est d’abord converti en bytecode puis exécuté. Cette fonctionnalité de ligne de commande interactive n'est pas disponible dans de nombreux langages compilés. De plus, comme il n'y a pas d'appel explicite au compilateur, de nombreuses personnes appellent le programme qui exécute les fichiers source Python un interpréteur Python .
Même si c'est relativement simple, je souhaite quand même l'ajouter. Certains langages compilés comme C ou JAVA disposent également de lignes de commande interactives, mais celles-ci ne sont pas l'objet de ces langages. JAVA a d'abord été compilé en bytecode puis exécuté plus tard, grâce à la technologie de compilation juste à temps (JIT), il peut être directement compilé en code machine, similaire au C.
Comme le montre la description ci-dessus, l'interprétation et la compilation ne peuvent pas être complètement séparées. Souvent, nous souhaitons utiliser certains mots pour classer les langages de programmation existants, mais en fait, c'est trop difficile à faire.
La raison pour laquelle Python est appelé un langage interprété est qu'il n'appelle pas explicitement les opérations de compilation et montre des caractéristiques plus interprétées. Mais en fait, la compilation existe. La manière de la compiler dépend de l'implémentation du langage, c'est-à-dire de la conception de l'interpréteur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!