bet@ecsvax.UUCP (04/20/84)
Foot in mouth syndrome strikes again... I seem to have been incorrect in stating that "i *= f" was correctly handled by simply converting the float to int and multiplying. A number of people have posted and mailed me notes to the contrary, some citing Ritchie as agreeing that this is a bug. The only really applicable item I can find in the BOOK is: The behavior of an expression of the form E1 op= E2 may be inferred by taking it as equivalent to E1 = E1 op (E2); however, E1 is evaluated only once. I confess to not seeing this as incontrovertably mandating one interpretation over another; vis-a-vis type conversion, the first clause suggests that conversion to float for the operation and back is necessary; the second expresses the basis for my previous stance: that assignment operators provide a syntax for specifying two-operand instructions, for purposes of efficiency. I still prefer the latter view; and the only really tangible evidence I have seen offered that it is wrong is the reference to the opinion of a demigod. C is ambiguously specified; I think this is just another example. Lets hear it for semantic specification languages!!! Unrepentant as ever, Bennett Todd ...{decvax,ihnp4,akgua}!mcnc!ecsvax!bet