龙、虎、鲸书杂谈
關于編譯有三本書:
龍書: 《Compilers:Principles, Techniques, &Tools》
虎書:《Modern Compiler Implement in C》 這本書還有JAVA和ML版本
鯨書:《Advanced Compiler Design and Implementation》
這三本書在編譯領域非常出名,其中名氣最大的應該屬于龍書了,也是目前仍然有版本在印刷發行的。虎書和鯨書國內貌似沒有繼續發行了,我找英文版找了好久,都沒有找到合適的,只好買的二手的舊書。三本書湊齊也挺不容易的。
這三本書,到目前為止,除了有時候查東西翻翻,正經讀的最多的還算是龍書。虎書和鯨書都只讀了一章。個人也想理一下這三本書的思路,好利于自己的讀書和學習。曾經看到有人覺的最適合入門讀的是鯨書,這點我實在是不敢茍同。除非是個人編譯基礎非常好,而且重點在于研究編譯里的優化,可以直接讀鯨書。其他的情況,都不建議直接讀鯨書的。
龍書,對整個編譯的過程,介紹的很詳細,而且很多時候,對編譯理論中很多的技術都介紹的很詳細,給人感覺像是百科全書的感覺。你能用到的,基本在龍書里都能找到。正是這個原因,也讓這本書讀起來有點費勁。這本書對編譯理論中的優化部分覆蓋的不多,等于是它和鯨書剛好結合起來,構成編譯的大百科,一個不側重優化,一個側重優化,都很詳盡,將所有涉及的知識都覆蓋了。
虎書更像是龍書和鯨書結合之后的簡化版本,是建議作為學習編譯的教材一類的書,既可以一學期學完,只學編譯的基本知識,也可以兩學期學完,繼續學編譯的高級topics,大部分也是關于優化的內容。虎書還有一個特別好的有點,就是很接近與實際,談一些理論知識的時候,都會去拿實際的代碼去說明一件事情,這樣更加的利于學習時候的理解,而不是被一大堆的理論完全搞的摸不著頭腦。
所以綜合來看,如果技術不是非常的扎實,那還是建議從虎書開始學習,邊學邊練,慢慢的把基礎打扎實,然后再繼續龍書和鯨書的學習。編譯原理是大學本科時候的必修課,可能很多人覺的自己學過了,基礎應該可以,但是依然推薦從虎書開始,實際工作中,雖然大家都學過編譯原理了,但是到最后能把整個流程的大致環節說清楚的,就算是不錯的了。
轉載于:https://www.cnblogs.com/ainima/p/6331924.html
總結
- 上一篇: SQL 表之间的更新
- 下一篇: 关于bjam编译自己模块出错的问题