有时在软件公司中,客户提供多种格式的数据。有可链接和可执行的数据被称为“重新托管”,编译的目标文件被称为“重新定位”。我试图了解重新托管和重新定位在该领域的含义。它类似于计算机科学中的 Bootstrap 理论吗?我对以下过程的理解(如果不正确):
问题:
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,我在重新托管和重新定位什么?如果可能的话,我会很感激一些详细的解释!
我知道这将进入“交叉编译器”,但更希望专家意见可以确定。
提前致谢。