October 25, 2007

大家出来看Adobe的猛将兄和重型武器LLVM!

ActionScript3天地会公测中...

scott_petersen_sm.jpg


几日没更新了,今日专门为一位猛将兄和一统江湖的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 大家一起来回帖拜一下吧!哈哈。

广告:哈哈,现在刚好是阿里妈妈推广期哦,你是站长吗?推荐注册阿里妈妈赚广告费

TrackBack

TrackBack URL for this entry:
http://www.kingda.org/mt/mt-tb.cgi/218

Comments (9)

efish:

youtube被河蟹夹了,看不到啊

闪族e兵:

是阿,youtube被大陆杀了!
黑羽,有关于flash10高清晰的更详尽些的资么?

oncebet:

编译后的air或者swf官方为什么不放出来?

真实情况可能是

1 不是quakeII,是quakeI,quakeI是最后一个没有GPU加速的3D游戏,所以可以在avm(flash player)上执行.这样,并不能说明,flash player10会硬件3D加速.

2 编译过程不是直接将C/C++直接编译成llvm/中间码/比特码/AVM Bytecode,而是"转换"成as3,再编译.

一字记之曰: 强!

在等silverlight吧,敌不动,我不动,敌若动,我先动

"现场将一个C/C++的Quake游戏编译成了Flash Swf,并玩了起来"
不知道谁有这个swf下载,好想玩玩啊。看到很多关于这个的报告,不过都只看到视频,没有人有那个swf,遗憾啊。

白骷髅:

发展的确实快
LLVM偶以前还未听说过

留下高见,发表评论

个人信息不会外泄,请放心填写。

姓名和Email必填。

发表评论后,请耐心等待,不要频繁刷新。提交完成后,刷新一下本页即可看到您的评论。^_^

请输入验证字符"s" :
文字广告:你是站长吗?注册阿里妈妈赚广告费

最近发表

归档

全部
Creative Commons License
此 Blog 中的日记
遵循以下授权:
Creative Commons
(创作共用) 授权
.
Google PageRank
本站被Adobe官方MXNA新闻聚合器收录
本站被蓝色理想BXNA收录