對編譯原理的見解

1、編譯原理是什麼?程序員

編譯原理是計算機專業的一門重要專業課,旨在介紹編譯程序構造的通常原理和基本方法。內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優化和目標代碼生成。 編譯原理是計算機專業設置的一門重要的專業課程。雖然只有少數人從事編譯方面的工做,可是這門課在理論、技術、方法上都對學生提供了系統而有效的訓練,有利於提升軟件人員的素質和能力。算法

 

2、學習編譯原理有什麼好處?學習

這門課是一門真正與代碼作鬥爭的課程,對於一個有至於追求技術的人是不容錯過的課程,並且編譯原理能夠說是一個計算機科學的縮影。你學習它更多的是去追尋程序設計語言的本質,如它在寄存器分配中將會使用到貪心算法,死代碼消除中將會使用到圖論算法,數據流分析中使用到的Fixed-Point Algorithm,詞法分析與語法分析中使用到有限狀態機與遞歸降低這樣的重要思想等等,也許你之後不會成爲一個編譯器開發工做者,可是編譯原理的學習中所獲,所思的東西足以讓你終生獲益。同時,學完這門課程,對於一個有Geek精神的開發者,他會開始運用本身的所學開發享受「上帝」的感受,去嘗試創造一門語言,我想這種感受不是每門課程都能帶給你的。我相信,當你真正完成這個過程後,你對你所寫的程序、程序語言都會有更深的本質認識,這樣的認識也會讓你站的高度徹底不一樣優化

 

3、不學習編譯原理的損失spa

不學編譯原理,可能永遠給各類寫編譯器的人當奴隸,覺得寫程序只能按照他們設計的語言哲學來作。學好了編譯原理,不必定非要本身寫語言,可是至少能把不少其餘程序員以爲很酷的東西看得透徹一點,不會被程序語言的設計表象騙到太多。這個仍是挺重要的,是一生碼工和將來CTO的區別操作系統

4、如何學習編譯原理翻譯

 

編譯原理」通常是本科或者研究生時課程的名字,通常說來這時關注的主要是理論部分,從形式語言和自動機的角度介紹各類文法和自動機的知識,這方面的知識「龍書」 [1] 是很是經典的,尤爲是前幾章。而實踐的部分則更推薦看「虎書」 [2],對現代編譯器的結構、詞法分析和語法分析實現,代碼生成和虛擬機的構造等都有詳細的敘述,是很是好的上手指南,我本身寫的第一個編譯器就是按照虎書作的。設計

 

此外,若是但願編寫實用的、面向現代操做系統的編譯器,那麼 Linkers and Loaders [3] 這樣面向專門領域的經典也不可錯過。遞歸

 

三步:開發

1. 讀書:龍虎鍄,把課後的題目會作的都作一遍。

2. 本身寫一個toy compiler,編譯一些簡單的代碼,嘗試理解各部分之間如何整合。

3. LLVM的代碼,試着在上面加一些東西。

相關文章
相關標籤/搜索