├── ARM ├── ARM Architecture Reference Manual.pdf ├── ARM_calling.pdf ├── Arm_EE382N_4.pdf └── DUI0068.pdf ├── Lang └── ISOIEC 9899-Programming languages-C.pdf ├── MIPS ├── MIPS Assembly Language Guide.pdf ├── MIPS Calling Conventions Summary.pdf └── MIPS32 Instruction Set.pdf ├── README.md ├── RISC-V ├── RISC-V-Reader-Chinese-v2p1(2).pdf └── riscv-spec-v2.2.pdf ├── code generation ├── 1989-Twig-aho.pdf ├── 1989-beg.pdf ├── 1991-burg.pdf ├── 1992-iburg.pdf ├── 1996-Overview and industrial application of code generator generators.pdf ├── 2013-Survey on Instruction Selection.pdf └── 2014-Survey on Combinatorial Instruction schedule and register allocation.pdf ├── register-allocation ├── Linear Scan Register Allocation.pdf ├── cgo10-ChristianWimmer.pdf └── test.txt └── semantcis └── 2006-Formal Semantics of Programming Languages.pdf /ARM/ARM Architecture Reference Manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/ARM/ARM Architecture Reference Manual.pdf -------------------------------------------------------------------------------- /ARM/ARM_calling.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/ARM/ARM_calling.pdf -------------------------------------------------------------------------------- /ARM/Arm_EE382N_4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/ARM/Arm_EE382N_4.pdf -------------------------------------------------------------------------------- /ARM/DUI0068.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/ARM/DUI0068.pdf -------------------------------------------------------------------------------- /Lang/ISOIEC 9899-Programming languages-C.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/Lang/ISOIEC 9899-Programming languages-C.pdf -------------------------------------------------------------------------------- /MIPS/MIPS Assembly Language Guide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/MIPS/MIPS Assembly Language Guide.pdf -------------------------------------------------------------------------------- /MIPS/MIPS Calling Conventions Summary.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/MIPS/MIPS Calling Conventions Summary.pdf -------------------------------------------------------------------------------- /MIPS/MIPS32 Instruction Set.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/MIPS/MIPS32 Instruction Set.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
书名 | 作者 | 出版社 | 版本 | 链接 6 | |
---|---|---|---|---|
Compilers: Principles, Techniques, and Tools 7 | | Alfred V. Aho,Monica S. Lam,Ravi Sethi,Jeffrey D. Ullman 8 | | Addison Wesley 9 | | 2nd edition 10 | | https://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811 11 | |
Advanced Compiler Design and Implementation 12 | | Steven Muchnick 13 | | Morgan Kaufman 14 | | 1 edition 15 | | https://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811 16 | |
Modern Compiler Implementation in C: Basic Techniques 17 | | Andrew W. Appel, Maia Ginsburg 18 | | Cambridge University Press 19 | | Cambridge University Press 20 | | https://www.amazon.com/Modern-Compiler-Implementation-Basic-Techniques/dp/0521586534/ref=as_sl_pc_tf_til?tag=compilerbooks-20&linkCode=w00&linkId=&creativeASIN=0521586534 21 | |
Modern Compiler Implementation in Java: Basic Techniques 22 | | Andrew W. Appel 23 | | Cambridge University Press 24 | | 25 | | https://www.amazon.com/Modern-Compiler-Implementation-Java-Techniques/dp/0521586542/ref=as_sl_pc_tf_til?tag=compilerbooks-20&linkCode=w00&linkId=&creativeASIN=0521586542 26 | |
Programming Language Pragmatics 27 | | Michael L. Scott 28 | | Morgan Kaufmann 29 | | Fourth Edition 30 | | https://www.amazon.com/Programming-Language-Pragmatics-Michael-Scott/dp/0124104096 31 | |
A Retargetable C Compiler: Design and Implementation 32 | | avid R. Hanson / Christopher W. Fraser 33 | | Addison-Wesley Professional 34 | | 35 | | https://www.amazon.com/Retargetable-Compiler-Design-Implementation/dp/0805316701 36 | |
学校 | 课程名称 | 授课教师 | 教材 | 链接 42 | |
---|---|---|---|---|
University of Rochester 44 | | Programming Language Design and Implementation 45 | | Michael L. Scott 46 | | fourth edition of Programming Language Pragmatics 47 | | https://www.cs.rochester.edu/courses/254/fall2017/resources.shtml 48 | |
Stanford University 50 | | Compilers 51 | | Alex Aiken 52 | | Compilers: Principles, Techniques, and Tools 53 | | http://web.stanford.edu/class/cs143/ 54 | |
MIT 56 | | Computer Language Engineering 57 | | Martin Rinard 58 | | Modern Compiler Implementation in Java (Tiger Book) 59 | | http://6.035.scripts.mit.edu/fa18/schedule.html 60 | |
University of Edinburgh 62 | | COMPILING TECHNIQUES 63 | | Christophe Dubach 64 | | 65 | | https://www.inf.ed.ac.uk/teaching/courses/ct/18-19/ 66 | |
Yale University 68 | | Compilers and Interpreters 69 | | Zhong Shao 70 | | Modern Compiler Implementation in ML 71 | | http://flint.cs.yale.edu/cs421/ 72 | 73 | |
University of Pisa 75 | | Advanced Programming 76 | | prof. Andrea Corradini 77 | | - 78 | | https://github.com/md-cs-student-unipi/Advanced-Programming 79 | 80 | |
NYU 82 | | Compiler Construction 83 | | Prof. Mohamed Zahran 84 | | Compilers: Principles, Techniques, and Tools 85 | | https://cs.nyu.edu/courses/spring11/G22.2130-001/ 86 | 87 | |
McGill University 89 | | Compiler Design 90 | | Prof. Alexander Krolik 91 | | Crafting a Compiler 92 | | https://www.cs.mcgill.ca/~cs520/2018/ 93 | 94 | |
学校 | 课程名称 | 授课教师 | 平台 | 链接 99 | |
---|---|---|---|---|
国防科技大学 101 | | 编译原理 102 | | 王挺等 103 | | 中国大学MOOC 104 | | https://www.icourse163.org/course/NUDT-1003101005 105 | |
名称 | 实现语言 | 源语言 | 目标语言 | 链接 110 | |
---|---|---|---|---|
Modern Compiler Implementation in C | C | http://www.cs.princeton.edu/~appel/modern/c/project.html 111 | | ||
Modern Compiler Implementation in Java | Java | http://www.cs.princeton.edu/~appel/modern/java/ 112 | | ||
Modern Compiler Implementation in ML | ML | http://www.cs.princeton.edu/~appel/modern/ml/ 113 | | ||
The lcc retargetable ANSI C compiler | C | C | ALPHA, SPARC, MIPS R3000, and Intel x86 and its successors. | https://github.com/drh/lcc , https://sites.google.com/site/lccretargetablecompiler/ 114 | |
BIT-MiniCC | Java | C | MIPS | https://github.com/jiweixing/bit-minic-compiler 115 | 116 | |
119 |
名称 | 实现语言 | 指令集 | 是否支持性能模拟 | 链接 122 | |
---|---|---|---|---|
MARS | Java | MIPS | 否 | http://courses.missouristate.edu/KenVollmar/MARS/ 123 | |
SPIM | C/C++ | MIPS | 否 | https://sourceforge.net/projects/spimsimulator/files/ 124 | |
RARS | Java | RISC-V | 否 | https://github.com/jiweixing/bit-rars 125 | |
RARS | Java | RISC-V | 否 | https://github.com/TheThirdOne/rars 126 | |
AARS | Java | ARM | 否 | https://github.com/jiweixing/aars 127 | |
130 |
年份 | 题目 | 链接 133 | |
---|---|---|
2018 | Fast and Flexible Instruction Selection with Constraints | http://www.acm.org/binaries/content/assets/src/2018/patrick-thier.pdf 134 | |
2008:LLVM | Near-Optimal Instruction Selection on DAGs | https://llvm.org/pubs/2008-CGO-DagISel.pdf 135 | |
1998:burg | Burg --- Fast Optimal Instruction Selection and Tree Parsing | http://www-inst.eecs.berkeley.edu/~graham/papers/burg-doc.ps 136 | |
1995:lburg | A Retargetable C Compiler: Design and Implementation. | https://www.amazon.com/Retargetable-Compiler-Design-Implementation/dp/0805316701 137 | |
1993:iburg | Engineering a simple, efficient code generator generator | https://people.well.com/user/cwf/pro/Fraser,%20Hanson,%20and%20Proebsting.%20Engineering%20a%20simple,%20efficient%20code-generator%20generator.pdf 138 | |
141 |
163 |
以上列表正在逐步完善过程中,如有遗漏并希望添加的,请将相关信息发送到邮箱:jwx@bit.edu.cn 164 | 165 | -------------------------------------------------------------------------------- /RISC-V/RISC-V-Reader-Chinese-v2p1(2).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/RISC-V/RISC-V-Reader-Chinese-v2p1(2).pdf -------------------------------------------------------------------------------- /RISC-V/riscv-spec-v2.2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/RISC-V/riscv-spec-v2.2.pdf -------------------------------------------------------------------------------- /code generation/1989-Twig-aho.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/code generation/1989-Twig-aho.pdf -------------------------------------------------------------------------------- /code generation/1989-beg.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/code generation/1989-beg.pdf -------------------------------------------------------------------------------- /code generation/1991-burg.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/code generation/1991-burg.pdf -------------------------------------------------------------------------------- /code generation/1992-iburg.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/code generation/1992-iburg.pdf -------------------------------------------------------------------------------- /code generation/1996-Overview and industrial application of code generator generators.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/code generation/1996-Overview and industrial application of code generator generators.pdf -------------------------------------------------------------------------------- /code generation/2013-Survey on Instruction Selection.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/code generation/2013-Survey on Instruction Selection.pdf -------------------------------------------------------------------------------- /code generation/2014-Survey on Combinatorial Instruction schedule and register allocation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/code generation/2014-Survey on Combinatorial Instruction schedule and register allocation.pdf -------------------------------------------------------------------------------- /register-allocation/Linear Scan Register Allocation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/register-allocation/Linear Scan Register Allocation.pdf -------------------------------------------------------------------------------- /register-allocation/cgo10-ChristianWimmer.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/register-allocation/cgo10-ChristianWimmer.pdf -------------------------------------------------------------------------------- /register-allocation/test.txt: -------------------------------------------------------------------------------- 1 | afd 2 | -------------------------------------------------------------------------------- /semantcis/2006-Formal Semantics of Programming Languages.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jiweixing/build-a-compiler-within-30-days/e650a53c27548df047bbfaa56aac0eff6527e225/semantcis/2006-Formal Semantics of Programming Languages.pdf --------------------------------------------------------------------------------