09-126r1 To: J3 From: Malcolm Cohen/Stan Whitlock Subject: Spurious defined terms in clause 8. Date: 2009 February 10 1. Introduction --------------- The system for "defining" terms we used in previous versions of the standard is not in accordance with the ISO guidelines, so we need to stop using it. We have already introduced the ISO-compliant defined terms subclause, and moved/copied many definitions into it. However, quite a lot have not been revised. These should either - be turned into normal text ("untermified") or - become proper defined terms. This paper deals with the terms in clause 8. 2. Terms and what to do with them --------------------------------- - ASSOCIATE construct: It's a Construct; untermify, index as construct - CASE construct: It's a Construct; = untermify, index as construct. Why don't we rename this as the "SELECT CASE construct"? - case index: Only Used In 8.1.5.2, Unnecessary; = delete. "case index" is misleading for CHARACTER type. - CRITICAL construct: It's a Construct; = untermify, index as construct. - DO construct: It's a Construct; = untermify, index as construct. - loop: Normal English; = untermify, do not index. - DO termination: Hardly Used; = untermify, delete and move into "Range of a DO construct"? - range: Hardly Used; = untermify, do not index (range is used for *lots* of things). Note: text uses "range", "loop range" and "range of the loop" inconsistently. Make them consistent. Note: Insert cross-reference in EXIT statement (the other refs are all in the DO construct subclause, but EXIT is not there now. - active: Common Usage; = untermify, do not index. - inactive: Common Usage; = untermify, do not index. - execution cycle: Inconsistent, Obvious; = untermify, do not index. In "CYCLE", it uses "current execution cycle", which makes one think it means just the current iteration, but that's not what the definition means, and I think it's unnecessary anyway. Fix by deleting "current" twice. - IF construct: It's A Construct; = untermify, index as construct. - IF statement: It's A Statement; = untermify, index as statement. - SELECT TYPE construct: It's A Construct; = untermify, index as construct. - EXIT statement: It's A Statement; = untermify, index as statement. - branching: Common Usage; = untermify, index "branch" as definition. - branch target statement: Special Term, Inconsistent; = termify, index as definition. Fix "branch 26 target"->"branch target statement" as appropriate. C744 is wrong (and meaningless junk), 8.1.2.2 is wrong, C828 is wrong. >>??[166:26], [177:23], [181:28] - GO TO statement: Font Only, It's A Statement; = untermify, index as statement. - computed GO TO statement: Font Only, It's A Statement; = untermify, index as statement. - arithmetic IF statement: Font Only, It's A Statement; = untermify, index as statement. - CONTINUE statement: It's A Statement; = untermify, index as statement. - STOP statement: It's A Statement; = untermify, index as statement. - ALL STOP statement: It's A Statement; = untermify, index as statement. - image control: Special Term; = termify as "image control statement", index as definition. NOTE: Fix incorrect "image execution control statement". - segment: Special Term; = termify, index as definition 3. Edits to 09-007 ------------------ Suggestions for the editor: Make a LaTeX command \defconstruct and use it to define constructs. Make a LaTeX command \refconstruct to reference one with hyperlinking. [] Define new terms "\term{branch target statement} statement whose label appears as a \si{label} in a GOTO statement, computed GOTO statement, arithmetic IF statement, \obs{\si{alt-return-spec}}, END= specifier, EOR= specifier, or ERR= specifier (\ref{D8:Branch concepts}) \term{image control statement} statement that affects the execution ordering between images (\ref{D5:Image execution control})" [throughout] Hyperlink above terms as appropriate. [172:3(8.1.3.1p1)] Unembolden "ASSOCIATE construct", index as construct. [174:7(8.1.5.1p1)] Unembolden "CASE construct", index as construct. Rename "CASE construct" as "SELECT CASE construct" throughout, especially p174 and p175. [175:2-4(8.1.5.2p1)] Delete "The resulting ... <>.", After "if the case", "index"->"expression value", After "For a case", "index"->"expression", Making the whole 3rd and 4th sentences read "For a case value range list, a match occurs if the case expression value matches any of the case value ranges in the list. For a case expression with a value of , a match is determined as follows." {Remove unnecessary definition and tidy up paragraph.} [176:2(8.1.6p1)] Unembolden "CRITICAL construct", index as construct. [177:11(8.1.7.1p1)] Unembolden "DO construct", index as construct. [177:12(8.1.7.1p1)] Unembolden "loop", do not index. [178:1(8.1.7.1p1)] "loop range"->"range of the loop". {Use terminology consistently.} [179:17-18(8.1.7.3p1)] Unembolden "DO termination", do not index, move to [179:25(8.1.7.4p2)] as a new sentence at the beginning of that paragraph. [179:22(8.1.7.4p1)] Unembolden "range", do not index. [179:30(8.1.7.5p1)] Unembolden "active" and "inactive", do not index. [180:12(8.1.7.6.2p1)] Unembolden "execution cycle", do not index. [181:2,8(8.1.7.6.3p3,5)] Before "execution cycle" delete "current". {Unnecessary and confusing.} [182:6(8.1.7.7, last bullet)] "loop range"->"range of the loop". {Use terminology consistently.} [182:7+5(8.1.7.7, Note 8.13)] Before "range" delete "loop". {Use terminology consistently.} [183:3(8.1.8.1p1)] Unembolden "IF construct", index as construct. [184:13(8.1.8.4p1)] Unembolden "IF statement", index as statement. [185:3(8.1.9.1p1)] Unembolden "SELECT TYPE construct", index as construct. [187:2(8.1.10p1)] Unembolden "EXIT statement", index as statement. [187:5(8.1.10 C842)] After "range" insert "(8.1.7.4)", i.e. "(\ref{D8:Range of the DO construct})". {This is 8 pages earlier with IF and SELECT TYPE in between, so having a cross-reference is useful.} [188:3(8.2.1p1)] Unembolden "Branching", index "branch" as definition. [188:6(8.2.1p1)] After "END=" insert ", EOR=,". {Fix bug in Fortran 90.} [188:7-8(8.2.1p1)] Unembolden "branch target statement", index as defn. [188:16(8.2.2p1)] Unembolden "GO TO statement", index as statement. [188:22(8.2.3p1)] Unembolden "computed GO TO statement", index as stmt. [188:31(8.2.4p1)] Unembolden "arithmetic IF statement", index as statement. [188:35(8.3p1)] Unembolden "CONTINUE statement", index as statement. [189:9(8.4p1)] Unembolden "STOP statement", index as statement. [189:9-10(8.4p1)] Unembolden "ALL STOP statement", index as statement. [189:19(8.5.1p2)] Unembolden "image control", index "image control statement" as definition. [190:3(8.5.1p4)] Unembolden "segment", index as definition. {Since "segment" is so important, it will be defined in its own subclause separate from "image control statements".} Structuring... [190:4-] Insert subclause header "8.5.1a Segments" Move notes 8.29/8.30 to immediately before note 8.31. [191:6(8.5.2p1)] "image execution control statements" ->"image control statements". {Use our defined term. Remember to hyperlink it.} [196:1(8.5.6 heading)] "image execution control statements" ->"image control statements". {Use our defined term. I don't think we can hyperlink in headings?} ===END===