Est Python interprété ou compilé, ou les deux?

À partir de ma compréhension:

Un interprété langage est un langage de haut niveau exécuter et exécuté par un interprète (un programme qui convertit le langage de haut niveau en code machine et l'exécution) sur la route; il traite le programme un peu à la fois.

Un compilé langage est un langage de haut niveau, dont le code est d'abord converti en code machine par un compilateur (un programme qui convertit le langage de haut niveau en code machine), puis exécuté par un exécuteur testamentaire (un autre programme pour l'exécution du code).

Corrigez-moi si mes définitions sont fausses.

Maintenant revenir à Python, je suis un peu confus à ce sujet. Partout où vous apprenez que Python est un langage interprété, mais il est interprété à certains code intermédiaire (comme le byte-code ou IL) et pas pour le code machine. Donc le programme qui exécute l'IM code? S'il vous plaît aidez-moi à comprendre comment un script Python est géré et exécuté.

  • double possible de Python Est interprété (comme en Javascript ou PHP)?
  • Python n'créer .pyc fichiers (soi-disant byecode) chaque fois qu'une bibliothèque est importé. Autant que je sache, le bytecode ne peut accélérer les temps de chargement, pas de temps d'exécution.
  • La mise en cache du bytecode dans .pyc uniquement les fichiers de vitesses de chargement en effet, mais seulement becase le code Python est compilé en bytecode avant l'exécution de toute façon. Bien que je ne pense pas qu'il a été essayé avec Python spécifiquement, d'autres implémentations de langue montrent que le bytecode est en effet plus facile à interpréter efficacement qu'un simple AST ou, pire encore, unparsed code source. Les anciennes versions Rubis interprété à partir de l'AST, par exemple, et autant que je sache, a été surclassé tout à fait un peu par des versions plus récentes qui compile en bytecode.
  • Ne veulent pas de son grossier, mais n'est pas que ce que je voulais dire (mais pas aussi informé que vous)?
  • Je ne sais pas ce que tu voulais dire. Je sais seulement que votre commentaire n'était pas incorrect, mais à condition, bien oppoturnity pour quelques informations de fond pour lesquelles il ne accélère les temps de chargement, j'ai donc décidé d'ajouter cette information. N'en déplaise signifiait ou de pris 🙂
  • Quant à votre définition de "Compilé:" Certains programmes ne nécessitent pas un Exécuteur testamentaire. Par exemple, les programmes C sont compilés directement en code machine, qui peut être exécuté directement.