CVS difference for ai12s/ai12-0443-1.txt
--- ai12s/ai12-0443-1.txt 2022/05/07 06:14:18 1.2
+++ ai12s/ai12-0443-1.txt 2022/06/14 23:39:33 1.3
@@ -1,4 +1,4 @@
-!standard 1.3(0) 22-05-05 AI12-0443-1/02
+!standard 1.3(0) 22-06-01 AI12-0443-1/03
!class presentation 22-04-25
!status Amendment 1-2012 22-05-05
@@ -36,10 +36,10 @@
Augment subclause 1.3 (Clause 3 in the ISO standard), Terms and Definitions,
with the following definitions:
- • Types, Objects, and their Properties
+ • Types, Objects, and their Properties [Group T]
* abstract type. 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. a type that has values that designate aliased objects.
+ * access type. a type that has values that designate aliased objects
* Note 1 on entry: Access types correspond to “pointer types” or
“reference types” in some other languages.
* accessibility level. a representation of the lifetime of an entity
@@ -55,11 +55,11 @@
from other types, its parent type or one of its progenitor types or
one of their ancestors
* Note 1 on entry: Ancestor and descendant are inverse relationships.
- * array type. a composite type whose components are all of the same type.
+ * array type. a composite type whose components are all of the same type
* aspect. a specifiable property of an entity
- * Note 1 on entry: An aspect may be specified by an
+ * Note 1 on entry: An aspect can be specified by an
aspect_specification on the declaration of the entity. Some
- aspects may be queried via attributes.
+ aspects can be queried via attributes.
* attribute. a characteristic or property of an entity that can be
queried, and in some cases specified
* category of types. a set of types with one or more common properties,
@@ -107,7 +107,7 @@
* Note 1 on entry: A discriminant for a task type can be used to
pass data to a task of the type upon its creation.
* dispatching subprogram. a primitive operation of a tagged type
- * Note 1 on entry: Dispatching subprograms provide run-time
+ * Note 1 on entry: Dispatching subprograms provide run-time
polymorphism. A dispatching subprogram can be called with
statically tagged operands, in which case the subprogram body
invoked is determined at compile time. Alternatively, a
@@ -117,7 +117,7 @@
* elementary type. a type that does not have components
* enumeration type. a type defined by an enumeration of its values,
which can be denoted by identifiers or character literals
- * incomplete type. a view of a type that reveals only some of its
+ * incomplete type. a view of a type that reveals only a few of its
* Note 1 on entry: The remaining properties are provided by the
full view given elsewhere.
@@ -128,7 +128,7 @@
* integer type. a type that represents signed or modular integers
* Note 1 on entry: A signed integer type has a base range that
includes both positive and negative numbers, and has operations
- that may raise an exception when the result is outside the base
+ that can raise an exception when the result is outside the base
range. A modular type has a base range whose lower bound is
zero, and has operations with “wraparound” semantics. Modular
types subsume what are called “unsigned types” in some other
@@ -170,7 +170,7 @@
* predicate. an assertion that is expected to be True for all objects
of a given subtype
* primitive operations of a type. the operations (such as subprograms)
- declared together with the type declaration.
+ declared together with the type declaration
* Note 1 on entry: Primitive operations are inherited by other types
in the same derivation class of types.
* private extension. a type that extends another type, with the
@@ -208,7 +208,7 @@
* storage pool object. an object associated with one or more access
types from which the storage for objects created by allocators of
the access type(s) is obtained
- * Note 1 on entry: Some storage pools may be partitioned into
+ * Note 1 on entry: Some storage pools can be partitioned into
subpools in order to support finer-grained storage management.
* stream. a sequence of elements that can be used, along with the
stream-oriented attributes, to support marshalling and unmarshalling
@@ -217,14 +217,14 @@
and predicates, which constrain the values of the type to the subset
that satisfies the implied conditions
* synchronized entity. an entity that can be safely operated on by
- multiple tasks concurrently.
+ multiple tasks concurrently
* Note 1 on entry: A synchronized interface can be an ancestor
of a task or a protected type. Such a task or protected type is
called a synchronized tagged type.
* tagged type. a type whose objects each have a run-time type tag,
which indicates the specific type for which the object was
- * Note 1 on entry: Tagged types may be extended with additional
+ * Note 1 on entry: Tagged types can be extended with additional
* task type. a composite type used to represent active entities which
execute concurrently and that can communicate via queued task entries
@@ -243,12 +243,12 @@
* view of an entity. a representation of an entity that reveals some
or all of the properties of the entity
* Note 1 on entry: A single entity can have multiple views.
- • Subprograms and their Properties
+ • Subprograms and their Properties [Group S]
* function. a form of subprogram that returns a result and can be
called as part of an expression
* overriding operation. an operation that replaces an inherited
- * Note 1 on entry: Operations may be marked explicitly as
+ * Note 1 on entry: Operations can be marked explicitly as
overriding or not overriding.
* postcondition. an assertion that is expected to be True when a given
subprogram returns normally
@@ -258,13 +258,16 @@
can only be invoked by a statement
* subprogram. a unit of a program that can be brought into execution
in various contexts, with the invocation being a subprogram call that
- may parameterize the effect of the subprogram through the passing of
+ can parameterize the effect of the subprogram through the passing of
* Note 1 on entry: There are two forms of subprograms: functions,
which return values, and procedures, which do not.
- • Other Syntactic constructs
+ • Other Syntactic constructs [Group C]
* aggregate. a construct used to define a value of a composite type by
specifying the values of the components of the type
+ * compilation unit. a program unit that is separately compiled
+ * Note 1 on entry: A compilation_unit contains either
+ the declaration, the body, or a renaming of a program unit.
* construct. a piece of text (explicit or implicit) that is an instance
of a syntactic category defined under “Syntax”
* container aggregate. a construct used to define a value of a type that
@@ -274,14 +277,12 @@
capabilities that are provided by all conforming implementations
* Note 1 on entry: A construct is said to be part of the core language
if it is defined in a core language clause or annex.
- [Editor's note: I added this one as it is part of the response to ISO
- comments #5 & 6, and we already have "specializes needs annex" defined
- here. Wordsmithing welcome!]
- * declaration. A declaration is a language construct that associates a
- name with (a view of) an entity. A declaration may appear explicitly
- in the program text (an explicit declaration), or may be supposed to
- occur at a given place in the text as a consequence of the semantics
- of another construct (an implicit declaration).
+ * declaration. a language construct that associates a name with (a
+ view of) an entity
+ * Note 1 on entry: 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).
* generic unit. a template for a (nongeneric) program unit
* Note 1 on entry: The template can be parameterized by objects,
types, subprograms, and packages.
@@ -291,15 +292,15 @@
a generic unit
* iterator. a construct that is used to loop over the elements of an
array or container
- * Note 1 on entry: Iterators may be user defined, and may perform
+ * Note 1 on entry: Iterators can be user defined, and can perform
arbitrary computations to access elements from a container.
* iterator filter. a construct that is used to restrict the elements
produced by an iteration to those for which a boolean condition
evaluates to True
* library unit. a separately compiled program unit, which is a
package, a subprogram, or a generic unit
- * Note 1 on entry: Library units may have other (logically nested)
- library units as children, and may have other program units
+ * Note 1 on entry: 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.
* master construct. one of certain executable constructs for which
@@ -308,7 +309,7 @@
* Note 1 on entry: Execution of a master construct is a master,
with which objects and tasks are associated for the purposes of
waiting and finalization.
- * needed compilation unit. a compilation unit that is needed to
+ * needed compilation unit. a 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
* package. a program unit that defines the interface to a group of
@@ -333,7 +334,7 @@
instructions for optimization, listing control, etc. An
implementation can support additional (implementation-defined)
- * program. a set of partitions, each of which may execute in a
+ * program. a set of partitions, each of which can execute in a
separate address space, possibly on a separate computer
* program unit. a language construct that is a package, a task unit, a
protected unit, a protected entry, a generic unit, or an explicitly
@@ -352,7 +353,11 @@
* subunit. the body of a program unit that can be compiled
separately from its enclosing program unit
- • Run-time Actions
+ • Runtime Actions [Group R]
+ * assertion. a boolean expression that is expected to be True when
+ evaluated at certain specified places
+ * Note 1 on entry: Certain pragmas and aspects define various kinds
+ of assertions.
* elaboration. the process by which a declaration achieves its
* Note 1 on entry: Elaboration is one of the forms of execution.
@@ -369,7 +374,7 @@
* Note 1 on entry: Each object and task is associated with a
master. When a master is left, associated tasks are awaited
and associated objects are finalized.
- • Exceptional Situations
+ • Exceptional Situations [Group E]
* check. a test made during execution to determine whether a language
rule has been violated
* exception. a kind of exceptional situation
Questions? Ask the ACAA Technical Agent