Also known as: compilation · JIT · transpiler
A compiler translates source code written in one language into another form — typically machine code or bytecode — performing analysis and optimisation along the way.
Modern compilers do far more than translate. They perform type checking, dead code elimination, inlining, vectorisation, and increasingly emit security hardening such as stack protectors and control-flow integrity checks.
Compilers are also a supply chain concern. A compromised compiler can inject malicious behaviour into binaries built from entirely clean source — the classic 'trusting trust' problem — which is part of the motivation for reproducible builds and independent verification.
Type System
A type system is a set of rules that assigns types to program constructs and verifies their consistent use, catching a class of errors before the program runs in statically-typed languages, or during execution in dynamically-typed ones.
Reproducible Build
A reproducible build is one where compiling the same source code with the same environment always produces a byte-for-byte identical binary, allowing anyone to independently verify that a distributed binary genuinely corresponds to its published source.
Rust
Rust is a systems programming language that guarantees memory safety without garbage collection, using a compile-time ownership and borrowing model to eliminate entire classes of bugs including use-after-free and data races.
Static Analysis
Static analysis examines source code without executing it, detecting bugs, security vulnerabilities, and style violations by reasoning about possible program behaviours.
Software Supply Chain Security
Software supply chain security is the practice of verifying the integrity and provenance of every component, tool, and process that contributes to a piece of software, from source dependencies through the build system to distribution.