Compiler / Language Design Engineer
Compiler Engineers operate at the intersection of formal language theory and systems programming, and they must articulate highly abstract concepts — from grammar productions to register allocation — in English design documents, RFC proposals, and code reviews. This path builds vocabulary across the full compilation pipeline: front-end parsing, intermediate representations, optimisation passes, and code generation.
Topics covered
- Front-End Pipeline Vocabulary
- IR & SSA Form
- Optimisation Passes
- LLVM Vocabulary
- Type System Language
- Language Spec Writing
Vocabulary spotlight
4 terms every Compiler / Language Design Engineer should know in English:
A tree representation of the syntactic structure of source code in which each node denotes a construct in the language
"After parsing, the front-end lowers the abstract syntax tree into HIR before type-checking begins."
To transform an expression or data structure into a standard, normalised form to simplify subsequent analysis
"The middle-end pass canonicalises all loop induction variables into a single normalised form before applying vectorisation."
An intermediate representation property where every variable is assigned exactly once, simplifying dataflow analysis
"Converting the control-flow graph to static single assignment form enables the compiler to perform more aggressive dead-code elimination."
To produce or output machine code, assembly, or another target representation as the final stage of compilation
"The LLVM backend emits optimised ARM64 assembly after the instruction selection and register allocation passes complete."
📚 Vocabulary Reference
Key terms organised by category for Compiler / Language Design Engineers:
Front-End Pipeline
Intermediate Representation
Optimisation
Back-End & Code Generation
Recommended exercises
Real-world scenarios you'll practise
- Presenting an RFC for a new language feature to a standards committee, defending your approach to type inference with formal precision.
- Reviewing a pull request that introduces a new optimisation pass and writing detailed comments about potential soundness issues.
- Writing the "Rationale" section of a language specification chapter explaining why a particular grammar production was chosen over alternatives.
- Explaining the difference between SSA construction strategies to a junior engineer during an onboarding session.