天天看點

編譯原理——語言處理程式

概況

程式語言是為了書寫計算機程式而人為設計的符号,用于對計算過程進行描寫叙述、組織和推導,程式語言分為低級語言和進階語言,低級語言包含計算機硬體能識别的由0、1組成的機器指令語言和用符号組成的指令語言彙編集合的彙編語言,進階語言是人們開發的功能更強、抽象級别更高的語言以支援程式設計,面向各類應用的程式語言。

因為計算機僅僅能了解由0、1序列構成的機器語言。是以進階程式語言須要翻譯,即将進階語言或彙編語言編寫的程式翻譯成某種機器語言好曾向,擔負這一任務的程式稱為“語言處理程式”。語言處理程式的基本方式為彙編、解釋和編譯。

彙程式設計式

用符号表示的指令稱為彙編指令,彙編指令集合稱為彙編語言。

彙編語言由指令語言、僞指令語句和宏指令語句構成。指令語句又稱為機器指令語言。将指令語言彙編後能産生對應的機器代碼。僞指令語句,是訓示彙編源程式時完畢某些工作,通俗的說是寫給“彙編軟體”看的。不翻譯成機器碼。宏指令語句。多次反複使用的程式段叫宏,須要使用這段程式時。僅僅要使用宏名即能夠。這樣宏的引用就是宏指令語句。

彙編語言編寫的程式為彙編語言程式,彙編語言程式将彙編語言所編寫的源程式翻譯成機器指令程式。

該工作包含兩部分,一是将彙編語言轉換成機器指令,還有一部分處理源程式中的僞指令。該工作是實作途徑是通過兩次掃描源程式。

編譯程式

編譯程式是把某種進階語言書寫的源程式翻譯成目智語言程式。

編譯程式工作分為六個階段,各自是此法分析、文法分析、語義分析、中間代碼生成、代碼優化、目标代碼生成這六個階段,可是在實際的編譯器中可能會将當中的某些階段結合在一起進行處理。

在邏輯上将這六個階段分為前段和後端,前段從詞法分析到中間代碼生成4個階段,後端包含代碼優化和目标代碼生成這兩個階段,前段和後端把編譯器分成了與機器無關程式設計語言有關和機器有關程式設計語言無關兩部分。

解釋程式

解釋程式能夠直接将源程式解釋運作。也能夠将源程式翻譯成某種中間代碼形式。然後對中間代碼進行解釋來運作。

解釋程式的詞法、文法和語義與編譯程式基本同樣,隻是不同的是解釋程式不産生目标程式,執行時候須要源程式和解釋程式參與。

編譯與解釋比較

編譯方式下。機器上僅僅執行目标程式,源程式和編譯程式不參與目标程式執行。解釋方式下。源程式和解釋程式要參與到程式執行過程中。執行程式的控制權在解釋程式。

編譯較解釋效率高,解釋方式下執行程式,須要重複多次掃描源程式,而且須要很多其它的記憶體。

編譯方式進行目标代碼生成并優化在時間和空間上都比解釋程式耗費多,可是編譯程式的最大的優勢是一次編譯完畢多次執行。是以總體效率比解釋高。

繼續閱讀