你好,欢迎来到电脑编程技巧与维护杂志社! [免费注册][请登录 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Web开发
新型编译器将原生代码转换为JavaScript
 

导读:Emscripten C/C++到JavaScript项目利用来自LLVM的后端构建起更具速度与针对性优势的编译方案。

 

在当初刚刚公布时,Emsripten听起来完全像是个冲劲十足的技术笑谈:一款能够将C/C++代码转换成Asm.js的编译器,其处理成果能够通过Web浏览器或者在Node.js框架中作为JavaScript子集加以运行。

然而事实证明这一切并非笑谈。Emscripten与Asm.js(后者最初为Mozilla公司发起的一个研究项目)已经自诞生之日起逐步发展,并最终取得了令人瞩目的重大进展。最新公布的技术成果是,Emscripten新版本利用来自LLVM的编译器核心取代了原有机制——这项编译器技术框架原本主要用于C/C++环境,但在理论上也能够支持多种其它语言。

根据Emscripten项目的开发者们所言,转而选择LLVM给Emscripten带来了多项全新优势。首先,整个编译过程更加快捷——“通常能够带来四倍甚至更高的转换效率提升,”他们指出,而且转换所需要的内存容量也有所降低。此次更替还“避免了原有编译器偶尔出现的不可预知的恶性拖慢现象。”更重要的是,LLVM后端允许Emscripten与LLVM自身以更为紧密的方式实现对接。

使用LLVM的惟一缺点在于,其必须经过有针对性的重新编译才能与Emscripten顺利协作。LLVM的处理成果只能为我们提供上述优势当中的一部分,除非具备其它选项、否则很难将其充分发挥。

Asm.js仍然被普遍视为一种实验性技术,目前能够直接为其提供支持的也只有Mozilla火狐这一款浏览器。不过它的实际表现仍然令人印象深刻。就在最近,Asm.js成功将虚幻游戏引擎移植到了JavaScript环境之下,从而在无需任何插件或者非原生代码配合的情况下使该平台能够直接运行在浏览器当中。

谷歌目前尚未最终决定是否为Asm.js提供全面支持,不过Chrome浏览器已经确定将向由其生成的JavaScript应用敞开怀抱——虽然速度提升水平还远无法与火狐相比肩。谷歌的计划似乎是将Dart语言作为浏览器平台的近原生代码执行速度提升方案,不过JavaScript的普及度以及灵活性至少就目前来看仍具备极为显著的优势、Dart在短时间内恐怕很难取得竞争优势。

  推荐精品文章

·2018年最流行的十大编程语言,其中包括你…
·物联网要有自己的网络的五大原因
·清华人工智能研究院今日成立 张钹姚期智坐…
·人工智能危机前,孩子具备这三种素质就能…
·华为云打造EI智能体,推动“普惠AI”再进…
·2018年6月目录  
·微软秘密开发云计算AI芯片 提升云业务服务…
·为保护开源项目被合理使用 红帽变更其开源…
·这个新品牌能止住SaaS领域不断传来的坏消…
·微软引入SwiftKey输入法 或为可折叠设备做…
·借助AI技术 2.5亿设备已升级至最新Win10
·云市场再添新玩家 新华网获得云服务牌照
·北欧五国发布5G合作宣言 推动五国成首个5…
·欧盟吸纳52名专家入AI咨询委员会 将起草A…

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备06048724号,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区长春桥路5号6号楼1209室,邮编:100089