編譯器是如何工作的?
英文原文: How Compiler Works?
解釋編譯器如何工作不是一件容易的事,最好的方法是用一個實例進行說明:
編譯器是這樣一個電腦程序,它把用高級編程語言編寫的源代碼,轉化成低級語言。
最基本地,一個編譯器由以下幾個階段組成:詞法分析、語法分析、語義分析、IR(中間代碼,intermediate Representation)產生、IR 優化、代碼產生、最終優化。
現在,看一個例子:
以下就是各個步驟的詳細分析。
1. 詞法分析
把一個程序轉換成串行的符號。
2. 語法分析
恢復上面掃描得到的串行符號描述的結構。
3. 語義分析
保證程序的定義是明確的。
4. IR 產生
5. IR 優化
6. 代碼產生
7. 最終優化
我在想,應該畫一個可以清晰地表達編譯器是如何工作的圖解。然而,我發現在《龍書》(譯注:《龍書》就是《編譯原理》(Compilers— Principles, Techniques and Tools),名字源于書的封皮有一條吐火的龍)的圖非常好,那就不需要自己動手了。
我仍然想自己做一個可以從頭到尾編譯一個簡單函數的小編譯器,我會做一些調研,并可能找到一種清晰展示的方法。
翻譯: 伯樂在線 - 乾龍 譯文鏈接: http://blog.jobbole.com/53222/
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!