J3/01-384R1 Date: November 29, 2001 To: J3 From: Dick Hendrickson Subject: Wording clarifications for chapter 8 1) Page 148, note 8.3. The last part of the note isn't deducible from the text. The text forbids transfer into the block. It doesn't forbid references to the statement. I think IF (.FALSE.) GO TO 10 or RETURN GO TO 10 are both allowed by the normative text (with 10 inside a different block). We can't just normatively disallow references to a statement label outside of its block as that would disallow an ASSIGN. PROPOSAL: Delete Note 8.3 on Page 148 2) Page 148, line 8 says execution of a block is terminated when a transfer of control out of the block takes place. I'd read 161:1 to say that a procedure reference causes a transfer of control (to the invoked procedure). But a CALL doesn't terminate execution of a block. There may be a similar problem with all of the blocks. Maybe we should improve the definition of transfer of control? PROPOSAL: 148:8 replace "transfer of control" with "branch". 3) Page 151, note 8.8 PRINT *, 'UNEXPECTED RIGHT PARENTHESIS' EXIT We've been asked about a gazillion times why EXIT doesn't exit from constructs other than a DO. This example looks like the EXIT maybe leaves the IF or maybe the CASE and will confuse people who are used to more flexible exiting in other languages. PROPOSAL, Page 151, Note 8.8 Change DO I = 1, 80 to SCAN_LINE: DO I = 1, 80 Change EXIT to EXIT SCAN_LINE Change ENDDO to ENDDO SCAN_LINE 4) Page 152, lines 3 to 5. The phrase "entity identified by a name" sounds awkward to me (how else would you identify an entity?). PROPOSAL: 152[3:4] "an entity identified by a name" -> "named entity" 152[4:5] "entity identified by the name" -> named entity 152{5] insert (16.7.1.5) after "associating entity" 5) Clarify that type-guard, unlike IF-ELSEIF, does not take the first match. PROPOSAL Page 153, NOTE 8.11. Start the note with "This algorithm does not examine the type guard statements in source text order when it looks for a match." 6) Page 154, Note 8.13 The note is confusing because it omits vector valued subscripted arrays which are also not allowed. PROPOSAL after "(16.8.7)" add " or is an array reference with a vector valued section subscript" 7) Partially clarify what the associate-name is. PROPOSAL 153[10] add at end " The is a construct entity (16.1.3)" PROPOSAL 154[23] add at end " The is a construct entity (16.1.3)" 8) Page 156, line 7 To me the phrase "A particular" suggests that I can terminate any random iteration. PROPOSAL 156[7] "A particular" => "The current" 9) Page 161, now that we have enhanced the normal termination to include the effects of C's exit() we should include a backward pointer to remind people that STOP is now different. PROPOSAL 162[6] After "normal termination" insert "(2.3.4)"