編譯程序與翻譯程序、匯編程序的聯系與區別,編譯過程包括的幾個主要階段,解釋程序與編譯程序的區別


1)簡述編譯程序與翻譯程序、匯編程序的聯系與區別。

  翻譯程序指把高級語言源程序翻譯成機器語言源程序(目標代碼)的軟件。翻譯程序有兩種:一種是編譯程序,它將高級語言源程序一次性全部翻譯成目標程序,每次執行程序時,只要執行目標程序。另一種是解釋程序,它的執行過程是翻譯一句執行一句,並且不會生成目標程序。

編譯程序是先完整編譯后運行的程序,如C、C++等;解釋程序是一句一句翻譯且邊翻譯邊執行的程序,如JavaScript、Python等。如圖

 

 

  匯編程序也是一種語言翻譯程序,它把匯編語言源程序翻譯成機器語言程序。

  編譯程序匯編程序的區別:如果源語言是諸如C、C++、Java等“高級語言”,而目標語言是諸如匯編語言或機器語言之類的“低級語言”,這樣的一個翻譯程序稱為編譯程序。如果源語言是匯編語言,而目標語言是機器語言,這樣的一個翻譯程序稱為匯編程序。

 

2)編譯過程包括哪幾個主要階段及每個階段的主要功能。

  編譯階段也常常划分為兩大步驟,分析步驟綜合步驟 分析步驟和綜合步驟 分析步驟是指對源程序的分析 -線性分析(詞法分析或掃描) -層次分析(語法分析) -語義分析 綜合步驟是指后端的工作,為目標程序的生成而進行的綜合。

 

3)簡述解釋程序與編譯程序的區別。

  編譯程序能生成目標程序,而解釋程序不能。編譯程序是整體編譯完了,再一次性執行。而解釋程序是一邊解釋,一邊執行。 解釋一句后就提交計算機執行一句,並不形成目標程序。就像外語翻譯中的“口譯”一樣,說一句翻一句,不產生全文的翻譯文本。編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機可以直接以機器語言來運行此程序,速度很快。而解釋器則是只在執行程序時,才一條一條的解釋成機器語言給計算機來執行,所以運行速度是不如編譯后的程序運行的快的。這是因為計算機不能直接認識並執行我們寫的語句,它只能認識機器語言(是二進制的形式)。

 

 4)了解新開源的華為方舟編譯器(https://www.openarkcompiler.cn/home),理解並談談它的基本思想與采用的技術路線,以及它對安卓軟件生態會有什么影響

  眾所周知,搭載安卓系統的手機在經過長時間的使用之后,經常會出現使用卡頓和圖像傳輸延后以及網絡連接不暢等問題。長期以來這個問題一直沒能徹底解決,方舟編譯器或許是這個問題的終結者。其實,方舟編譯器是華為歷經多年打造出來的秘密武器,也許大家不是很了解什么是方舟翻譯器,舉個例子好了,當我們碰到外國人並且語言不通的時候,這個時候就需要一個中介作為翻譯傳遞互相的信息。

  簡單來說,方舟編譯器就是可以將高級語言比如Java,直接編譯成變成機器碼的技術。它最大的優勢就在於繞過了安卓系統的VM(虛擬機),從使得應用可以像蘋果引以為傲的iOS系統一樣,轉化出的機器碼可以直接由CPU運算,從而使得運行效率大大提升

   更詳細的說,現在的安卓手機采用的是動態編譯,在手機上進行編譯,往往有部分程序需要一邊轉換一邊執行,影響程序執行的效率。而方舟編譯器是采用全新的系統及應用的編譯和運行機制,對所有的 Java 語義全部做到靜態編譯,直接將Java 語言“翻譯”成機器語言,代替高資源消耗的動態編譯。所以相比起單純的翻譯機器來說,華為方舟編譯器更像是讓您直接獲得了語言能力,對比單純作為翻譯中介,更將運行效率大幅度提升,從根本上改善安卓系統運行慢的弊端。

  根據華為實驗室的測試數據,EMUI 9.1 在僅僅對系統組件 System Server 應用了華為方舟編譯器后,系統操作流暢度提升 24%,系統響應性能提升 44%。同時,新浪微博極速版在應用方舟編譯器之后,操作流暢度最高提升了60%。根據華為的監測數據來看,方舟編譯器可以說是給安卓系統帶來了一場革命性的升級變革,着實讓業界側目。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM