如何學習編譯原理

2021-09-08 16:30:03 字數 632 閱讀 9968

對於沒有電腦科學基礎知識的程式設計師或初學者來說 一上來就看龍書 虎書是行不通的 全是理論知識 看得想睡覺

我還試過看網易雲大學計算機專業的編譯原理課程 也是看得一頭霧水 看到80多講就看不下去了

另外 sicp(電腦程式的構造和解釋)這本很多人推薦的書其實並不適合初學者 前3章和後面幾章難度差別有點大 可能是自己水平不行 看sicp直譯器和編譯器那兩章也是看不懂 雖然強迫自己看完 但是最後還是不懂編譯原理到底是怎麼回事

不過 後來我還是通過學習一本書的知識 寫出來了乙個簡單的編譯器 注意 是真正動手寫出來了乙個編譯器 不是停留在理論階段

這本書簡單 通俗易懂 對計算機體系知識有乙個較全面的介紹 而你只需要會一門編譯語言就行了 它就是

《計算機系統要素》

這本書前面5章講的是硬體知識 雖然跟編譯原理沒什麼關係 但是對於了解計算機硬體知識是很有用的 重點是通俗易懂

後面的章節就是和編譯原理有關的知識了

書裡的內容介紹了

不要看到有3個編譯器就覺得難 其實相對於上面介紹的書籍 算是非常簡單了

我大概花了1個多月的時間完成了這本書的所有專案 最終寫出了乙個編譯器 算是對編譯原理有了乙個比較全面但不深入的了解吧 這個時候再去看龍書 虎書 就不會感覺很吃力了

附上我完成這本書所有專案的答案

如何看待編譯原理

2.學習編譯原理有什麼好處呢?網上的給出了我們幾點我認為對我們未來學習都十分有用的建議,1 可以更加容易的理解在乙個語言種哪些寫法是等價的,哪些是有差異的 2 可以更加客觀的比較不同語言的差異 3 更不容易被某個特定語言的宣揚者忽悠 4 學習新的語言是效率也會更高 5 其實從語言a轉換到語言b是乙個...

編譯原理 如何編寫BNF?

理解了bnf,就能實現 解析了嗎?還有點早,因為理解了bnf,還要會寫bnf。實際上,bnf實現有固定的模式,也有現成的工具,比如可以使用yacc bison等工具自動化進行。所以把實現先放一放,看一看bnf是怎麼寫的。是否所有的bnf都可以這麼來寫呢?下面我們嘗試對其他語法的bnf進行編寫。如c語...

編譯原理 yylex學習筆記

yyleng 只要掃瞄程式匹配標記時,標記的文字就儲存在以空字元終止的字串yytext中,而且它的長度儲存在yyleng中,yyleng中的長度與由strlen yytext 返回的值是相同的。yyless 從與規則相關的 中呼叫yyless n 這條規則推回除標記開頭的幾個字元以外的所有字元。當決...