近一年多来,方舟编程系统相继实现了编译器、引擎和调试器的开源,编译器的关键功能主要集中在Java应用程序的静态编译上。
华为强调,Ark项目的目标是建立一个基于MapleIR的跨语言编程环境,以实现跨语言的全局分析和优化。
如在现有的java编程环境下,开发人员经常需要同时编写java和c语言程序,并通过JNI相互调用,而且这两种语言目前无法直接互操作。
方舟编程系统的最终愿景之一是通过一致的ir来表达不同的语言,并在全球范围内对它们进行跨语言的优化。
将来,方舟引擎将不仅从java语言中提取IR代码,而且还将支持用C和C++语言编译ir代码。
这种开源内容主要局限于O0功能的范围,对于c O2或未来进一步开源的更多优化。
目前,方舟编译器已经支持c语言的大部分通用特性,目前不支持的特性有复杂类型、Packedstruct、长双、allocaout of scope free。
当前支持aarch64后端,并支持绝大部分gcc_torture用例,比如配合一款第三方合作的C前端(开源时间待定),可以正确运行spec2017的所有C语言整型用例。
下一步,方舟社区计划在Maple编译器上做更多的拓宽和深耕工作。
一方面它将努力支持新的语言,以进一步验证枫树基平台的语言独立性;另一方面,它将增加对新后端(如RISC-v)的支持。
在深度方面,社区将开源O2分析和优化阶段,性能对齐LIVM/GCC,同时采用统一的枫树表示,布局跨语言全局优化。
自正式开放源码以来,方舟社区开源代码已从50k增长到170 k,累计6.9kstar,并孵化出五个相关的子项目。
作为方舟编程系统的重要组成部分,方舟编译器目前只是静态编译。随着ARK引擎的完成,我们可以看到ARK编译器在各种AOT或JIT编译器中的使用,以及许多依赖编译和分析的软件分析和优化工具。
免责声明:凡标注转载/编译字样内容并非本站原创,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
//news.zol.com.cn/754/7541878.html
news.zol.com.cn
true
中关村在线
//news.zol.com.cn/754/7541878.html
report
1484
近一年多来,方舟编程系统相继实现了编译器、引擎和调试器的开源,编译器的关键功能主要集中在Java应用程序的静态编译上。华为强调,Ark项目的目标是建立一个基于MapleIR的跨语言编程环境,以实现跨语言的全局分析和优化。如在现有的java编程环境下,开发人员经常需要同...