SLIDE 67 File: Boulder Desperately Needed Remedies … Version dated August 15, 2011 6:47 am
- Prof. W. Kahan Subject to Revision Page 67/73
Earliest Retrospective Diagnostics See my web page’s …/7094II.pdf
In the early 1960s, programs on the IBM 7090/7094 were run in batches. Each program was swept from the computer either after delivering its output, be it lines of print or card images or compile-time error-messages, or upon using up its allotment of computer time. Often the only output was a cryptic run-time error-message and a 5-digit octal address. I put a LOGICAL FUNCTION KICKED(…) into FORTRAN’s Math. library, and altered the accounting system’s summary of time used etc. appended to each job’s output. Then …
IF (KICKED(OFF)) ... executable statement ...
in a FORTRAN program would do nothing but record its location when executed. If later the program’s execution was aborted, a few extra seconds were allotted to execute the
executable statement (GO TO …, PRINT …, CALL …, or REWIND …) after the
last executed invocation of KICKED . Any subsequent abortion was final. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IBM’s presubstitution for UNDERFLOW was 0.0 , and its other presubstitutions for …
a quotient of 0.0 , or 0 for integers,
±(biggest floating-point number), … were defaults a programmer could override only by a demand for abortion instead. I added options for Gradual Underflow, and for Division-by-Zero to produce a hugest number, and for an extended exponent upon Over/Underflow. I added sticky Flags for a program to test etc. any time after the Exceptions, and added Retrospective Diagnostics.