Compilers
Articles
- Compilers Guide
- Lexing and Parsing
- Abstract Syntax Trees
- Semantic Analysis
- Intermediate Representation
- Code Optimization
- Code Generation
- LLVM Framework
- GCC Architecture
- Interpreter vs Compiler
- Just-In-Time Compilation
- Compiler Errors
- Type Checking
- Register Allocation
- Parsing Techniques
- Compiler Testing
- Domain-Specific Languages
- Compiler Engineer Career Guide
Compiler design, parsing techniques, code optimization, and programming language implementation guides.
Learning Path — 18 articles
1
Compilers Guide: How Source Code Becomes Machine Code
Understand the complete compiler pipeline — frontend, IR, optimizer, and backend — and learn how your source code …
Start Here
2
Lexing and Parsing: Tokenization, Grammars, and Syntax Analysis
Master lexical analysis and parsing — regular expressions for tokenization, BNF grammars, recursive descent parsers, and …
Start Here
3
ASTs: Structure, Traversal, and Practical Manipulation
Learn how abstract syntax trees represent code structure, how to traverse and transform them, and how ASTs power …
Start Here
4
Semantic Analysis: Scope Resolution, Symbol Tables, and Binding
Perform semantic analysis in compilers — build symbol tables, manage nested scopes, resolve name bindings, and implement …
5
Intermediate Representation: IR Types, SSA Form, and Optimization
Learn how compilers use intermediate representations — three-address code, SSA form, CFGs, and how IR design enables …
6
Code Optimization: Loop Unrolling, Inlining, Constant Folding
Discover how compilers transform code for speed — loop optimizations, inlining, constant propagation, dead code …
7
Code Generation: Instruction Selection, Scheduling, and Emission
Master the compiler backend — learn instruction selection with tiling, scheduling for ILP, peephole optimization, and …
8
LLVM Framework: IR, Optimization Passes, and Toolchain
Explore the LLVM compiler infrastructure — LLVM IR in detail, the optimization pass pipeline, Clang frontend …
9
GCC Architecture: Frontends, GENERIC/GIMPLE IR, and Backends
Explore GCC's internal architecture — GENERIC and GIMPLE IR, the RTL backend, machine descriptions (MD files), and …
10
Interpreter vs Compiler: Execution Models and Tradeoffs
Compare interpreters and compilers — pure interpretation, bytecode VMs, JIT compilation, REPL environments, and when to …
11
Just-In-Time Compilation: Techniques, Tiers, and Modern JITs
Master JIT compilation — method-based vs tracing JITs, tiered compilation with C1/C2, on-stack replacement, and how …
12
Compiler Errors: Reporting, Recovery, and Diagnostic Design
Build useful compiler diagnostics — learn error recovery strategies, diagnostic message design, and how Rust and Elm set …
13
Type Checking: Static Typing, Inference, and Type Systems
Implement type checkers — type rules and judgments, Hindley-Milner type inference with unification, generics and …
14
Register Allocation: Graph Coloring, Linear Scan, and Spilling
Master register allocation in compilers — graph coloring with Chaitin-Briggs, linear scan for JIT compilers, live range …
15
Parsing Techniques: Recursive Descent, LR, PEG, and Parser Generators
Compare parsing algorithms — recursive descent vs LR/LALR parsers, PEG parsing with prioritized choice, parser …
16
Compiler Testing: Validation, Fuzzing, and Correctness
Learn how to test compilers — test suite design, differential testing, fuzzing, random program generation, and formal …
Advanced
17
Domain-Specific Languages: Design, Implementation, and Compilation
Build your own DSL — learn the difference between internal and external DSLs, how to design syntax and semantics, and …
Advanced
18
Compiler Engineer Career Guide: Skills, Research, and Industry
Start or advance your compiler engineering career — learn the essential skills, explore research and industry paths, and …
Advanced