
几日没更新了,今日专门为一位猛将兄和一统江湖的LLVM来撰文。
话说,几日之前,Adobe MAX 2007武林大会之上,有一个高潮:有位兄台挥挥小手,现场将一个C/C++的Quake游戏编译成了Flash Swf,并玩了起来。怎一个强字了得?!准确说,编译生成的是一个AIR程序,但是实际上也只是使用了一个独立的SWF和本地的Quaka数据文件。换句话说,这个SWF是可以在Flash Player 9里面直接运行的。
在线演示地址:http://youtube.com/watch?v=0hX-Uh3oTcE
他是谁?
记住这位猛将兄的大名—— Scott Petersen。在Adobe工作了十年的准元老级人物,最近5个月刚刚调到Acrobat Engineering Organization。
这是怎么做到的?
猛将兄说,是使用LLVM编译器架构。虽然没说全称,但黑羽想,应当就是传说中的 Low level Virtual machine(低层虚拟机)的缩写没错。
LLVM compiler是啥东东?能干哈呀?
LLVM不是Adobe私有东东,见www.llvm.org
这东东准确说是,并不是一个编译器,而是一个编译策略,支持整个程序生命周期的效率优化,包括编译时,链接时,运行时和离线。同时LLVM又是一组虚拟指令集合,类似于RISC指令,独立于具体的语言,又足够轻量。
LLVM的主要组件是一个基于GCC的C&C++前端。
使用LLVM可以把C,C++等等编译成LLVM语言。从而那些使用C,C++作为解释器的其他语言,比如PHP, Ruby等等也可以完成LLVM编译。
所以,Adobe MAX 2007上Scott Petersen演示的实质是将C,C++代码编译成了比ActionScript 3更加底层的LLVM的像汇编码一样的东东。
Adobe对LLVM持续研究将给我们带来什么?
不言而喻,理论上所有C和C++的源码都可以编译成SWF 来运行。当然了,如果你的C,C++代码中调用了Flash, AIR API不能做的事情,比如DirectX,那当然还是不行的。
其次,所有基于C和C++解释器的语言,比如Ruby, Python, PHP, Squeak等等都可以编译成flash了。
LLVM-GCC非常棒,支持GCC的其他语言Java, Objective-C也可能通过某种方式实现LLVM编译。
Scott目前考虑的方向是看看如何将X86机器码转换成AS(底层类汇编码)。Orz Orz Orz 大家一起来回帖拜一下吧!哈哈。







Comments (9)
youtube被河蟹夹了,看不到啊
Posted by efish | October 25, 2007 3:05 PM
Posted on October 25, 2007 15:05
是阿,youtube被大陆杀了!
黑羽,有关于flash10高清晰的更详尽些的资么?
Posted by 闪族e兵 | October 25, 2007 3:37 PM
Posted on October 25, 2007 15:37
说的应该是这个视频
http://user.qzone.qq.com/645054/blog/1192533693
Posted by oncebet | October 25, 2007 11:09 PM
Posted on October 25, 2007 23:09
编译后的air或者swf官方为什么不放出来?
Posted by Chuyue | October 26, 2007 10:38 AM
Posted on October 26, 2007 10:38
真实情况可能是
1 不是quakeII,是quakeI,quakeI是最后一个没有GPU加速的3D游戏,所以可以在avm(flash player)上执行.这样,并不能说明,flash player10会硬件3D加速.
2 编译过程不是直接将C/C++直接编译成llvm/中间码/比特码/AVM Bytecode,而是"转换"成as3,再编译.
Posted by Chuyue | October 26, 2007 11:47 AM
Posted on October 26, 2007 11:47
一字记之曰: 强!
Posted by YoungBoy | October 26, 2007 12:11 PM
Posted on October 26, 2007 12:11
在等silverlight吧,敌不动,我不动,敌若动,我先动
Posted by pallove | October 26, 2007 4:33 PM
Posted on October 26, 2007 16:33
"现场将一个C/C++的Quake游戏编译成了Flash Swf,并玩了起来"
不知道谁有这个swf下载,好想玩玩啊。看到很多关于这个的报告,不过都只看到视频,没有人有那个swf,遗憾啊。
Posted by iiley | October 27, 2007 9:15 AM
Posted on October 27, 2007 09:15
发展的确实快
LLVM偶以前还未听说过
Posted by 白骷髅 | October 28, 2007 2:48 PM
Posted on October 28, 2007 14:48