9月4日做業

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

整體來講,編譯語言和彙編語言都是翻譯語言的其中一種,都是將一種語言書寫的程序翻譯成另外一種語言的等價程序。框架

區別在於,翻譯程序中不止有編譯程序一種,還存在一種解釋程序,它相較於編譯程序的區別在於它執行時並不會將源語言所有翻譯成目標程序在執行,而是每翻譯一句就會當即執行。編程語言

     另外的,將源語言爲彙編語言的翻譯成目標語言爲機器語言的翻譯程序,被叫作彙編程序。模塊化

     而將源語言那種的高級語言翻譯成彙編語言或者機器語言那種低級語言的翻譯程序,被叫作編譯語言。工具

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

典型的劃分方式中會將編譯過程劃分紅以下6各階段(主要功能也一併列入):spa

     階段一---詞法分析:逐字符讀入源程序,掃描和分解源程序字符流,進而識別出一個個單詞。翻譯

     階段二---語法分析:其功能是在詞法分析的基礎上,,將單詞序列分解成各種語法短語。開發

     階段三---語義分析:其功能是審查源程序有無語義錯誤,爲代碼的生成階段收集類型信息。get

     階段四---中間代碼生成:其功能將源程序翻譯成一種結構簡單含義明確的內部表達形式,又叫座中間語言,中間代碼。

     階段五---代碼優化:其是對上一段的中間代碼進行變換改造。

     階段六---目標代碼生成:其功能是將中間代碼變換成特定的機器上的絕對指令代碼或可重定位的指令代碼或彙編指令代碼。

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

     解釋程序相對於編譯程序最重要的區別在於:

      一、解釋程序不會產生目標程序文件。

      二、不區別翻譯階段和執行階段。

      三、翻譯源程序的每一條語句後直接執行。

      四、程序執行期間一直有解釋程序守候。

      五、經常使用於實現虛擬機。

     總的說,編譯程序是先將源程序所有轉換成目標程序再執行,而解釋程序是每翻譯一句就執行一句。

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

     簡單理解:方舟編譯器是一個模塊化的工具,用於開發,它可讓開發人員沒必要寫複雜的電腦語言,像Java、PHP、VB、C++等,在編寫的時候都有本身的語法,人們用編程語言就能夠開發軟件了。

     技術思路和路線:就是,它跳過了反鎖的虛擬機程序,直接把指令告訴了手機,手機去執行,中間少了一個傳話的流程,因此能夠明顯提高手機的運行效率,如:打開應用的速度,傳送文件的速度,拍照的響應速度,甚至開機關機的速度。它要求全部人用這個框架開發應用,它用更高級的可視化操做簡化編程時間和流程,而後用統一的指令告訴手機應該怎麼作,這中間不論是誰來操做都是同樣的流程和格式,因此應用的質量會有明顯提高,這不只是速度上的東西,甚至還能夠幫助應用自己減小壓縮包的體積,這是一個連鎖反應,而且是好的方向。

     對安卓軟件生態的影響:我認爲若是這個編譯器可以正式的全面普及應用,對安卓軟件市場將會有至關巨大的正面影響。不過在我看來可否全面普及仍是十分很差說的,由於它牽連到了太多人的利益和麪子,只有等到谷歌的全面迴應了。不得不說資本是一把雙刃劍,它既能帶動科學技術的發展,有時也會阻礙科學技術的發展,當任何事物有資本融入牽連進來時,都會變得十分複雜,步步受礙。

相關文章
相關標籤/搜索