CVS difference for ais/ai-20218.txt

Differences between 1.13 and version 1.14
Log of other versions for file ais/ai-20218.txt

--- ais/ai-20218.txt	2004/07/27 23:01:10	1.13
+++ ais/ai-20218.txt	2004/10/05 22:49:22	1.14
@@ -1,5 +1,5 @@
-!standard 8.3(26)                                    04-02-27  AI95-00218-03/05
-!standard 2.9(3)
+!standard 8.3(26)                                    04-09-22  AI95-00218-03/06
+!standard 2.9(2)
 !standard 6.1(2)
 !standard 6.1(3)
 !standard 6.3(2)
@@ -91,7 +91,7 @@
 existing Ada 95 code. Therefore, we have to introduce a solution which permits
 backward compatibility and applies fully only when the programmer asks for it.
 
-Thus, we introduce additional syntax with a new nonreserved keyword which
+Thus, we introduce additional syntax with a new reserved word which
 indicates that overriding will or will not occur.
 
 The general idea is that subprogram declarations that are overriding are
@@ -117,8 +117,7 @@
 
 !wording
 
-In 2.9(3) as modified by AI-284 add the following to the list of nonreserved
-keywords
+In 2.9(2) add the following to the list of reserved words
 
        overriding
 
@@ -399,7 +398,7 @@
 defining an implicit contract. For instance, even without "overriding", the
 generics above (Gen and Gen2) have an implicit contract that GT has the same
 accessibility level as the instantiation of Gen. This contract is far less
-visible than the keyword "overriding" is.
+visible than the reserved word "overriding" is.
 
 Note that if a user does not want an implicit contract (as in a mix-in,
 perhaps), they simply can omit any overriding_indicators.
@@ -554,19 +553,16 @@
 
 We considered using further pragmas rather than syntax since syntax was
 originally considered to be too heavyweight a solution for this problem.
-However, the introduction of unreserved keywords makes the use of syntax
-much more attractive than if the words had to be reserved.
 
-An advantage over pragmas is that the syntax is clearly part of the
-declaration whereas pragmas are not. In the pragma approach the pragmas
-had to immediately follow the declaration (with optional inclusion of the
-subprogram identifier) and required special rules for the pragmas to ensure
-that they only applied to the immediately preceding declaration. The normal
-rules would have been that the pragma applied to all overloaded declarations
-with the same identifier which would clearly be inappropriate. There are
-also dangers if the pragmas get separated from the declaration during
-program maintenance if the identifier is not included and including it seems
-a burden.
+Syntax is clearly part of the declaration whereas pragmas are not. In the
+pragma approach the pragmas had to immediately follow the declaration (with
+optional inclusion of the subprogram identifier) and required special rules for
+the pragmas to ensure that they only applied to the immediately preceding
+declaration. The normal rules would have been that the pragma applied to all
+overloaded declarations with the same identifier which would clearly be
+inappropriate. There are also dangers if the pragmas get separated from the
+declaration during program maintenance if the identifier is not included and
+including it seems a burden.
 
 In addition, a pragma solution does not cleanly handle specifying
 overriding for a body. Generally, similar pragmas (like Inline) are not
@@ -615,32 +611,17 @@
 the need to indicate not overriding as well. Placing the indicator at
 the front has the merit of being uniform and easily seen by the reader.
 
-The keyword "overriding" seems natural but the use of "not overriding" is not
-as clear. The problem with "not overriding" is that it is not very different
-from "overriding", which has the opposite meaning. However, other obvious
-choices (like "overloading" or "overloaded") suffer from the same problem, and
-no programmer is likely to mistake the meaning of "not".
-
-!corrigendum 2.9(03)
-
-@drepl
-NOTES@hr
-6 The reserved words appear in @b<lower case boldface> in this International
-Standard, except when used in the @fa<designator> of an attribute (see
-4.1.4). Lower case boldface is also used for a reserved word
-in a @fa<string_literal> used as an @fa<operator_symbol>. This is merely a
-convention @emdash programs may be written in whatever typeface is desired and
-available.
-@dby
-@b<overriding> is a nonreserved keyword.
-
-NOTES@hr
-6 The reserved words appear in @b<lower case boldface> in this International
-Standard, except when used in the @fa<designator> of an attribute (see
-4.1.4). Lower case boldface is also used for a reserved word
-in a @fa<string_literal> used as an @fa<operator_symbol>. This is merely a
-convention @emdash programs may be written in whatever typeface is desired and
-available.
+The reserved word "overriding" seems natural but the use of "not overriding"
+is not as clear. The problem with "not overriding" is that it is not very
+different from "overriding", which has the opposite meaning. However, other
+obvious choices (like "overloading" or "overloaded") suffer from the same
+problem, and no programmer is likely to mistake the meaning of "not".
+
+!comment !corrigendum 2.9(02)
+!comment This is now done by AI-284-2.
+!comment
+!comment @dinsl
+!comment @b<overriding>
 
 !corrigendum 6.1(02)
 

Questions? Ask the ACAA Technical Agent