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