子苓°

OpenArkCompiler v0.2 华为方舟编译器
简介8月31日,华为方舟编译器正式开源。方舟编译器是为支持多种编程语言、多种芯片平台的联合编译、运行而设计的统一编...
扫描右侧二维码阅读全文
24
2019/10

OpenArkCompiler v0.2 华为方舟编译器


简介

8月31日,华为方舟编译器正式开源。方舟编译器是为支持多种编程语言、多种芯片平台的联合编译、运行而设计的统一编程平台,包含编译器、工具链、运行时等关键部件。 方舟编译器还在持续演进中,陆续将上述能力实现和开源。智能时代,万物互联,终端设备复杂多样,逐步形成以手机为中心,多设备互联互通的发展趋势。终端设备多种多样,应用场景层出不穷,编程语言、运行环境多样化,不同编程语言之间的互通效率持续影响应用性能,不同设备平台的差异对开发者带来不便。通过多语言统一IR表示,可实现应用中多种编程语言联合编译优化提升性能;在支持多平台的同时,根据设备特征提供便捷的开发与部署策略提升效率。

当前方舟编译器支持Java/Kotlin程序字节码的前端输入,其它编程语言的支持(如 C/C++/JS 等)还在规划中,方舟编译器的中间表示(IR)转换器将前端输入转换成方舟IR,并输送给后端的优化器,最终生成二进制文件,二进制文件与编译器运行时库文件链接生成可执行文件,在方舟的运行环境中就可执行该文件

方舟编译器IR是支持程序编译和运行的中间程序表示。程序源代码中的任何信息对于程序分析和优化都是有帮助的,所以方舟IR的目标是尽可能完整详细地提供源程序的信息。关于方舟编译器IR的详细信息,请参考文档:方舟IR设计

首次开源范围是编译器 IR( Intermediate Representation)、RC(Reference Counting)和多语言设计思想等,用于与业界、学术界沟通交流。后续将陆续开源编译器前端、后端,支持其它语言(如 JavaScript)的编译等,当前部分Java语言特性和JVM虚拟机特性的支持未包括在本次开源代码中,包括:annotation、lambda表达式、泛型等。目前仍有很多地方不完善,会在社区陆续迭代,遇到问题请在社区提交 issue,欢迎在社区继续讨论设计和代码共建。

华为方舟编译器目前合作伙伴:微博、优酷、淘宝、抖音、搜狐、百度、网易、爱奇艺、支付宝、腾讯QQ、天猫、贴吧、美团、钉钉、拼多多、京东、苏宁易购、汽车之家、UC浏览器等…

方舟编译器的优势

多语言联合
将同一应用中的不同语言代码联合编译、联合优化,消除语言间的性能“鸿沟”,降低开发者的优化成本。

轻量运行时
通过编译器的语言实现能力和优化能力增强,应用运行时的开销更小。

软硬件协同
编译器与芯片实现软硬件协同优化,充分发挥硬件能效,应用体验更佳。

多平台支持
支持面向多样化的终端设备平台进行编译和运行,根据设备特征提供便捷的开发与部署策略,提高开发效率。

相关下载

官方源代码包:https://www.openarkcompiler.cn/download/OpenArkCompiler-0.2.tar.gz

官方二进制包:https://www.openarkcompiler.cn/download/OpenArkCompiler-0.2-ubuntu-16.04-x86_64.tar.gz

Last modification:October 24th, 2019 at 11:48 pm
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment