0

オーバーフローの皆さん、こんにちは。

主に Windows OS で実行するために、OO 言語 (静的/動的に試行) 用の x86 (ia32/ia64) バックエンドを開発する方法を深く理解しようとしています。

x86 アーキテクチャ、Windows アーキテクチャ、およびコードを最適化してマシン ネイティブ コードにシリアル化する準備が整ったツリー レベルにする方法をよく理解しています。

私が本当に理解していないのは、そのステップ(シリアライゼーション)だけであり、もっと学びたいと思っています。たとえば、コード ツリーにループ ノード用のシリアル化された命令の標準 x86 セットはありますか?

私は現在、コンパイラの本を読もうとしていますが、その主題に関する特定の資料 (本、チュートリアル、プロジェクトなど) はありますか?

C 言語を中間言語として使用し、最適化が優れている ICC などの既製の C コンパイラをバックエンドとして使用するのはどうですか?

ありがとうございました!

4

1 に答える 1

0

はい、C などの別の言語を出力し、それをプラットフォームの機械語にコンパイルできます。 Cfront、元の C++ コンパイラはまさにそれを行いました。

別の可能性は、機械語を生成するための抽象 API を提供するLLVMを使用することです。

于 2010-06-22T05:10:18.100 に答える