1.3.3 Other Syntactic Constructs
construct used to define a value of a composite
type by specifying the values of the components of the type
program unit that is separately compiled
Note: A compilation_unit
contains either the declaration, the body, or a renaming of a program
unit.
piece of text (explicit or implicit) that is an
instance of a syntactic category defined under Syntax
structured object that represents a collection
of elements all of the same (potentially class-wide) type, such as a
vector or a tree
Note: Several predefined
container types are provided by the children of package Ada.Containers
(see A.18.1).
construct used to define a value of a type that
represents a collection of elements, by explicitly specifying the elements
in the collection
clause or annex in which are defined language constructs
or capabilities that are provided by all conforming implementations
Note: A construct is said
to be part of the core language if it is defined in a core language clause
or annex.
language construct that associates a name with
(a view of) an entity
Note: A declaration can
appear explicitly in the program text (an explicit declaration), or can
be supposed to occur at a given place in the text as a consequence of
the semantics of another construct (an implicit declaration).
nongeneric unit created by the instantiation of
a generic unit
template for a (nongeneric) program unit
Note 1: The template can
be parameterized by objects, types, subprograms, and packages.
Note 2: Generic units
can be used to perform the role that macros sometimes play in other languages.
construct that is used to loop over the elements
of an array or container
Note: Iterators can be
user defined, and can perform arbitrary computations to access elements
from a container.
construct that is used to restrict the elements
produced by an iteration to those for which a boolean condition evaluates
to True
separately compiled program unit, which is a package,
a subprogram, or a generic unit
Note: Library units can
have other (logically nested) library units as children, and can have
other program units physically nested within them. A root library unit,
together with its children and grandchildren and so on, form a subsystem.
one of certain executable constructs for which
there can be objects or tasks whose lifetime ends when the construct
completes
Note: Execution of a master
construct is a master, with which objects and tasks are associated for
the purposes of waiting and finalization.
compilation unit that is necessary to produce an
executable partition, because some entity declared or defined within
the unit is used elsewhere in the partition
program unit that defines the interface to a group
of logically related entities, along with their implementation
Note: Typically, a package
contains the declaration of a type (often a private type or private extension)
along with the declarations of primitive subprograms of the type, which
can be called from outside the package, while their inner workings remain
hidden from outside users.
executable construct that defines multiple activities
of a single task that can proceed in parallel, via the execution of multiple
logical threads of control
part of a program, which consists of a set of interdependent
library units
Note: Each partition can
run in a separate address space, possibly on a separate computer. A program
can contain just one partition, or it can be distributed across multiple
partitions, which can execute concurrently.
compiler directive to provide control over and
above that provided by the other syntactic constructs of the language
Note: There are language-defined
pragmas that give instructions for optimization, listing control, etc.
An implementation can support additional (implementation-defined) pragmas.
set of partitions, each of which can execute in
a separate address space, possibly on a separate computer
language construct that is a package, a task unit,
a protected unit, a protected entry, a generic unit, or an explicitly
declared subprogram other than an enumeration literal
Note: Certain kinds of
program units can be separately compiled. Alternatively, they can appear
physically nested within other program units.
expression that defines how to map or transform
a collection of values into a new set of values, and then summarize the
values by applying an operation to reduce the set to a single value
declaration that does not define a new entity,
but instead defines a new view of an existing entity
annex in which are defined language constructs
or capabilities that are not necessarily provided by all conforming implementations
body of a program unit that can be compiled separately
from its enclosing program unit
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe