2016-09-25 2 views
0

J'ai une confusion python générerPourquoi python est de bas niveau?

source code ->> byte code --> python virtual machine

ne langage c générer également le code octet ou le compiler directement?

Si c ne génère pas de code octet c'est pourquoi il est considéré comme un langage de bas niveau? Parce que l'assemblage ne génère pas de code octet, c'est pourquoi il est de bas niveau car il s'exécute directement sur la machine?

+0

Cela dépend de votre point de vue. – 2501

+2

Si une langue est compilée directement au code machine ou si elle n'a pas ou peu de signification si une langue est de niveau bas ou non. Même un langage interprété pourrait être de bas niveau. –

+0

https://en.wikipedia.org/wiki/Low-level_programming_language – donkon

Répondre

5

Les codes d'octets ne sont pas naturels pour la CPU, ils ont donc besoin d'interprétation (par un code natif de l'UC appelé interpréteur).

enter image description here

Le code python que vous écrivez est compilé en python bytecode, ce qui crée un fichier avec l'extension .pyc. Si compile, votre bytecode, présent dans le fichier pyc, créé à l'étape de la compilation, est ensuite exécuté par les machines virtuelles appropriées.

Y a-t-il un compilateur python?

PyPy c'est un compilateur JIT pour le code python. Nuitka, Nuitka tente de traduire le pur Python non en bytecode, mais en code machine (via le compilateur C++), tout en utilisant libpython au moment de l'exécution. ShedSkin en est un autre. Il compile implicitement typiquement Python en C++, des programmes autonomes ou des modules d'extension.