OpenArkCompiler方舟编译
OpenArkCompiler方舟編譯
概述
面向多設備、支持多語言的統一編程平臺。
OpenArkCompiler是來自華為方舟編譯器的開源項目。
OpenArkCompiler 四個技術特點
能夠將不同語言代碼編譯成一套可執行文件,在運行環境中高效執行:
支持多語言聯合優化、消除跨語言調用開銷;
更輕量的語言運行時;
軟硬協同充分發揮硬件能效;
支持多樣化的終端設備平臺
開源計劃
編譯器框架代碼開源
時間:2019年8月
開源范圍:編譯器IR+中端語言實現
開放能力:
框架開源供參考學習,了解方舟編譯器架構及框架代碼
開發者可構建出完整編譯器工具鏈,支持Java Sample程序編譯(非應用)
后續開源范圍 陸續開源編譯器前端、后端、編譯優化;完整支持Java程序編譯、JavaScript語言應用的編譯等。
如何使用
? source build/envsetup.sh arm release 或
? source build/envsetup.sh arm debug
? make setup
? make
? make libcore
? make testall
孵化器項目
? FutureWei編譯器分支 https://gitee.com/openarkcompiler-incubator/mapleall
? Maple Engine https://gitee.com/openarkcompiler-incubator/maple_engine
相關文檔
? 架構設計原理
o MAPLE IR Design
o RC API
o Naive RC操作插入原理
o 虛函數表和接口函數表設計介紹
o Phase設計介紹
o Maple通用模塊應用手冊
? 環境配置
? 開發者指南
? 編程規范
? C++編程探討之指針
華為方舟編譯器
方舟編譯器是華為推出的首個完全自主研發的編譯器平臺,于2019年8月31日正式上線。方舟編譯器已成為碼云最快達成5000 Star的開源項目。
華為方舟編譯器是華為公司專門為軟件廠商研發的統一編程平臺,包含編譯器、工具鏈、運行時等關鍵部件。該編譯器支持多種編程語言、多種芯片平臺的聯合編譯與運行,能夠有效解決安卓程序“邊解釋邊執行”的低效率問題。
2019年8月31日,華為方舟編譯器開源官網正式上線。
2019年11月,華為方舟編譯器獲“2019東北亞優秀開源項目”獎。
研發背景
編譯器是連接人類世界與機器世界之間的一座橋梁,任何在手機上的程序,都需要經歷軟件開發的過程,軟件開發使用的語言,易于程序員理解的高級語言,程序在手機上運行需要轉換成可以高效執行的機器碼,這樣的轉換過程就是由編譯器完成的。可以說編譯器是用來生成軟件的軟件,連接軟件與芯片的橋梁,其性能,效率直接影響到最基礎的消費者體驗。
技術特點
安卓系統使用Java作為編程語言,易于開發,但是不會將代碼直接編譯成機器語言,程序運行時有相當一部分代碼,還需要通過手機上的虛擬機臨時同步編譯,影響程序執行的效率。華為方舟編譯器采取了靜態編譯的方式,首個取代了安卓虛擬機模式的靜態編譯器。
性能效果
方舟編譯器采用全程執行機器碼高效運行程序,架構進一步得到優化,可供開發者在開發環境一次性的將高級語言編譯為機器碼,手機安裝應用程序后可全速運行程序,帶來效率上的極大提升。根據華為實驗室的測試數據,EMUI 9.1在僅僅對系統組件System Server,應用了華為方舟編譯器后,就帶來了系統操作流暢度提升24%,系統響應性能提升44%。
開源計劃
在方舟編譯器面世之時,華為就宣布未來將這一技術開源,希望更多的APP廠商,高校,安卓手機廠商,開源社區的開發者能一同加入進來。
華為計劃在2020年將方舟編譯器完整開源,幫助開發者構建完整的工具鏈。華為還將提供代碼調優工具,開發者可以選擇根據工具的優化,建議來調整自己的代碼,與方舟編譯器配合獲得更優的執行效果。
截至2019年,已經有40多個頂級應用通過方舟的編譯,上架到華為應用商城,未來將有更多的第三方使用方舟編譯器。同時,方舟編譯器所有代碼也將開源給業界。
參考鏈接:
https://gitee.com/openarkcompiler/OpenArkCompiler?utm_source=alading&utm_campaign=repo
總結
以上是生活随笔為你收集整理的OpenArkCompiler方舟编译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 传统编译原理
- 下一篇: MLIR与Code Generation