我目前正在学习有关编译器的考试,并发现了以下问题:
(3 p。) Bootstrapping :解释重新托管和重新定位的概念。使用T图。
据我了解,重新托管意味着为另一个平台(主机)编译编译器,所以它应该如下所示:
-------------
| a b | --------------
----- ----- | a b |
| c |------------- ------
-----| c x || x |
----- ----------
| ? |
-----
但这是对的吗? retargeting
是什么意思?
答案 0 :(得分:0)
Retargeting
指的是让编译器为不同的CPU或指令集生成代码
不同的CPU是X86和PowerPC
不同的指令集是ARM vs THUMB或x86 vs x86-64(相同的CPU,但是不同的模式)。
Rehosting
表示在与编译代码不同的机器上运行代码
新机器通常具有相同的架构
重新托管不一定是微不足道的,因为例如文件系统在编译器系统上看起来可能不同。
请参阅:http://www.cs.southern.edu/halterman/Courses/Spring2009/425/Slides/ch11.pdf
重新定位能力
轻松修改以生成不同目标语言的代码Rehostability
轻松修改以在不同的计算机上运行
这两个词通常在术语portability
中合并
可移植的代码不依赖于体系结构(目标),而与特定机器(主机)的设置无关。