編譯程序、編譯程序的結構


什么是編譯程序

源程序:未經編譯的,按照一定的程序設計語言規范書寫的,人類可讀的文本文件。通常由高級語言編寫。

目標程序:源程序經編譯可直接被計算機運行的機器碼集合,在計算機文件上以 .obj 作為擴展名——由語言處理程序將源程序處理成與之等價的由機器碼構成的,計算機能直接運行的程序。

翻譯程序:是一種系統程序,將計算機編程語言編寫的程序翻譯成另外一種計算機語言的一般來說等價的程序,主要包括編譯程序和解釋程序。

編譯程序:也稱編譯器,把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序。

解釋程序:一個語言處理程序,把一個高級語言程序翻譯成某個機器的匯編語言程序或二進制代碼程序。

關系:源程序經過編譯程序變為目標程序,再由解釋程序變為可裝配的機器代碼。

編譯程序的結構

一個典型的編譯系統通常組成部分:詞法分析程序、語法分析程序、語義分析程序、中間代碼生成程序、代碼優化程序、目標代碼生成程序、表格管理程序、出錯處理程序

各部分的主要功能

詞法分析:從左到右一個一個字符地讀入源程序,對構成源程序的字符流進行掃描和分解,從而識別出一個個單詞。

語法分析:在詞法分析的基礎上將單詞序列分解成各類語法短語。

語義分析:審查源程序有無語義錯誤,為代碼生成階段收集類型信息。

中間代碼生成:在語法分析和語義分析的工作之后,有的編譯程序將源程序變成一種內部表示形式,這種內部表示形式叫做中間語言或中間代碼。

代碼優化:對前一階段產生的中間代碼進行變換或進行改造,使生成的目標代碼更為高效,即省時間和省空間。

目標代碼生成:把中間代碼變換成特定機器上的絕對指令代碼或可重定位的指令代碼或匯編指令代碼。

表格管理:編譯程序在工作過程中需要保持一些列的表格,以登記源程序的各類信息和編譯各階段的進展情況。

出錯處理:編譯過程中發現源程序有錯誤,編譯程序應報告錯誤的性質和錯誤發生的地點,並且將錯誤所造成的影響限制在盡可能小的范圍,使得源程序的其余部分可以繼續被編譯下去,有些編譯程序還能自動校正錯誤。


免責聲明!

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



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