加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

华为方舟编译器正式开源,脱离 GitHub 实现自主托管

发布时间:2019-09-10 19:08:01 所属栏目:评测 来源:杨鲤萍
导读:副标题#e# 本文转自雷锋网,如需转载请至雷锋网官网申请授权。 近日,华为的方舟编译器终于迎来了开源,而且开源代码还是承载在自家的官网上。面对这样一个肩负「出于安卓,胜于安卓」使命的编译器,自问世以来就备受大家的关注;此次开源,更是吸引了大众
副标题[/!--empirenews.page--]

本文转自雷锋网,如需转载请至雷锋网官网申请授权。

近日,华为的方舟编译器终于迎来了开源,而且开源代码还是承载在自家的官网上。面对这样一个肩负「出于安卓,胜于安卓」使命的编译器,自问世以来就备受大家的关注;此次开源,更是吸引了大众的目光。

那么到底这个编译器从开发至今都经历了哪些挑战?获得了哪些机遇?现在又拥有怎样的魔力?它对于华为而言,意味着什么?

华为方舟编译器正式开源,脱离 GitHub 实现自主托管

十年磨剑,华为「方舟」

为了造这艘「方舟」,华为磨剑十年。

  • 2009 年,华为启动 5G 基础技术研究的同时,开始创建编译组,第一批海内外研究人员加入。

  • 2013 年,华为推出面向基站领域的自研编译器 HCC,并正式提出编译器框架构想。

  • 2014 年,众多海内外专家加入华为,方舟项目正式启动。

  • 2016 年,成立编译器与编程语言实验室。

  • 2019 年,华为方舟编译器正式面世。

据华为官方介绍,方舟编译器是为支持多种编程语言、多种芯片平台的联合编译、运行而设计的统一编程平台,包含编译器、工具链、运行时等关键部件。它是首个完全替代语言虚拟机的静态编译器,并且完全不需要解释器,同时还兼顾 Java 开发效率和 C 语言运行效率。

8 月 31 日下午 17 时,方舟编译器开源官网上线——OpenArkCompiler(开源方舟编译器),开放了框架源码,开发者们可以下载源代码包,了解熟悉方舟编译器的架构思想。

OpenArkCompiler 介绍

  • 面向多设备、支持多语言的统一编程平台。

  • OpenArkCompiler 是来自华为方舟编译器的开源项目。

OpenArkCompiler 四个技术特点

  • 能能够将不同语言代码编译成一套可执行文件,在运行环境中高效执行:

支持多语言联合优化、消除跨语言调用开销;

更轻量的语言运行时;

软硬协同充分发挥硬件能效;

  • 支持多样化的终端设备平台

  • 开源计划

  • 编编译器框架代码开源

OpenArkCompiler 开源范围

  • 编译器 IR+中端语言实现

OpenArkCompiler 开放能力

  • 框架开源供参考学习,了解方舟编译器架构及框架代码

  • 开发者可构建出完整编译器工具链,支持 Java Sample 程序编译(非应用)

脱离GitHub,自主托管

目前方舟编译器的源代码已经都放出来了,但并没有在 GitHub 开源。目前方舟编译器的代码托管在华为云与码云平台(https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler/home),在未来走向开放治理以后,将按照所挂靠机构的模式来托管。如下所示为开源代码的界面,里面包含了众多代码和文档等文件。

华为方舟编译器正式开源,脱离 GitHub 实现自主托管

图 1 方舟开源代码界面

本次方舟编译器开源的是编译器框架部分源码,包括编译器中间表示(IR,Intermediate Representation)和语言编译实现,同时搭配编译器其他二进制组件,实现 Java 程序到 aarch64 汇编指令的编译过程。开发者可基于开源代码+二进制,编译构建出编译器工具链,尝试对 Java 程序进行编译。

社区参与者可以通过框架源码学习方舟编译器的编译器中间表示(IR)及基本的中端编译框架,熟悉方舟编译器的架构思想,并参与诸如对编译器中端优化的贡献。开发者则可通过代码托管平台参与社区贡献,包括文档贡献和代码贡献,同时也可在此平台上反馈相关问题和需求。

华为方舟编译器正式开源,脱离 GitHub 实现自主托管

图 2 方舟编译器当前开源范围

尽管方舟编译器暂时只支持 Java 和 Kotlin 程序输入,但官方消息称,方舟编译器还在持续演进中,也将陆续实现更多功能的开源。根据之前华为在开发者大会上公布的信息,作为鸿蒙 OS 的重要工具,方舟编译器从 2019 年 8 月开始,将分步骤持续进行开源。具体的开源计划如下:

  • 2020 年:开始开源 Java 编译器工具链,支持 Java 程序编译。

  • 2021 年:开始开源 JavaScript 编译器工具链,可用于 JS 程序的编译。

架构示意图

华为方舟编译器正式开源,脱离 GitHub 实现自主托管

图 3 方舟编译器架构示意图

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

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读