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
- Performance (6 terms in common)
- Language (4 terms in common)
- Javascript (4 terms in common)
- Parsing (3 terms in common)
- Runtime (3 terms in common)
- Build (2 terms in common)
- Memory Safety (2 terms in common)
- Optimization (2 terms in common)
- Recursion (2 terms in common)
- Exploit Mitigation (1 terms in common)
- Ergonomics (1 terms in common)
- Functional Programming (1 terms in common)
- Memory (1 terms in common)
- Portable (1 terms in common)
- C (1 terms in common)
- Type System (1 terms in common)
- Type Theory (1 terms in common)
- Rust (1 terms in common)
- Toolchain (1 terms in common)
- Logic (1 terms in common)