【從零開始學習計算機科學】編譯原理(一)編譯過程概述
- 緒論
- 編譯過程概述
- 詞法分析
- 語法分析
- 代碼優化
- 代碼生成
- 其他功能
- 編譯器的前端和后端
緒論
什么叫編譯程序?為什么我們需要編譯程序?編譯程序就是一個程序,將便于人編寫、閱讀、維護的高級計算機語言所寫作的源代碼程序,翻譯成與之等價的另一種能為計算機解讀、運行的低級機器語言。
一般來說,執行一個高級語言所寫的程序的方法有兩種,分別是編譯執行和解釋執行。編譯執行有一個單獨的編譯過程將源程序翻譯生成目標程序,具體執行的是目標程序,因此是一次編譯多次執行。例子包括C、C++等編程語言。解釋執行在每次運行時,將源程序邊翻譯邊運行,因此每次執行都需要解釋。例子包括Python、JavaScript、Matlab等編程語言。其共同點是將高級語言翻譯(編譯)成機器語言進行執行
編譯過程概述
編譯程序的工作,從輸入源程序開始,到輸出目標程序結束,與自然語言之間的翻譯有很多相似之處。
英譯中 (如I love China.) 需經歷的步驟主要有:1,識別出句子中的單詞;2,分析句子的語法結構;3,句子的語義分析;4,對語義進行修飾;5,寫出最后的譯文。而在編譯過程中,其可以抽象為詞法分析、語法分析、語義分析及中間代碼生成、機器無關的代碼優化、目標代碼生成。因此,編譯器是分階段執行的,每個階段將源程序從一種表示轉換成另一種表示
詞法分析
此階段完成的任務(以a=