Version 1.8 of ais/ai-00116.txt

Unformatted version of ais/ai-00116.txt version 1.8
Other versions for file ais/ai-00116.txt

!standard 09.01 (09)          00-06-21 AI95-00116/05
!class binding interpretation 98-03-27
!status Corrigendum 2000 99-07-28
!status WG9 approved 98-06-12
!status ARG Approved (with changes) 13-0-0 97-11-16
!status work item 96-04-04
!status received 96-04-04
!priority Low
!difficulty Easy
!qualifier Omission
!subject Elaboration of a task with no task_definition
!summary
For a task declaration with no task_definition, an empty task_definition is assumed.
!question
A legal task_type_declaration is
task type TT;
By the grammar in 9.1(2), this task_type_declaration does not include a task_definition.
9.1(10) says that the elaboration of a task declaration elaborates the task_definition; what if there isn't one? (An empty task_definition is elaborated.)
9.1(11) says the elaboration of a task_definition creates the task type and its first subtype; if there is no task_definition, when are the task type and its first subtype created? (There is an empty task_definition.)
!recommendation
(See summary.)
!wording
Insert after paragraph 9.1 (9):
For a task declaration without a task_definition, a task_definition without task_items is assumed.
!discussion
The question not only applies to the syntax of 9.1(2) , but equally to the syntax of 9.1(3), i.e., to all task declarations.
The intent is clear. The new wording means that
task type TT;
is equivalent to
task type TT is end TT;
providing an implicit, empty task_definition.
!corrigendum 9.1(9)
Insert after the paragraph:
A task_definition defines a task type and its first subtype. The first list of task_items of a task_definition, together with the known_discriminant_part, if any, is called the visible part of the task unit. The optional list of task_items after the reserved word private is called the private part of the task unit.
the new paragraph:
For a task declaration without a task_definition, a task_definition without task_items is assumed.
!ACATS test
ACATS tests C650001, C940001, and C940005 (and some others) use the construct in question.
!appendix

!section 9.1(02)
!subject Elaboration of task type with no task_definition
!reference RM95-9.1(2)
!reference RM95-9.1(10,11)
!from Keith Thompson 95-11-17
!reference 95-5392.a Keith Thompson 95-11-17>>

A legal task_type_declaration is

    task type TT;

By the grammar in paragraph 2, this task_type_declaration does not
include a task_definition.

Paragraph 10 says that the elaboration of a task declaration elaborates
the task_definition; what if there isn't one?

Paragraph 11 says the elaboration of a task_definition creates the task
type and its first subtype; if there is no task_definition, when are
the task type and its first subtype created?

The intent seems obvious.  A good fix would be to state that

    task type TT;

is equivalent to

    task type TT is
    end TT;

providing an implicit task_definition.

****************************************************************

Questions? Ask the ACAA Technical Agent