开放代码社区 › OpenArkCompiler 方舟编译器

OpenArkCompiler 方舟编译器

开发工具C

OpenArkCompiler 是华为方舟编译器的开源项目,提供面向多设备、支持多语言的统一编程平台。它可将不同语言代码编译成一套可执行文件,支持多语言联合优化、消除跨语言调用开销,具备轻量语言运行时和软硬协同能力,适用于多样化终端设备平台的编译与优化场景。

AI/机器学习Web后端前端工具部署/运维
作者:用户6868语言:C更新:2026-10-27
仓库地址
https://gitee.com/openarkcompiler/OpenArkCompiler.git

前往原仓库

README

# OpenArkCompiler

## 概述
-----------------
> 面向多设备、支持多语言的统一编程平台。

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

### OpenArkCompiler 四个技术特点 ###

能够将不同语言代码编译成一套可执行文件,在运行环境中高效执行:
- 支持多语言联合优化、消除跨语言调用开销;
- 更轻量的语言运行时;
- 软硬协同充分发挥硬件能效;
- 支持多样化的终端设备平台

## 开源计划
**编译器框架代码开源**
- 时间:2019年8月
- 开源范围:编译器IR+中端语言实现
- 开放能力:
   - 框架开源供参考学习,了解方舟编译器架构及框架代码
   - 开发者可构建出完整编译器工具链,支持Java Sample程序编译(非应用)

**后续开源范围**
陆续开源编译器前端、后端、编译优化;完整支持Java程序编译、JavaScript语言应用的编译等。

|开源范围          |2020年3月       |2020年5月             |
| ------------ | -------------------|--------------------- |
|编译器前端    |jbc前端基础框架     |前端全量开源          |
|编译器中端    |独立优化Phase每周持续开源                  ||
|编译器后端    |后端开源(O0) (aarch64)|独立优化按周开源(O2) (aarch64)|
|测试框架      |测试框架+基础用例开源| |

**计划持续更新...**

## 如何使用
- source build/envsetup.sh arm release
  或
- source build/envsetup.sh arm debug
- make setup (这一步可能需要配置代理或者vpn,才能将所有依赖下载下来)
- make
- make libcore
- make testall

## 孵化器项目
- FutureWei编译器分支 https://gitee.com/openarkcompiler-incubator/mapleall
- Maple Engine https://gitee.com/openarkcompiler-incubator/maple_engine

## 相关文档

- 架构设计原理
   - [MAPLE IR Design](https://gitee.com/openarkcompiler/OpenArkCompiler/blob/master/doc/en/MapleIRDesign.md)
   - [RC API](https://gitee.com/openarkcompiler/OpenArkCompiler/blob/master/doc/cn/RcApi.md)
   - [Naive RC操作插入原理](https://gitee.com/openarkcompiler/OpenArkCompiler/blob/master/doc/cn/NaiveRcInsertionDescription.md)
   - [虚函数表和接口函数表设计介绍](https://gitee.com/openarkcompiler/OpenArkCompiler/blob/master/doc/cn/VtableItableDescription.md)
   - [Phase设计介绍](https://gitee.com/openarkcompiler/OpenArkCompiler/blob/master/doc/cn/CompilerPhaseDescription.md)
   - [Maple通用模块应用手册](https://gitee.com/openarkcompiler/OpenArkCompiler/blob/master/doc/cn/DeveloperGuide4Utility.md)

- [环境配置](https://gitee.com/openarkcompiler/OpenArkCompiler/blob/master/doc/cn/DevelopmentPreparation.md)

- [开发者指南](https://gitee.com/openarkcompiler/OpenArkCompiler/blob/master/doc/cn/DeveloperGuide.md)

- [编程规范](https://gitee.com/openarkcompiler/OpenArkCompiler/blob/master/doc/cn/ProgrammingSpecifications.md)

- [C++编程探讨之指针](https://gitee.com/openarkcompiler/OpenArkCompiler/blob/master/doc/cn/CPPCodingTalkAboutPointer.md)

## 许可证
- [LICENSE](https://gitee.com/openarkcompiler/OpenArkCompiler/blob/master/license/LICENSE)

## 开发者交流频道
- [Discord-OpenArkCompiler](https://discord.gg/CJeJWQXxMP)
- 每天上午9:00~10:30不定时在语音频道“panel disscussion”交流社区议题。

## 如何提交代码
- [wiki](https://gitee.com/openarkcompiler/OpenArkCompiler/wikis/%E4%BB%A3%E7%A0%81%E6%8F%90%E4%BA%A4%E6%B5%81%E7%A8%8B?sort_id=2447213)