Ada Reference Manual (Ada 2022) — Legal Information

# 1.3.3 Other Syntactic Constructs

1/5
aggregate
construct used to define a value of a composite type by specifying the values of the components of the type
2/5
compilation unit
program unit that is separately compiled
3/5
Note: A compilation_unit contains either the declaration, the body, or a renaming of a program unit.
4/5
construct
piece of text (explicit or implicit) that is an instance of a syntactic category defined under Syntax
5/5
container
structured object that represents a collection of elements all of the same (potentially class-wide) type, such as a vector or a tree
6/5
Note: Several predefined container types are provided by the children of package Ada.Containers (see A.18.1).
7/5
container aggregate
construct used to define a value of a type that represents a collection of elements, by explicitly specifying the elements in the collection
8/5
core language
clause or annex in which are defined language constructs or capabilities that are provided by all conforming implementations
9/5
Note: A construct is said to be part of the core language if it is defined in a core language clause or annex.
10/5
declaration
language construct that associates a name with (a view of) an entity
11/5
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).
12/5
generic instance
nongeneric unit created by the instantiation of a generic unit
13/5
generic unit
template for a (nongeneric) program unit
14/5
Note 1: The template can be parameterized by objects, types, subprograms, and packages.
15/5
Note 2: Generic units can be used to perform the role that macros sometimes play in other languages.
16/5
iterator
construct that is used to loop over the elements of an array or container
17/5
Note: Iterators can be user defined, and can perform arbitrary computations to access elements from a container.
18/5
iterator filter
construct that is used to restrict the elements produced by an iteration to those for which a boolean condition evaluates to True
19/5
library unit
separately compiled program unit, which is a package, a subprogram, or a generic unit
20/5
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.
21/5
master construct
one of certain executable constructs for which there can be objects or tasks whose lifetime ends when the construct completes
22/5
Note: Execution of a master construct is a master, with which objects and tasks are associated for the purposes of waiting and finalization.
23/5
needed compilation unit
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
24/5
package
program unit that defines the interface to a group of logically related entities, along with their implementation
25/5
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.
26/5
parallel construct
executable construct that defines multiple activities of a single task that can proceed in parallel, via the execution of multiple logical threads of control
27/5
partition
part of a program, which consists of a set of interdependent library units
28/5
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.
29/5
pragma
compiler directive to provide control over and above that provided by the other syntactic constructs of the language
30/5
Note: There are language-defined pragmas that give instructions for optimization, listing control, etc. An implementation can support additional (implementation-defined) pragmas.
31/5
program
set of partitions, each of which can execute in a separate address space, possibly on a separate computer
32/5
program unit
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
33/5
Note: Certain kinds of program units can be separately compiled. Alternatively, they can appear physically nested within other program units.
34/5
reduction expression
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
35/5
renaming
declaration that does not define a new entity, but instead defines a new view of an existing entity
36/5
specialized needs annex
annex in which are defined language constructs or capabilities that are not necessarily provided by all conforming implementations
37/5
subunit
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