A precise procedure for performing a calculation -- computing a
function or performing an action -- relative to a set of
It is written in terms of some fundamental algorithmic language,
together with the set of operations provided by the concepts
that are part of its interface,
which terminates for all valid inputs.
A concept which describes memory, via affiliated pointer and reference
types, their affiliated size and difference types,
and operations for allocating and freeing memory.
An interface between algorithms and types, describing a base type,
affiliated types, operations on the types, and properties of the types
The programming language interface to an algorithm,
specifying parameter and result concepts (generic) or types (concrete).
A component object (or its type) which combines the code of a function
with state used by the function and persisting between calls.
An interpretation of a set of values, comprising their representation
in memory and the set of operations defined on them.
A function mapping types to related types, e.g. from a pointer type to
the type to which it points.