Compiler Glossary

Browse 29 compiler terms defined in plain English, from the cultural dictionary of computing.

29 Compiler Terms

Abstract Syntax Tree
A tree representation of source code where each node represents a syntactic construct (expressions, statements, declarations). Unlike a parse tree, an AST...
AOT Compilation
Ahead-of-Time compilation — translating high-level code to native machine code before deployment, producing a standalone binary. Eliminates cold-start latency,...
Assembler
A program that translates human-readable assembly language mnemonics (MOV, ADD, JMP) into machine code — the binary instructions a processor can execute...
Autofree
A compile-time memory management feature in the V programming language that automatically inserts deallocation calls for locally allocated objects at scope...
BuckleScript
A compiler (now rebranded as ReScript) that translates OCaml (and later its own syntax) to readable, optimized JavaScript, combining OCaml's powerful type...
Bytecode
An intermediate binary format designed for efficient execution by a virtual machine rather than a physical CPU. More compact and faster to interpret than...
C Backend
A compiler backend that generates C source code as an intermediate representation, which is then compiled to native machine code by a C compiler — a strategy...
Fable
A compiler that transpiles F# code to JavaScript (and more recently Python and Rust), enabling F# developers to build web applications with the full power of...
GHC
The Glasgow Haskell Compiler — the primary, industrial-strength compiler for Haskell, known for aggressive optimizations, a sophisticated type system, and...
Intermediate Representation
A data structure used internally by a compiler between the frontend (parsing) and backend (code generation) phases. Enables optimization passes that are...
JIT
Just-In-Time compilation — a technique where bytecode is compiled to native machine code at runtime rather than ahead of time, allowing optimizations based on...
JIT Compilation
Just-In-Time compilation — translating bytecode or interpreted code to native machine code at runtime, right before execution. Combines the portability of...
Lexer
The first stage of a compiler or interpreter that converts raw source code text into a stream of tokens (keywords, identifiers, operators, literals). Also...
Linker
Linker is a program that combines multiple compiled object files and libraries into a single executable or shared library. After a compiler translates source...
LLVM
A modular compiler infrastructure that provides reusable components for building compilers, including a powerful optimizer and code generators for many CPU...
Parser
A component that takes a stream of tokens from the lexer and builds a structured representation (AST or parse tree) according to a formal grammar. Types...
Pragma
A compiler directive that provides instructions outside the normal language grammar. From the Greek 'pragma' (deed). In C/C++ it is #pragma, in Solidity it...
Preprocessor
Preprocessor is a program that processes source code before it reaches the compiler, performing text transformations based on special directives. In C and C++,...
Profile Guided Optimization
A two-pass compiler optimization technique where the program is first compiled with instrumentation, then run against representative workloads to collect...
Rust Borrow Checker
The component of the Rust compiler that enforces ownership and borrowing rules at compile time: a value can have either one mutable reference or any number of...
Stack Canary
A secret value placed before control data on the stack to detect buffer overflow corruption before return. It shows up in application security, identity,...
Svelte
Svelte is a frontend framework created by Rich Harris that takes a fundamentally different approach to building user interfaces by shifting work from runtime...
Tail Call Optimization
A compiler optimization that reuses the current function's stack frame for a recursive call in tail position, converting recursion into iteration. Prevents...
Tail Call Optimization
A compiler optimization that reuses the current stack frame for a recursive call that is the last operation in a function, preventing stack overflow on deep...
Transpiler
A source-to-source compiler that translates code from one programming language (or language version) to another at a similar level of abstraction. Babel...
Type Inference
The ability of a compiler or type checker to automatically deduce the type of an expression without explicit annotations. Lets you write concise code while...
Unification
An algorithm that finds a substitution making two type expressions identical. Core to type inference in Hindley-Milner systems and logic programming (Prolog)....
Upvar
A variable referenced inside a closure or nested function that is defined in an enclosing scope. The compiler must decide whether to capture it by value, by...
Volatile
A type qualifier (in C, C++, Java, and others) that tells the compiler a variable's value may change at any time without any action being taken by the...

Related Topics