一、翻譯程式與編譯程式
1、所謂翻譯程式是指這樣一個程式,它把一種語言(稱作源語言)所寫的程式(源程式)翻譯成與之等價的另一種語言(稱為目智語言)的程式(目标程式)。
如果源語言是進階語言,目智語言是諸如彙編語言或機器語言之類的低級語言,那麼稱這樣的翻譯程式為編譯程式。
2、解釋程式是一種翻譯程式,它将源程式作為輸入并執行之,即邊解釋邊執行。它與編譯程式的主要差別是編譯過程中不會産生目标程式,而是按照源語言的定義解釋執行源程式本身。
3、采用編譯方式在計算機上執行用進階語言編寫的程式,需要分階段進行,一般分為2個階段:編譯階段和運作階段。
4、如果編譯階段生成的目标程式不是機器語言程式而是彙編語言程式則程式的執行需要分為3個階段:編譯階段、彙編階段和運作階段。
二、編譯過程和編譯程式的基本結構
編譯程式的功能是把進階語言編寫的源程式翻譯成等價的機器語言或彙編語言表示的目标程式。
1、編譯過程
(1)詞法分析
對源程式的字元串從左到右進行掃描和分解,根據語言的詞法規則,識别出一個個具有獨立意義的單詞。
(2)文法分析
在詞法分析的基礎上,根據語言的文法規則識别出各種文法機關(如表達式、說明、語句等)并檢查各種文法機關在文法結構上的正确性。
(3)語義分析及中間代碼生成
對每種文法機關進行靜态的語義審查,然後分析其含義,并用另一種語言形式(比源語言更接近目智語言的一種中間代碼或直接用目智語言)來描述這種語義。
(4)代碼優化
對目前階段産生的中間代碼進行等價變換或改造,以獲得更高效的目标代碼。
(5)目标代碼生成
将中間代碼生成特定機器上的絕對指令代碼或可重定位的指令代碼或彙編指令代碼。
三、編譯程式的生成方法
1、對源語言和目智語言的認真分析
2、設計編譯算法
3、選擇語言編制程式
4、調試編譯程式
5、送出相關文檔資料