CVS difference for ais/ai-00407.txt

Differences between 1.2 and version 1.3
Log of other versions for file ais/ai-00407.txt

--- ais/ai-00407.txt	2005/02/08 21:55:23	1.2
+++ ais/ai-00407.txt	2005/03/01 23:50:48	1.3
@@ -1,10 +1,10 @@
-!standard 4.1.3 (13)                                   05-02-08  AI95-00407/02
+!standard 4.1.3 (13)                                   05-02-12  AI95-00407/03
 !class amendment 05-02-07
 !status work item 05-02-07
 !status received 05-02-07
 !priority High
 !difficulty Easy
-!subject Terminology and semantics of prefixed names
+!subject Terminology and semantics of prefixed views
 
 !summary
 
@@ -16,7 +16,7 @@
 occasionally incorrect) because we do not have a technical term to designate
 this notation.
 
-A rule must be added in 4.1.3 to make illegal to write a prefixed name whose
+A rule must be added in 4.1.3 to make illegal to use this notation when the
 prefix is a constant and whose first parameter may be modified by the
 subprogram.
 
@@ -25,49 +25,55 @@
 
 !proposal
 
-We introduce *prefixed name* to denote the Obj.Op notation and use this
-technical term when appropriate.
+We introduce *prefixed view* to denote the view of a subprogram denoted by the
+Obj.Op notation and use this technical term when appropriate.
 
-We add a rule to disallow a prefixed name if the prefix is constant and the
-first parameter is of mode *out*, *in out*, or of an access-to-variable type.
-This rule should be a legality rule, not a name resolution rule, for
+We add a rule to disallow use of a prefixed view if the prefix is constant and
+the first parameter is of mode *out*, *in out*, or of an access-to-variable
+type.  This rule should be a legality rule, not a name resolution rule, for
 consistency with what we do for normal calls.
 
 Wording in added in 6.4(10) to explain the dynamic semantics of calls to
-prefixed names, including calls that go through renamings.
+prefixed views, including calls that go through renamings.
 
 !wording
 
 Change the last sentence of 4.1.3(9.2/2) to read:
 
-The selected_component is called a *prefixed name* and denotes a view of this
-subprogram that omits the first formal parameter.
+The selected_component denotes a view of this subprogram that omits the first
+formal parameter. This view is called a *prefixed view* of the subprogram, and
+the prefix of the selected_component (after any implicit dereference) is called
+the prefix of the prefixed view.
 
 Change 4.1.3(13.1/2) to read:
 
-If a prefixed name denotes a view of a subprogram whose first parameter is an
-access parameter, the prefix shall denote an aliased view of an object.
+For a subprogram whose first parameter is an access parameter, the prefix of
+any  prefixed view shall denote an aliased view of an object.
 
 Add after 4.1.3(13.1/2):
 
-If a prefixed name denotes a view of a subprogram whose first parameter is of
-mode *in out* or *out*, or of an anonymous access-to-variable type, the prefix
-shall denote a variable.
+For a subprogram whose first parameter is of mode *in out* or *out*, or of an
+anonymous access-to-variable type, the prefix of any prefixed view shall denote
+a variable.
 
 Remove 4.1.3(15.1/2) (it has to do with calls, not names).
 
 Change 6.3.1(10.1/2):
 
-the view of a subprogram denoted by a prefixed name (see 4.1.3).
+any prefixed view of a subprogram (see 4.1.3).
 
 Add after 6.4(10):
 
-If the name or prefix of a subprogram call denotes a prefixed name, the
-subprogram call is equivalent to a call on the subprogram denoted by the
-selector_name of the prefixed name, with the first actual parameter being
-provided by the the prefix of the prefixed name (or the Access attribute of
-this prefix if the first formal parameter is an access parameter), and the
-remaining actual parameters given by the actual_parameter_part, if any.
+If the name or prefix of a subprogram call denotes a prefixed view (see 4.1.3),
+the subprogram call is equivalent to a call on the underlying subprogram, with
+the first actual parameter being provided by the the prefix of the prefixed view
+(or the Access attribute of this prefix if the first formal parameter is an
+access parameter), and the remaining actual parameters given by the
+actual_parameter_part, if any.
+
+AARM To Be Honest: The phrase "the underlying subprogram" should really say
+something like "the subprogram of which the prefixed view is a view". But that
+gets unwieldy, and the meaning is clear from context.
 
 !discussion
 

Questions? Ask the ACAA Technical Agent