Skip to content
Home
Compilers

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 Lexing and Parsing: Tokenization, Grammars, and Syntax Analysis. An accessible introduction to lexing parsing, exploring … 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 Semantic Analysis: Scope Resolution, Symbol Tables, and Binding. Learn what you need to know about semantic analysis: … 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 Code Generation: Instruction Selection, Scheduling, and Emission. A practical guide to code generation, covering key … 8 LLVM Framework: IR, Optimization Passes, and Toolchain LLVM Framework: IR, Optimization Passes, and Toolchain. A practical guide to llvm framework, covering key concepts, … 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 Just-In-Time Compilation: Techniques, Tiers, and Modern JITs. An accessible introduction to just in time compilation, … 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 Type Checking: Static Typing, Inference, and Type Systems. Understand the essentials of type checking — from … 14 Register Allocation: Graph Coloring, Linear Scan, and Spilling Register Allocation: Graph Coloring, Linear Scan, and Spilling. Everything you need to get started with register … 15 Parsing Techniques: Recursive Descent, LR, PEG, and Parser Generators Parsing Techniques: Recursive Descent, LR, PEG, and Parser Generators. A practical guide to parsing techniques, covering … 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 Compiler Engineer Career Guide: Skills, Research, and Industry. A practical guide to compiler career, covering key … Advanced