I think it is a fool's game guessing which bit of "tricky" source code will compile into faster executing machine code. Modern machines are plenty fast, but programmers are not getting any faster. Write maintainable code. Eschew obfuscation.
Charles -----Original Message----- From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf Of Robert Prins Sent: Thursday, August 3, 2017 9:11 PM To: [email protected] Subject: Someone just too smart for his or her own good? Just came across the following, and please don't come back with pedantic remarks about undeclared variables, the code is just to show what's there: dcl sum fixed (7) init (-0.1); for i = 1 to whatever; if a(i) >= 0 then sum = sum + a(i); end; if substr(unspec(sum), 25, 8) ^= '0d'bx then put data(sum); In other words if all a(i) are negative, nothing is printed. A comment in the code suggests that this is faster code, on modern OoO z/OS systems, than the more logical: dcl sum fixed (7) init (-1); for i = 1 to whatever; if a(i) >= 0 then if sum ^= -1 then sum = sum + a(i); else sum = a(i); end; It probably is if the value of whatever is in the order of 42 gazillion, but any other thoughts about this? ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
