虫满楼 发表于 2011-5-19 15:13

我个人觉得,追求“一次编译到处执行”,也许有意义,但是付出的比得到多太多,得不偿失

鸡蛋灌饼 发表于 2011-5-19 15:36

引用第38楼SUPERFIGHT于2011-05-19 15:07发表的:


JAVA理论上就是这样的~  JAVA写的都是中间代码~  具体由虚拟机翻译成机器码~

但是不知道为啥最后根据平台还是要很多的编译测试~ =.= 感觉根本没把一次编译~ 到处执行的特性发挥出来~images/back.gif

不理解各个平台的特性的话,跨平台就是个笑话
好比Java的String转byte[],我估计大部分Java程序员不知道这东西不光在Windows下和Linux下的表现不一样,不同区的系统间表现也不一样……

精钢魔像 发表于 2011-5-19 16:10

回归主题。我觉得搞一个在运行时把x86转arm 的东西微软不是做不出来,是有专利问题

或者是因为intel 的关系特意为之

karloku 发表于 2011-5-19 16:13

不同构架的二进制码的运行时翻译... 就算真有可能被虚拟出来了效率也是

虫满楼 发表于 2011-5-19 16:17

引用第42楼精钢魔像于2011-05-19 16:10发表的:
回归主题。我觉得搞一个在运行时把x86转arm 的东西微软不是做不出来,是有专利问题

或者是因为intel 的关系特意为之 images/back.gif


肯定不会搞对已有代码/程序的兼容啊。。。这个太蛋疼了
最多就是在便于移植上做些设计,就足够了

鉴胸真人 发表于 2011-5-19 16:24

引用第42楼精钢魔像于2011-05-19 16:10发表的:
回归主题。我觉得搞一个在运行时把x86转arm 的东西微软不是做不出来,是有专利问题

或者是因为intel 的关系特意为之 images/back.gif


还真做不出来

x86 x64的使用已经达到了一种“滥”的境界,很多软件代码都用了内联汇编,动态指令生成,这类东西要想在运行时完全翻译到arm,没听说过哪家有此等技术。

另外举一个最简单的例子,花指令,这个在risc上就没有等价物

精钢魔像 发表于 2011-5-19 16:26

现在都不是逐字节翻译了好不好,字节码的程序在第一次运行时编译为本地代码,并作为一个映像保存,以后再运行就是直接执行这个映像,不用二次编译

鉴胸真人 发表于 2011-5-19 16:29

引用第46楼精钢魔像于2011-05-19 16:26发表的:
现在都不是逐字节翻译了好不好,字节码的程序在第一次运行时编译为本地代码,并作为一个映像保存,以后再运行就是直接执行这个映像,不用二次编译
images/back.gif


你这叫 IL,也就是中间语言,java byte code    vb pcode.net IL等等,那些原生的程序怎么办?dynarec是一种方法,但是wine做到今天也不敢保证随便拿一个都能兼容

精钢魔像 发表于 2011-5-19 16:31

引用第45楼鉴胸真人于2011-05-19 16:24发表的  :


还真做不出来

x86 x64的使用已经达到了一种“滥”的境界,很多软件代码都用了内联汇编,动态指令生成,这类东西要想在运行时完全翻译到arm,没听说过哪家有此等技术。
....... images/back.gif


做不到一条指令对一条指令,那一对多也可以啊

不过好像听说过,x86的指令在运行时会被转译成另外一套东西,不是80386汇编



引用第47楼鉴胸真人于2011-05-19 16:29发表的:


你这叫 IL,也就是中间语言,java byte code    vb pcode  .net IL等等,那些原生的程序怎么办?dynarec是一种方法,但是wine做到今天也不敢保证随便拿一个都能兼容 images/back.gif


把另一个平台的本地代码看作中间语言不行吗,思维不要那么僵化么

鉴胸真人 发表于 2011-5-19 16:39

引用第48楼精钢魔像于2011-05-19 16:31发表的:


把另一个平台的本地代码看作中间语言不行吗,思维不要那么僵化么 images/back.gif


对于self modify code 是dynarec领域中的老大难问题

另外确实如你所说,可以一条一条翻译解释执行,cpu里面确实也这么搞,但是不要忘了cpu里面是硬件执行,软件解释执行会有20~~200倍的性能损失

f3uki 发表于 2011-5-19 17:04

而且不仅只是代码的翻译,举例说,翻译以后指令数目变动了,内存地址要重新映射,不同架构的CPU对内存对齐的要求不一样,数据要做相应的调整等等,要解决的问题太多了

masterfish 发表于 2011-5-19 17:08

half_angel 发表于 2011-5-19 17:20

532 发表于 2011-5-19 17:28

猫少呢,即时编译,你们说的是NDS模拟器吧

鉴胸真人 发表于 2011-5-19 17:28

引用第52楼half_angel于2011-05-19 17:20发表的:
微软还是先把编译器搞出来再说 images/back.gif


微软自家至少有AlphaMIPS ARM POWER X86 X64的编译器,你说还需要搞哪种?

鸡蛋灌饼 发表于 2011-5-19 18:08

引用第53楼532于2011-05-19 17:28发表的  :
猫少呢,即时编译,你们说的是NDS模拟器吧 images/back.gif

JIT Recompiler是近现代模拟器标配
引用第51楼masterfish于2011-05-19 17:08发表的  :
现在真的“跨平台”不是flash、html5和javascript吗? images/back.gif

这仨货色第一个跨毛平台,先上了iOS再说;后两个跨平台了是不假,可惜不跨浏览器
引用第54楼鉴胸真人于2011-05-19 17:28发表的:


微软自家至少有AlphaMIPS ARM POWER X86 X64的编译器,你说还需要搞哪种? images/back.gif

你忘数IA64了
MS的编译器不说顶尖,算在第一梯队是没问题的

ov_efly 发表于 2011-5-19 18:10

arm就arm
htpc上最多用用
难道还指望黄老板 丹佛计划么 100倍这牛皮
outel 干掉他 囧

BoomerCE 发表于 2011-5-19 18:11

其实我想说的是 Xbox 360 (PowerPC) 模拟 Xbox (x86) 完全可行…绝对是黑科技…

real_zyf 发表于 2011-5-19 20:40

只知道就目前来说
.net compact framework和.net framework算是部分兼容的
写个简单的C#程序做到同时能在arm9的ce和x86的win7上运行是可以做到的(hello world什么的.........
页: 1 [2]
查看完整版本: 微软好样的~    WIN8 for ARM的所有软件需重编译~