ich hab da mal so eine Frage bezüglich des Kompilierunsgvorgangs in Python.
Der Weg ist doch der folgende:
Python Interpreter ---> Bytecode --> PVM
Python Interpreter bekommt einen Quellcode foo.py und wandlet diesen in Bytecode um. Bei dieser Umwandlung geht der Interpreter eine Anweisung nach der nächsten von foo.py durch und wird dann vom Interpreter ausgeführt. Da hierfür mehrere Zyklen notwendig sind und der Kompilierungsvorgang länger braucht, wird Bytecode erzeugt, welcher so schneller auszuführen ist.
Der Bytecode ist eine interne Darstellung des Quelltextes ist, welches dem Programmtextes sehr ähnlich ist und ist für die plattformunabhängigkeit verantwortlich, da der Bytecode auf jedem System ausgeführt werden kann.
Die PVM führt dann schließlich den Bytecode aus und die Ausgabe erscheint dann auf den Bildschirm. Sollte sich der Quellcode ändern so wird ein neuer Bytecode erzeugt, bleibt der Quellcode unverändert und wurde bereits der Bytecode erzeugt, so kann der Bytecode benutzt werden.
D.h. falls der Python-Interpreter ein größeres Programm bestehend aus mehreren .py Datein ausführt, so arbeitet es schneller, wenn von all den .py Datein der Bytecode bereits vorliegt.
Nun noch zum Python Interpreter an sich:
- Interaktive Shell: eingegebene Befehle werden in der Shell sofort ausgeführt
- Skript Mode: mittels python foo.py wird der Quellcode ausgeführt
Gruß Helex!