经典书籍
编译器相关
- 龙书(第2版):Compilers:Principles,Techniques,and Tools(2nd Edition) 经典,适合入门者
- 虎书:Modern Compiler Implementation in C 经典,适合初学者
- 鲸书:Advanced Compiler Design and Implementation 经典,适合有一定基础的,完全侧重后端优化,但是也适合初学者
- 《编译器构造》(Crafting a Compiler):适合想动手做个编译器的人看,书中介绍实现的编译器很简单,但涉及的方方面面都有提及,尤其是习题部分很有意思。 书中主要在谈编译器实现的前端部分,词法语法分析,语义分析和代码生成。生成的代码是能被dc执行的波兰式。 基本没有涉及任何机器相关的部分,代码生成也没有涉及到后端,也没有代码优化部分,很适合对前端比较感兴趣的人
- 《编译原理 – 习题精选与解析》:一本经典的编译方向的习题集,里面的习题和讲解对初学编译器的人很有意。很薄的一本小册子。
体系结构相关
- 《MIPS体系结构透视》(See MIPS Run Linux):详细的介绍了MIPS 指令体系是如何支持并运行Linux系统的。介绍MIPS的整体结构、协处理器、Cache、例外和中断、存储管理和TLB、浮点支持、MIPS汇编语言、MIPS的软件移植、应用程序二进制接口、调试接口等。
- 《计算机体系结构 – 量化研究方法》( Computer Architecture – A Quantitative Approach):计算机体系结构领域最权威,最经典的著作,没有之一!由MIPS CPU的发明人编写,内容涉及指令集并行、多核技术、线程集并行、存储系统、流水线等等所有和计算机体系结构相关的内容。
- 《共享存储系统结构》:胡伟武的博士论文整理所成的小册子,是龙芯3号多核处理器设计的理论基础,获得《全国首届优秀博士论文奖》。
程序语言相关
- 《Programming Language Pragmatics》(程序设计语言-实践之路):目前较新的编译器、程序语言类书籍,正在读
编译器与虚拟机项目源码:
- GCC
- 由Richard Stallman创立,支持平台最多,参与开发公司最多的,应用最广的编译器。
- 源码:http://gcc.gnu.org/git/gcc.git git://gcc.gnu.org/git/gcc.git git+ssh://gcc.gnu.org/git/gcc.git
- 在线浏览:repo.or.cz
- Open64
- 由SGI,Pathscale,中科院计算所,Univ. of Del,惠普,AMD,NVIDIA等公司共同开发的优化编译器。
- 源码:http://svn.open64.net/listing.php?repname=Open64&path=/&rev=0
- LLVM
- UIUC发起,现在由Apple公司主导开发的一整套工具链,包括前端,后端,虚拟机,调试等
- Jikes RVM
- IBM发起的,面向研究领域的虚拟机。
- Binutils
Algorithm Learning Resource:
- MIT 6.046–CLRS
- 网易公开课翻译版
- 麻省理工最最经典的计算机系课程,主讲者有《算法导论》的作者。这个课程有相关的课堂录像和作业,方便感兴趣的朋友自学。
- 货郎担问题(The Traveling Salesman Problem, TSP)
- Georgia Tech大学的一个主题页面,介绍TSP的相关资源。包括各种实际的货郎担问题、货郎担问题的相关变种,货郎担问题的历史,在现实中的应用。经典货郎担问题的解决方法,以及目前的最好记录等等。
Programming Language, Compiler, Architecture Research Groups around the World:
- Saarland University, German
- Universal Parallel Computing Research Center(UPCRC)@ UIUC
- Advanced Compiler Technologies @IBM
- http://www.agner.org/
- Optimization Based on X86 CPUs by Agner Fog
- Chen Ding @ Univ. of Rochester
- Titanium Project @ UC. Berkeley
- Keyword: Java, HPC, parallel
- Habanero Project @ Rice University
- Keyword: Java, C++, Concurrent Collection, X10, Parallel
Compiler Courses in Universitys:
- CS526: Advanced Compiler Construction
- Instructor: Vikram Adve (UIUC)
- Keyword: Control Flow Analysis, SSA, Global Value Numbering, Global Dataflow Analysis, Partial Redundancy Elimination, Data Dependence, Pointer Analysis, Interprocedual Compilation, LLVM
- CMU- 15-411 Compiler Design
- Covers the design and implementation of compiler and runtime system for high level languages.
- MIT 6.172- Performance Engineering of Software Systems
- 一门讲述如何做性能优化的课程,推荐有一定计算机系统背景的朋友学习。包含 体系结构、访存优化、编译优化、性能评估、动态存储分配、多核和多线程编程、同步、非确定性编程等等,所有你想提升程序性能时,可能涉及的各个方面。
- Stand. U CS 243 – Program Analysis and Optimization
- 一门介绍程序分析和优化的文章,由龙书三大作者之一 Monica Lam 亲自讲授。内容涉及数据流分析、部分冗余删除、寄存器分配、调度、动态编译、指针分析、循环并行化、垃圾收集等编译技术中的核心内容。
- 中山大学–编译原理
- 重点推荐该页面中,由中山大学李文军教授总结的各类编译器、程序设计语言、程序分析优化资料,相当全面完备。
Compiler Jobs:
- compilerjobs.com
- Latest worldwide compiler positions
- compiler engineer jobs @simplyhired.com
- all positions are get from the official website and other related website