The following glossary of terms is adapted from Annex N of the ARM.
Abstract type An abstract type is a tagged type intended for use as an ancestor of other types, but which is not allowed to have objects of its own.
Access type An access type has values that designate aliased objects. Access types correspond to ‘pointer types’ or ‘reference types’ in some other languages.
Aliased An aliased view of an object is one that can be designated by an access value. Objects allocated by allocators are aliased. Objects can also be explicitly declared as aliased with the reserved word aliased. The Access attribute can be used to create an access value designating an aliased object.
Ancestor An ancestor of a type is the type itself or, in the case of a type derived from other types, its parent type or one of its progenitor types or one of their ancestors. Note that ancestor and descendant are inverse relationships.
Array type An array type is a composite type whose components are all of the same type. Components are selected by indexing.
Aspect An aspect is a specifiable property of an entity. An aspect may be specified by an aspect specification on the declaration of the entity. Some aspects may be queried via attributes.
Assertion An assertion is a Boolean expression that appears in any of the following: a pragma Assert, a predicate, a precondition, a postcondition, an invariant, a constraint, or a null exclusion. An assertion is expected to be True at run time at certain specified places.
Category (of types) A category of types is a set of types with one or more common properties, such as primitive operations. A category of types that is closed under derivation is also known as a class.
Character type A character type is an enumeration type whose values include characters.
Class (of types) A class of types is a set of types that is closed under derivation, which means that if a given type is in the class, then all types derived from that type are also in the class. The set of types of a class share common properties, such as their primitive operations.
Compilation unit The text of a program can be submitted to the compiler in one or more compilations.