2016-09-25 13 views
0

私はPythonのように、1つの混乱を持っているがなぜPythonが低レベルですか?

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

を生成するC言語も、バイトコードを生成したり、それが直接コンパイルしていますか?

バイトコードが生成されない場合、低レベル言語と見なされるのはなぜですか?なぜならアセンブリがマシン上で直接実行されるため、アセンブリはバイトコードを生成しないからです。

+0

あなたの視点によって異なります。 – 2501

+2

言語が機械語に直接コンパイルされている場合、または言語が低レベルであるかどうかにかかわらず、ほとんどまたはまったく影響しません。解釈された言語であっても、低レベルである可能性があります。 –

+0

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

答えて

5

バイトコードはCPUに自然ではないため、解釈が必要です(インタプリタと呼ばれるCPUネイティブコード)。

enter image description here

あなたが書いたPythonのコードは、拡張子.pycファイルとファイルを作成するPythonバイトコードにコンパイルされます。コンパイルすると、コンパイルステップで作成されたpycファイルに存在するバイトコードが適切な仮想マシンによって実行されます。

Pythonコンパイラはありますか?

PyPy Pythonコード用のPythonコンパイラです。 Nuitka、Nuitkaは純粋なPythonをバイトコードに変換するのではなく、実行時にlibpythonを使用しながらマシンコード(C++コンパイラ経由)に変換しようとします。もう一つはShedSkinです。それは、暗黙的に静的に型付けされたPythonをC++、スタンドアロンプ​​ログラムまたは拡張モジュールにコンパイルします。

関連する問題