Python Bytecode、インタープリターおよび仮想マシン
-
30-09-2019 - |
質問
これは本当に広大な質問であり、私は主に以下についてもっと学ぶことができるリソースを探しています。
PythonインタープリターはCで書かれており、Cで書かれたPython仮想マシンで実行されるバイトコードを生成します(右?)。私の質問は、これらの両方をPython自体に実装することが可能ですか?私がこれを使ってどこに行っているのかは、PythonでOSのようなものを書くことができる(技術的な)可能性、特に静的に何もコンパイルすることなく?
私が正しく理解していれば、PythonにはPythonでも記述する必要があるアセンブラーがありません。これらのことは、技術的に(実行可能に)できることですか?それとも、Pythonの動的なタイピングは何らかの問題を引き起こしますか?
マイクロプロセッサのアーキテクチャ、アセンブリ、マシンコードについて少し知っています。最近のEEグレードが学校で学んでいることです。しかし、私はPythonのような高レベルの言語の全体像を見て迷子になります。
解決
最初に、あらゆる言語、できればPythonでPythonコンパイラ(インタープリターではない)を書く必要があります。コンパイラの最初の実行は、通訳を通して実行する必要があります。
その後、コンパイラ自身をコンパイして、通訳を必要としないネイティブコンパイラになります。
その後、コンパイラを使用して、Pythonをネイティブコードにコンパイルできます。
このプロセスはブートストラップと呼ばれ、多くではないにしても、多くの言語の主要なコンパイラによって使用されています。
このプロセスの詳細については、こちらをご覧ください。 http://en.wikipedia.org/wiki/bootstrapping_(compilers)
オペレーティングシステムの作成に関しては、コンパイルされたコードを避けたい場合は、最小限のPythonインタープリターとして実装する必要があります。 Pythonインタープリターをマイクロカーネルとして書くと、Pythonで残りのオペレーティングシステムを書くことができます。 (編集:私はちょうど誤ってクリーズを説明しました、Jiaaroが言及した:))