作者:snsn1984
近来碰到一些想学习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覆盖的范围主要在链接和加载上面,这是一般的讲编译的书不会覆盖的,但是真正的编译器不光进行了编译,必然包含一个链接的过程,所以这个过程对了解整个的编译器的工作流程有着相当重要的作用。所以还是建议学习一下这方面的知识。
因为本人读过的书不多,这里也列一个别人的推荐书单:
http://www.lingcc.com/2012/05/16/12048/
这个书单里也列了一些别人的书单,我想这些应该够用了。
--------------------------------------------------------------------------转载请注明出处---------------------------------------------------------------------------------------------