Metaprogramming Glossary

Browse 18 metaprogramming terms defined in plain English, from the cultural dictionary of computing.

18 Metaprogramming Terms

Comptime
A Zig language keyword that forces an expression to be evaluated at compile time rather than runtime, enabling powerful metaprogramming and generic programming...
Decorator
A design pattern or language feature that wraps a function or class to modify its behavior without changing its source code. In Python, decorators use the...
Eval
A function that executes a string as code at runtime. Available in JavaScript, Python, Ruby, and many dynamic languages. Powerful for metaprogramming but...
Macro
A rule or pattern that generates or transforms code at compile time, expanding shorthand into more complex expressions — used in C preprocessor, Rust, Lisp,...
Magic Method
A specially named method in Python (surrounded by double underscores, like `__init__`, `__getattr__`, `__add__`) that the interpreter calls implicitly in...
Metaclass
A class whose instances are themselves classes — it defines how classes behave, enabling customization of class creation, attribute access, and inheritance.
Metamethod
In Lua, a special function defined in a metatable that overrides default behavior for operations like addition, comparison, indexing, or string conversion on a...
Meta Programming Slang
Informal language used when talking about code that writes, transforms, or reasons about other code. In engineering slang, metaprogramming talk often...
Property Descriptor
In JavaScript, a plain object that defines the attributes of an object property — including value, writable, enumerable, configurable for data descriptors, or...
Property Wrapper
A Swift language feature (declared with @propertyWrapper) that encapsulates custom storage and access logic for a property, enabling reusable patterns like...
Proxy Object
In JavaScript, an object created with new Proxy(target, handler) that wraps another object and intercepts fundamental operations — such as property access,...
Python Decorator
A higher-order function, applied with the @decorator syntax above a function or class definition, that takes the decorated callable as input and returns a...
Quote
In Lisp-family languages and Elixir, quoting prevents evaluation of an expression, returning its abstract syntax tree (AST) representation instead. In shells,...
Reflection
A language capability that allows a program to inspect and manipulate its own structure at runtime — querying class names, method signatures, field types, and...
Reflective Programming
A programming paradigm in which code uses reflection to observe and modify its own structure or behavior at runtime — creating classes, adding methods,...
Rust Macro
A metaprogramming construct in Rust that generates code at compile time. Declarative macros (macro_rules!) match patterns and expand to code, while procedural...
Template
A construct that allows writing code parameterized by types or values, generating specialized versions at compile time. Central to C++ generics and used...
Type Provider
An F# compiler feature that generates types at compile time from external data sources (databases, APIs, CSV files). Gives you IntelliSense and type safety for...

Related Topics