主に学習の練習として、外部ツールによらず、仮想マシン、アセンブラ、およびコンパイラをゼロから作成しています。構文木からアセンブリへの変換に関するリソースはありますか?
私は、仮想マシンとアセンブラがどのように動作するか、そしてコンパイラのいくつかの部分について、適切な概念的理解があると思います。
私が知りたいことは次のとおりです。 コンパイラでは、ソースコードを構文木に変えたとします。この構文木をアセンブリに変換するために、どのようなプロセスを経なければなりませんか?
(私はここでは、最小限の、簡単な説明を探しています。のような場合としながら、のは、いくつかの簡単な言語構造を仮定します。)
私は既存のツールに基づいて複雑なソリューション、またはソリューションには特に興味がありません。むしろ、私は構文木からアセンブリへの背後にあるアイデアについて、1ページ分の幅広い説明をしたいと思っています。
誰でもこのようなリソースを知っていますか? (:原則、テクニックとツールコンパイラ)
感謝:)
コンパイラの本の第1章第2ページと第3ページしかし、私はあなたが望むのは、あなたが望むすべてであると思っていると思います。問題は、手順上のランゲージを*良い*マシンコード(仮想マシンであっても)に翻訳するには多くの機械が必要であり、その2ページでは何が必要なのか分かりませんが、構築することはできません他の200ページのコンパイラブックを読まなくても、あらゆる種類の分かりやすいコードジェネレータを使用できます。 –