| Chuck Stevens 2006-02-15, 6:55 pm |
| Back in January, I indicated in the thread "free implementation?
factorial?" that I'd be submitting an Interpretation Request to J4 on the
subject of PERFORM statements in which the during the second PERFORM
execution (per ISO/IEC 1989:2002) "passes through the exit of the first
PERFORM statement" because I believed the wording might be ambiguous -- must
statements *after* the terminus of the first perform be executed to satisfy
the rule, or is it satisfied by the use of the same terminus for both
PERFORMs?
This rule is followed by a note that basically says "This works on some
machines, not on others, don't go there if you want portability".
I've come to the conclusion that it's the intent of the standard that the
results be undefined in either case, and thus no formal clarification is
really needed. In other words, I won't be submitting the interpretation
request.
If J4/WG4 want to expand the standard to include some definition for a
subset of overlapping-range and/or true-recursive PERFORMs, that's a "new
feature", not a response to a reported defect, of which an "interpretation
request" is the first step. I no longer think the standard is broken in
this respect.
(Note that our implementation has no problem with this either way, though
excessive or uncontrolled use of recursive PERFORMs, as for excessive use of
ordinary nested PERFORMs, can result in a stack overflow termination).
-Chuck Stevens
|