首页 . 理学 . 计算机科学技术 . 计算机体系结构 . 虚拟化技术

二进制翻译

/binary translation/
条目作者武成岗

武成岗

最后更新 2023-10-27
浏览 271
最后更新 2023-10-27
浏览 271
0 意见反馈 条目引用

对二进制可执行文件进行翻译变换和执行的技术。其概念有狭义和广义之分,从狭义上讲,二进制翻译是将一种指令集架构上的可执行程序,翻译成另一种指令集架构上的程序,从而在用户无感知的情况下实现可执行程序的跨平台执行。除了用于跨平台程序迁移外,此项技术还被广泛地用于代码插桩、动态优化、虚拟化和即时编译等方面,于是业内有人将上述应用中的二进制代码变换部分都称为二进制翻译,这是广义上的概念。

英文名称
binary translation
所属学科
计算机科学技术

二进制翻译系统往往采用解释和翻译两种工作模式。解释模式下,二进制翻译系统依次从二进制文件中读入指令,对之进行译码,然后依据该指令操作码,通过软件手段来模拟执行该指令;翻译模式则是将二进制代码的全部或部分进行翻译,生成本地可执行代码并缓存起来,在执行过程中,直接执行缓存的代码。为了提升性能,翻译阶段还伴随着代码优化,以产生更高质量的本地可执行代码。从效率角度考虑,解释模式只适用于执行频度非常低的代码片段,而对于高执行频度高的代码片段来讲,翻译模式要远胜于解释模式。

按照翻译的时机,二进制翻译可分为静态翻译和动态翻译。静态翻译是在程序运行前,对二进制代码进行翻译,然后再运行。动态翻译则是在程序运行过程中,边进行翻译(或解释)边运行程序。静态翻译难以处理二进制代码中的间接跳转、间接调用,以及动态库,其适用范围严重受限,因而广为采用的是动态二进制翻译。为了降低动态翻译的开销,也有人利用静态翻译对二进制程序进行预处理,即在程序运行前,将程序中可翻译部分进行翻译和优化,并将所产生的代码缓存起来,供动态翻译使用,这种方式又被称为动静结合的二进制翻译。

  • SITES R L.Binary translation.CHERNOFF A,MATTHEW B.MARKS M P,ROBINSON S G.Communications of the ACM:ACM,1993.

相关条目

阅读历史

    意见反馈

    提 交

    感谢您的反馈

    我们会尽快处理您的反馈!
    您可以进入个人中心的反馈栏目查看反馈详情。
    谢谢!