| William M. Klein 2007-10-08, 3:55 am |
| "LX-i" <lxi0007@netscape.net> wrote in message
news:GIqdnW9gzIumOJTanZ2dnUVZ_oKhnZ2d@co
mcast.com...
> Clark F Morris wrote:
<snip>[color=darkred]
> And, regarding your last comment - which constructs gave different behavior
> with the same syntax? I'll agree with you on that point - that's not a good
> thing.
>
Each Standard (or at least all the ones that I know about - I have never
"studied" the '68 and only glanced at an "offical" '74) includes a section
called
"Substantive Changes potentially affecting existing programs"
These DO include cases where "old syntax" can give "new results". Usually these
are due to interpretation requests (usually places where the old standard didn't
say what people wanted/expected).
One example, in the '02 Standard was what a program needed to do if a divide by
zero occured in an arithmetic statement and no "ON SIZE ERROR" phrase was
specified. By "mistake" (according to many) the '85 Standard was interpreted as
REQUIRING a conforming implementation to "silently continue" on after such
statements. Many implementations had "always" ABENDed or "abnormally
terminated" at such times. The '02 Standard changed the wording to ALLOW this to
happen in a conforming implementation - but this was a change from the previous
Standard.
The classic example between the '68 and '74 Standard was how to interprete
certain combined abrreviated expressions with NOT in them, e.g.
A = B AND NOT LESS THAN C OR D
in the '68 Standard was equivalent to
((A = B) AND NOT (A < C) OR (A < D))
in the '74 (and later) standards it is equivalent to
((A = B) AND (A NOT < C) OR (A NOT < D))
I won't go into the history of how/why this happened, but this is the type of
thing that DOES happen between Standards - and that is "so documented".
--
Bill Klein
wmklein <at> ix.netcom.com
|