Compiler Development
This is a collection of resources on compiler construction, programming language design, and related topics.
Compiler Resources
- Engineering a Compiler Great for compiler back-ends and optimization.
- Crafting Interpreters Beginner-friendly and highly practical. Recommended even for compiler devs.
- LLVM's Kaleidoscope Tutorial An intro to building a language using LLVM.
- Compilers: Principles, Techniques, and Tools (The Dragon Book) Classic, parser-heavy, and theoretical.
- Advanced Compiler Design and Implementation More implementation-focused than Dragon Book, excellent for advanced optimizations techniques and compiler constructions.
- SSA-based Compiler Design Introduces Static Single Assignment form and modern intermediate representations.
- Linkers and Loaders An essential for understanding the complete toolchain beyond compilation.
- Modern Compiler Implementation in Java/ML/C Good progression from compiler frontend to backend.
- Parsing Techniques Huge survey of parsing algorithms and techniques beyond what is covered in Dragon Book.
Programming Language Design
- Types and Programming Languages
- Advanced Topics in Types and Programming Languages
- Practical Foundations for Programming Languages
Covers Both Compiler & PL Design
- Essentials of Programming Languages Elegant presentation of both interpretation and semantics.
Optimization Techniques
- What Has My Compiler Done for Me Lately? (YouTube)
- Optimizations in C++ Compilers: A Practical Journey
Computer Architecture
- Essentials of Computer Architecture (PDF) Useful context for low-level compiler work.
List compiled by members of the TCCPP and #include Discord communities.
