Skip to content

Compiler & Language Runtime Constructs

← Back to Domain-Specific Families

Abstractions that make up programming-language and compiler machinery — intermediate representations, bytecode, register allocation, static single-assignment form, and type systems — alongside runtime constructs like exception handling, weak and phantom references, virtual functions, and structural typing.

29 abstractions in this family — domain-specific abstractions that sit near one another in structural-signature space (k-means over structural-signature embeddings). Each is shown with its short description.

  • Anamorphism — A coinductive unfold that maps a seed coalgebra uniquely into a final coalgebra, generating a recursive data structure.
  • Bytecode — A compact intermediate instruction representation designed for execution or translation by a software virtual machine.
  • Code generation (compiler) — The compiler phase that translates an intermediate representation into target instructions while selecting operations, allocating resources, and preserving program semantics.
  • Context-free language reachability — The graph problem of deciding whether a path’s concatenated edge labels belongs to a given context-free language.
  • Exception handling — The controlled transfer of execution from an anomalous condition to a designated handler that can recover, translate, propagate or terminate.
  • Increment and decrement operators — Unary programming operators that increase or decrease a mutable operand by one, with prefix and postfix forms differing in the value yielded by the expression.
  • Inner loop — A loop nested inside another loop whose full execution is initiated during each applicable iteration of the enclosing loop.
  • Intermediate representation — Represent a program inside a compiler or virtual machine in a typed form designed for analysis, optimization, transformation, and translation between source and target languages.
  • Lambda lifting — A semantics-preserving program transformation that removes local free variables by parameterization and promotes nested functions to a broader or global scope.
  • Method (computer programming) — A callable procedure associated with a class or object whose dispatch and access to receiver state express that object's behavior.
  • Null pointer — A distinguished pointer or reference value guaranteed not to designate any valid object.
  • Parametricity — The uniformity principle that a parametrically polymorphic program must behave relationally the same at every type instantiation because it cannot inspect the abstract type.
  • Phantom reference — A Java reference object that becomes enqueued after its referent is finalized or otherwise unreachable and before the associated memory is reclaimed.
  • Probabilistic programming — A programming paradigm that specifies generative probability models as programs and delegates posterior inference to a general inference engine.
  • Register allocation — The compiler task of assigning live program values to a limited set of processor registers while inserting spills and respecting calling and instruction constraints.
  • Relational operator — A programming-language operator that compares two operands under a specified relation and returns a truth-valued result.
  • Semantic analysis (compilers) — The compiler phase that checks context-sensitive program meaning and annotates parsed syntax before intermediate-code generation.
  • Set theoretic programming — A programming paradigm that treats sets, relations, mappings, and high-level set operations as primary data and control abstractions.
  • Shape analysis (program analysis) — A static-analysis family that infers the possible topology, sharing and reachability of dynamically allocated heap structures across program executions.
  • Static single-assignment form — A compiler intermediate representation in which every variable name has exactly one definition and phi functions merge values from alternative control-flow predecessors.
  • Stropping (syntax) — A programming-language notation technique marking character sequences so keywords or special identifiers occupy a namespace distinct from ordinary names.
  • Structural type system — A static type discipline in which compatibility or subtyping is determined by the members and shapes a value provides rather than by declared type names or ancestry.
  • Subject reduction — The type-preservation property that evaluation of a well-typed expression cannot change or destroy its assigned type.
  • Turing tarpit — A computationally universal language or interface whose lack of useful abstractions makes ordinary tasks disproportionately difficult to express and maintain.
  • Type signature — A formal declaration of the input types, output type, and sometimes constraints, effects, or calling structure of a program entity.
  • Typed assembly language — A low-level instruction language augmented with machine-checkable types for registers, memory, code pointers, stacks and heaps, allowing native code to carry a static proof of specified safety properties.
  • Virtual class — An object-oriented language feature whose nested member class can be overridden so its runtime identity varies with the enclosing object’s dynamic type.
  • Virtual function — An overridable object-oriented method whose implementation is selected at runtime from the actual receiver type.
  • Weak reference — A managed reference that can locate an object while not preventing a garbage collector from reclaiming that object when no sufficiently strong reachability path remains.