ソフトウェア企業では、顧客が複数の形式でデータを提供することがあります。「リホスト」と呼ばれるリンク可能で実行可能なデータと、「リターゲット」と呼ばれるコンパイル済みオブジェクト ファイルがあります。この分野でのリホストとリターゲティングの意味を理解しようとしています。コンピューター サイエンスのブートストラップ理論に似ていますか? 私は次のプロセスを理解しています (間違っていなければ):
問題:
I need to write a compiler for a new language called "MyLang" to run on PowerPC
解決:
1. I need to write a compiler for a language "MyLang-Mini"; a subset of "MyLang" to run on PowerPC.
2. I need to write a compiler for "MyLang" using "MyLang-Mini" to run on PowerPC.
3. I run the compiler obtained from no. 1 through the compiler obtained from no. 2 to
obtain the compiler for MyLang to run on PowerPC.
別注の「T」ダイアグラム (...ISH):
MyLang PowerPC MyLang PowerPC
MyLangMini MyLangMini PowerPC PowerPC(instr.)
PowerPC(instr.)
私が混乱しているのは、リホストとリターゲティングです。彼らはどのようにこの概念に結び付けられていますか? .exe や .obj などのバイナリ データがある場合、何を再ホストし、再ターゲットしますか? できれば詳しい説明をお願いします!
これが「CROSS-COMPILERS」に着手することは知っていますが、確かに専門家の意見を好むでしょう。
前もって感謝します。