華為方舟編譯器正式支持C語言:完全開源

2020-12-13 TechWeb

2019年8月底,華為方舟編譯器(OpenArkCompiler)正式開源,邁出了跨越性的一步。

一年多來,方舟編程體系陸續實現了編譯器、引擎、調試器的開源,其中編譯器的重點功能主要集中在Java應用程式靜態編譯上。

華為強調,方舟項目的目標是構建一個基於MapleIR的跨語言編程環境,實現跨語言的全局分析及優化。

比如在現有Java編程環境下面,開發者經常需要同時編寫Java、C語言程序,通過JNI相互調用,而這兩種語言之間目前是不直接互通的。

方舟編程體系的終極願景之一,就是要通過一致的IR來表述不同語言,並跨越語言進行全局優化。

現在,方舟編譯器加入了對C語言程序的支持,當然繼續開源,也是實現Java和C混合編譯的基礎。

未來,方舟引擎不僅要對來自Java語言的IR代碼進行JIT編譯,也會支持對C、C++語言的IR代碼進行JIT編譯。 

代碼連結地址:

1、https://gitee.com/openarkcompiler-incubator/mapleall

2、https://gitee.com/openarkcompiler-incubator/maple_engine

本次開源內容主要限於O0的能力範圍,針對C的O2以上的優化留待未來進一步開源。

目前,方舟編譯器已經支持C語言的絕大部分常用特性,暫不支持的特性有complex類型、packedstruct、long double、alloca out-of-scope free。

當前支持aarch64後端,並支持絕大部分gcc_torture用例,比如配合一款第三方合作的C前端(開源時間待定),可以正確運行spec2017的所有C語言整型用例。

下一步,方舟社區計劃在Maple編譯器上做更多的拓寬和深耕工作。

廣度上,一方面會嘗試支持新的語言,進一步驗證Maple基礎平臺的語言無關性,另一方面會增加對新後端如RISC-V的支持。

深度上,社區會儘快開源O2分析與優化phase,性能對標LLVM/GCC,同時利用統一的Maple表示,布局跨語言全局優化。

正式開源以來,方舟社區開原始碼從50K增長到170K,累計6.9K Star,並孵化5個相關子項目。

方舟編譯器作為方舟編程體系的重要一環,目前展現的還只是是靜態編譯,未來隨著方舟引擎的完備,可以看到方舟編譯器在各種AOT或者JIT編譯時的運用,以及眾多依賴於編譯分析的軟體分析和優化工具。

相關焦點

  • C 翻身?微軟重寫開源的 C 編譯器!
    十年來它從微軟的封閉中走出來,變成現在的開源、跨平臺、公開的語言引擎,支持一切使用C#的東西(包括VB,我認為它是C#帶來的饋贈)。在我2005年加入微軟的時候,有過一次關於Roslyn項目的討論,當時剛好是.NET 2.0發布前夕。那次討論的內容是用C#重寫C#。這種事情在程式語言中很常見,也是語言成熟的一個標誌。
  • 華為方舟翻譯器開源,46款APP迅速加盟,鴻蒙有望抗衡安卓
    之前,相信多數消費者都關心過華為的鴻蒙系統,不過如今隨著谷歌對其的態度轉變,華為鴻蒙系統搭載到手機上的決定也就此擱置。除了華為的鴻蒙系統以外,華為方舟編譯器大家應該有聽說過,之前華為在安卓系統的基礎上升級的系統,正是因為該功能的搭載,所以使得手機的流暢度大幅度的提升。
  • C語言編譯器哪個好?6款好用的C語言編譯器推薦
    一些剛開始接觸C語言編譯的網友想下載一款C語言編譯器來使用,不過,網絡上有不少C語言編譯器相關的軟體,讓人很難抉擇。那麼,C語言編譯器哪個好?今天的文章裡,小編給大家整理了6款好用的C語言編譯器推薦給大家,需要下載C語言編譯器的網友,不妨了解一下!
  • 如果你想學C語言,下載哪個編譯器好?
    C語言這個東西現在用的人很少,一般都是用java的多,不過對於我來講,我一看C語言就親切,就想寫,工作上不一定能用得到,但是C語言作為作為所有高級語言的爸爸,多學一點有助於理解一些底層的東西,下面我就跟大家說一下想學C語言下載哪個編譯器好。
  • C編譯器小家族之C編譯器各顯神通
    主流C/C++編譯器|編譯環境簡介MSVCMSVC是微軟Windows平臺Visual Studio自帶的C/C++編譯器。優點:對Windows平臺支持好,編譯快。缺點:對C++的新標準支持得少。GCCGCC原名GNU C Compiler,後來逐漸支持更多的語言編譯(C++、Fortran、Pascal、Objective-C、Java、Ada、Go等),所以變成了GNU Compiler Collection(GNU編譯器套裝),是一套由GNU工程開發的支持多種程式語言的編譯器。
  • 誰說國產編譯器沒救了?這個 C/C++ 和 JavaScript 編譯器來了|程序...
    在 C/C++ 編譯器裡,有 VC、Borland C++、GCC、Watcom C/C++ 等國外熱門編譯器,但屬於國內自主研發的編譯器較少。畢竟開發一款實用的編譯器不易,涉及前端詞法、語法分析、語意分析、大量的編譯優化等工作。而有一支團隊,不惜花費十餘年精力完全自主研發出一款 YC 編譯器和 YC 瀏覽器內核。為何他們不遺餘力地自主研發編譯器和瀏覽器內核?
  • 世界上第一個C語言編譯器是怎麼編寫的?它為什麼能夠用C語言編寫?
    所謂C語言編譯器,就是把編程得到的文件,比如.c,.h的文件,進行讀取,並對內容進行分析,按照C語言的規則,將其轉換成cpu可以執行的二進位文件。這些操作,C語言都是可以實現的。 所以用C語言來做C語言的編譯器是完全可行的。 但是,歷史上的第一個C語言編譯器,肯定不是C語言寫的,因為在沒有編譯器時,無法把C語言轉換成可執行文件。只要有了第一版其它語言的編譯器,就可以用C語言寫編譯器了。
  • 華為諾亞方舟開源哪吒、TinyBERT模型,可直接下載使用
    機器之心整理 參與:一鳴 華為諾亞方舟實驗室開源了一批優秀預訓練語言模型,性能更好、使用更方便。 昨日,華為諾亞方舟實驗室的 NLP 團隊開源了兩個重要的預訓練語言模型——哪吒和 TinyBERT。這兩個模型可以直接下載、預訓練和微調。華為語音語義首席科學家劉群在微博上轉發了這一消息。
  • 華為鴻蒙2.0、EMUI 11秋季齊發:手機、電視、PC無縫互傳
    EMUI 11是基於安卓還是基於鴻蒙這點不得而知,不過有消息稱華為會在今年秋季推出鴻蒙2.0系統。此前有消息說榮耀要做遊戲本,華為自然也不會缺席。借著秋季發布會的風口,擴充一下自己的生態鏈產品陣容。另外華為還會發布完全搭載鴻蒙作業系統的華為watch手錶。
  • Vala 程式語言以及相關的開源軟體
    Vala 是一個很小眾的程式語言,專為gnome環境準備的開發語言,之所以vala會出現,是因為目前的glib,gio,gtk+,gnome-lib等等的C語言接口開發 起來實在太繁瑣(這個深有感觸
  • C語言初學者該如何選擇編譯器?哪個編譯器好用?
    剛開始學C語言,很多人都不知道該如何選擇一個編譯器。C語言相對其他程式語言來說,編譯器比較多,網上眾說紛紜,在這裡,我以親身學習經歷說明新手該如何選擇編譯器。我學習C語言一共只用了兩個編譯器,一個是VC++6.0,另一個是Dev C++。什麼時候用?
  • c編譯器so easy,gcc c編譯器生成、使用動靜態庫
    第一章程序開發人員大多接觸過c編譯器,請注意,不要將c編譯器和編輯器弄混淆哦。本文對c編譯器的講解,同樣基於gcc c編譯器,本文主要目的在於對linux環境下gcc c編譯器生成和使用靜態庫和動態庫予以介紹。此外,本文為系列教程第一篇——基本概念篇,之後將帶來另外兩篇。
  • 亂花漸欲迷人眼的C編譯器中,誰才是「編譯之王」?
    C語言作為「萬物的始祖」,所有剛接觸的小夥伴都在使用C語言,然而不勝枚舉的C語言編譯器讓人眼花繚亂,VScode、GCC、TCC……那麼到底哪些C語言編譯器是大佬們用的最多的?又有哪些C語言編譯器是兼容性最強的呢?到底誰才是編譯之王?
  • 華為終端盤點2019年度十大功能技術:方舟編譯器、鴻蒙OS在列
    驅動中國2020年1月17日消息 今天早上,華為終端官方微博盤點了2019年度華為公司十大黑科技技術,4K超廣角延時攝影、鴻蒙OS、摺疊屏等技術均一一在列。我們仔細看這十大技術中基於安卓系統升級的華為方舟編譯器功能大致覆蓋華為各大手機產品線。
  • C語言程序的頭文件一般都是.h結尾,還有些.hpp結尾的是什麼?
    很多C語言學習者多多少少也會了解一些C++的語法,應該能夠發現,C語言和C++程序源文件的後綴名是不同的——C語言程序源文件後綴名為「.c」,而C++程序源文件後綴名一般為「.cpp」,「.h」後綴名則常常是頭文件的後綴名。
  • 奇怪的C語言代碼,在變量前加上(void)是什麼操作?有什麼用?
    首先考慮第一個問題前文提到 fun() 函數來自一個C語言程序開源項目,該項目比較複雜,但是我們知道再複雜的程序項目也是一行一行代碼敲出來的,而且,在後續的開發中,可能會修改之前的設計。明白這一點,要回答第一個問題就簡單了。
  • 華為官宣了,調整了8年的手機系統,12月16日不見不散
    鴻蒙系統體驗出色,未來可與安卓相媲美早在今年9月份,華為負責人餘承東就表示:明年所有的華為手即可轉載鴻蒙系統2.0,對於全球的銷量,是沒有任何問題的。也就是說,鴻蒙系統可完全取代安裝系統。如今的手機圈,硬體和軟體同時自研,那是蘋果的iPhone,華為、三星有自研晶片,但系統與其它品牌一樣共用安卓。然而就在近日,華為官宣了調整了8年的手機系統,12月16日將正式亮相。
  • 華為終端官方盤點2019十大功能技術
    TOP9:華為方舟編譯器華為方舟編譯器是安卓系統性能的突破性創新,通過全新的編譯和運行機制,顯著改善了普通安卓程序響應低效的問題,大幅提升操作流暢度。TOP5:超感光暗拍華為Mate30 Pro和華為P30 Pro超感光暗拍,最高支持ISO 409600,複雜光影下,捕捉清晰夜景,輕鬆還原你想記錄的夜晚。
  • 華為鴻蒙OS路線圖公布:1.0版首發於智慧屏、2.0版將覆蓋PC和車機等
    華為今日在東莞新總部舉辦2019年開發者大會(HDC),不少人期待已久的鴻蒙OS(HarmonyOS)作為當然主角率先登場。據悉,鴻蒙OS 1.0版基於開源框架並在關鍵模塊上實現自研,體系上由分布式架構、方舟編譯器、確定時延引擎、TEE微內核形式化驗證、多終端開發IDE(Beta)組成。