1. 程式人生 > >如何學習編譯原理

如何學習編譯原理

對於沒有電腦科學基礎的程式設計師或初學者來說 一上來就看龍書 虎書是行不通的 全是理論知識 看得想睡覺
我還試過看網易雲大學計算機專業的編譯原理課程 也是看得一頭霧水 看到80多講就看不下去了
另外 LISP(計算機程式的構造和解釋)這本很多人推薦的書其實並不適合初學者 前3章和後面幾章難度差別有點大 可能是自己水平不行 看LISP直譯器和編譯器那兩章也是看不懂 雖然強迫自己看完 但是最後還是不懂編譯原理到底是怎麼回事

不過 後來我還是通過學習一本書的知識 寫出來了一個簡單的編譯器
這本書簡單 通俗易懂 對計算機體系知識有一個較全面的介紹 而你只需要會一門編譯語言就行了 它就是

《計算機系統要素》
這本書前面5章講的是硬體知識 雖然跟編譯原理沒什麼關係 但是對於瞭解計算機硬體知識是很有用的 重點是通俗易懂
後面的章節就是和編譯原理有關的知識了
書裡的內容介紹了

彙編編譯器(將組合語言翻譯為機器語言)
VM編譯器(將虛擬機器語言翻譯為組合語言)
編譯器(將高階語言翻譯為虛擬機器語言)
不要看到有3個編譯器就覺得難 其實相對於上面介紹的書籍 算是非常簡單了
我大概花了1個多月的時間完成了這本書的所有專案 最終寫出了一個編譯器 算是對編譯原理有了一個比較全面但不深入的瞭解吧 這個時候再去看龍書 虎書 就不會感覺很吃力了
附上我完成這本書所有專案的答案
https://github.com/woai3c/nand2tetris

再最後說一句 這本書的內容真的是通俗易懂!通俗易懂!通俗易懂!