Back before FORTRAN 90 introduced the “IMPLICIT NONE” statement, the ability to “create” new local variables in the middle of a subroutine caused considerable distress. If you misspelled one of your variable names, the compiler wouldn’t report it as an error, it would just create an “implicitly declared” variable right there in the middle of the statement. This made debugging a REAL nightmare – both literally and figuratively, because “debugging” starts with a “D” and all implicit variables that don’t start with I through N are considered to be of type REAL. <rimshot>
Another problem with FORTRAN in the pre-FORTRAN-90 days was that spaces were ignored. “GOTO” and “GO TO” and, for that matter, “GOT O”, were all interpreted the same way by the compiler.
Thus it was, inevitably, that an acquaintance of mine related the following anecdote:
Remember the first-ever launch of the Space Shuttle Columbia back in – what was it, 1981? Yeah, 1981. Remember? The first launch attempt had to be aborted due to a “computer glitch”. Well, the actual glitch was caused by FORTRAN code that looked like the following:
DO 10 I = 1. 20
... do some stuff dependent on I
10 CONTINUE
See the problem? That “.” in the first line should have been a comma. Because it was a period, the compiler interpreted the line to mean that a new implicit variable, named DO10I (of type REAL) was created, and the value 1.20 assigned to it.
Later, I heard the same story about a totally different “famous” computer glitch. (Maybe that big AT&T outage about a decade or so ago.) I smelled a rat. Is this story completely made up? Did a big problem ever get caused by such a DO10I syntax error? Has anybody else heard this story? It ain’t on Snopes.