1

ソフトウェア企業では、顧客が複数の形式でデータを提供することがあります。「リホスト」と呼ばれるリンク可能で実行可能なデータと、「リターゲット」と呼ばれるコンパイル済みオブジェクト ファイルがあります。この分野でのリホストとリターゲティングの意味を理解しようとしています。コンピューター サイエンスのブートストラップ理論に似ていますか? 私は次のプロセスを理解しています (間違っていなければ):

問題:

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」に着手することは知っていますが、確かに専門家の意見を好むでしょう。

前もって感謝します。

4

1 に答える 1

1

私は今、ソフトウェアエンジニアリングでそれを知っています:

再ホスト - ホスト マシンでの使用が必要なサードパーティ アプリケーションのリンク可能/実行可能ファイルがある場合は、再ホストを行います。この場合、ほとんどの場合、ターゲットは同じです (OS プラットフォーム、プロセッサなど)。最悪の場合、仮想化が必要になります。再ホストされたアプリケーションは、ホスト マシンで実行されているアプリケーションの 1 つであるかのように実行されます。

再ターゲット - サードパーティのソース コードがある場合は、ターゲット環境に合わせて再コンパイルする必要がある場合があります。また、サードパーティ製の .o または .obj コンパイル モデルがあり、それらをソース コード (リターゲット) とリンクして、ホスト マシンでホストすることもできます。REHOSTED アプリケーションと同様に、アプリケーションがホスト マシンにインストールされているかのようになります。

これがコンパイラのリホストとリターゲットにどのように似ているかを知っておくとよいでしょう。申し訳ありませんが、私はこの分野の初心者であり、手首を平手打ちしても感謝します。

于 2013-06-21T06:36:32.587 に答える