LLVM每日談之十一 編譯器相關學習資料推薦

近來碰到一些想學習LLVM但是已經把編譯原理的知識還給老師的朋友,讓幫忙推薦一些學習資料,我就把手頭有的一些資料,大都是自己讀過的一些資料整理一下,列出來,希望對大家有所幫助。

1、《Compilers---Principles,Techniques, and Tools》

沒錯,這就是傳說中的龍書,雖然無數次被人推薦,也無數人說能不能換點別的推薦,但是它還是當之無愧的首選。網上可以找到PDF的電子版,中英文的都有。如果真是打算好好的學編譯器,建議買本英文版的,讀的時候,不明白的再看看中文版的電子版。因為如果以中文版為主的話,後續你面對編譯器的源碼,可能會有一些東西對不上號。讀的是英文版的就會好多了。

2、www.coursera.org

這是一個公開課的網站,上面有很多優秀的公開課,都是世界著名大學的。其中有一門課程叫做《Compiler》講的特別不錯,如果跟著這個課程學習的話,再輔以龍書,效果會很不錯,同時也會讓你覺的讀龍書沒什麼難得,還有一種撥雲見日的感覺。

3、《程序員的自我修養》

關於這本書的介紹,網上有很多,大家可以看下。這本書的立足點確實是以往很少有資料介紹的,但是並不代表不重要。如果你要是想了解程序真正的從源碼到執行,這本書的立足點的那些環節是必不可少的。

4、《Linkers and Loaders》

這本書是鏈接和裝載方面最為權威的一本書,也十分的完整,但是內容有點偏舊。這本書讀的不讀,3書中的作者也推薦了這本書,覆蓋領域和3中的大致相同。有精力的同學可以看一下。

5、《深入理解計算機系統》

這本書的經典就不用太多的言語介紹了。這本書中的第七章,主要介紹鏈接部分的內容,和3、4的覆蓋範圍有些相似,如果時間有限,建議可以直接讀這本書的第七章。

這些資料中3、4、5覆蓋的範圍主要在鏈接和載入上面,這是一般的講編譯的書不會覆蓋的,但是真正的編譯器不光進行了編譯,必然包含一個鏈接的過程,所以這個過程對了解整個的編譯器的工作流程有著相當重要的作用。所以還是建議學習一下這方面的知識。

因為本人讀過的書不多,這裡也列一個別人的推薦書單:

lingcc.com/2012/05/16/1

這個書單里也列了一些別人的書單,我想這些應該夠用了。

2013年3月8日

推薦閱讀:

Clang Static Analyzer - BodyFarm
誰說不能與龍一起跳舞:Clang / LLVM (2)
為什麼Apple的Clang生成的LLVM IR比開源的Clang生成的IR要讀者友好?

TAG:LLVM | Clang | ChrisLattner |