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

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

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

架构示意图

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

方舟编译器架构示意图

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

方舟编译器 IR 是支持程序编译和运行的中间程序表示。程序源代码中的任何信息对于程序分析和优化都是有帮助的,所以方舟 IR 的目标是尽可能完整详细地提供源程序的信息。关于方舟编译器 IR 的详细信息,可以参考(https://www.openarkcompiler.cn/document/frameworkDesgin)。

推荐阅读