私は C の初心者 (それ以上) のプログラマーです。仮想マシンの分野に本当に興味があります。JVM、Google V8、Erlang VM、PyPy などです。
私の質問は:
- 仮想マシンを構築できるようになるために、知っておく必要がある/学ばなければならないこと (言語、概念、アルゴリズム、数学など) は何ですか?
- 役立つ書籍やその他のリソース
私は C の初心者 (それ以上) のプログラマーです。仮想マシンの分野に本当に興味があります。JVM、Google V8、Erlang VM、PyPy などです。
私の質問は:
このトピック自体は簡単ではありません。
まず、構文解析について少し学ぶ必要があります。言語を解析して実行する方法を学ばなければならないからです。ほとんどの場合、C# の MIL のような単純なものになります。
最初に読むのは SCIP の「コンピュータ プログラムの構造と解釈、第 2 版」です。この本は、言語インタプリタを構築する際に必要なトピックについての知識を提供します。これは、開始する必要がある基本的なことです。
次はハードコアです。
1) ドラゴンブック: 「コンパイラ: 原則、技法、およびツール (第 2 版)」 Aho、Seti、Ullman
2) 「コンパイラの設計: 仮想マシン」 Reinhard Wilhelm、Helmut Seidl
3) 「Java の逆コンパイル」Godfrey Nolan
個人的には3作目を読む暇がありませんでした。そして、私自身の経験から、ある程度まともなものを作成できるようにするには、多くの時間を犠牲にしなければならないことを私は知っています.
幸運を