1)簡述編譯程序與翻譯程序、彙編程序的聯繫與區別。編程
編譯程序是一種語言處理程序,它把一個高級語言程序比翻譯成某個機器的彙編語言程序或二進制代碼程序,這個二進制代碼程序在機器上運行以生成結果。架構
翻譯程序是指把高級語言源程序翻譯成預計其語言源程序的軟件,翻譯程序包括編譯程序和解釋程序。框架
彙編程序也是一種語言翻譯程序,它把語言源程序翻譯成機器語言程序。工具
2)編譯過程包括哪幾個主要階段及每一個階段的主要功能。性能
兩大階段:分析+綜合學習
分析:詞法分析、語法分析、語義分析,主要是理解源程序。優化
綜合:中間代碼生成、目標代碼,主要實現源程序生成目標代碼。spa
詞法分析:這個階段的任務是從左到右一個字符一個字符地讀入源程序,對構成源程序地字符流進行掃描和分解,從而識別出一個個單詞。翻譯
語法分析:任務是在詞法分析的基礎上將單詞序列分解成各種語法短語。源碼學習
語義分析:是審查源程序中有誤語義錯誤,爲代碼生成階段收集類型短信。
中間代碼生成:在進行了上述的語法分析和語義分析階段的工做以後,有的編譯程序將源程序變成一種內部表示形式,這種內部表示形式叫作中間語言或中間代碼。
目標代碼生成:任務是把中間代碼變換成特定機器上的絕對指令代碼或可重定位的指令代碼或彙編指令代碼。
3)簡述解釋程序與編譯程序的區別。
編譯程序在不把整個程序翻譯完成以後,這個程序是不能開始運行,也不能產生任何結果的。
解釋程序它不須要在運行以前先把源代碼翻譯成目標代碼,也能夠實如今某臺機器上運行程序並生成結果。
4)瞭解新開源的華爲方舟編譯器(https://www.openarkcompiler.cn/home),理解並談談它的基本思想與採用的技術路線,以及它對安卓軟件生態會有什麼影響。
華爲方舟編譯器開放了框架源碼,標誌着鴻蒙OS啓動開源第一步。方舟編譯器對終端軟件編譯機制進行了架構級優化,將顯著地提高用戶體驗。這次,華爲公佈方舟編譯器框架源碼,將來將實現完整開源,此舉將聚合全球開發者與合做夥伴智慧,使能產業升級和創新,激發全新的軟件生態活力。
開發者可基於開源代碼+二進制,編譯構建出編譯器工具鏈,嘗試對Java程序進行編譯。社區參與者能夠經過框架源碼學習方舟編譯器的編譯器中間表達(IR)及基本的中端編譯框架,熟悉方舟編譯器的架構思想,並參與諸如對編譯器中端優化的貢獻。
方舟編譯器是華爲專門爲軟件廠商開發的一款編譯器,可以有效解決安卓程序「邊解釋邊執行」的低效率問題。華爲方舟編譯器採用全程執行機器碼高效運行程序,架構進一步獲得優化,性能也有明顯提高。相較與此前流暢度,經過華爲方舟編譯器編譯後的程序系統,操做流暢度提高24%,系統響應速度提高44%,三方應用操做流暢度提高60%。