brnstnd@kramden.acf.nyu.edu (Dan Bernstein) (10/31/90)
In article <1990Oct31.014132.2400@agate.berkeley.edu> bks@alfa.berkeley.edu (Brad Sherman) writes: > I have included a program below which is broken by the Microsoft 6.0 > compiler on MSDOS. While this is no great surprise, the circumstances > that break the code have caused some concern in our shop. [ ``register'' breaks the compiler ] On behalf of the comp.lang.misc crew, I regret to inform you that we must disregard your article on the grounds that the situation you describe is completely impossible. Compilers no longer have bugs. Optimizers, in particular, are fully capable of transforming programs by techniques as reliable as those described by Dijkstra in his classic book on software design. Microsoft is a large, respected company that hires the latest crop of yuckies directly from the top computer science departments in the country. It uses software engineering methods that have been proven correct by their automated program correctness verifier. If you are seeing unreliable results in your program, either the hardware has a fault or quantum effects are taking hold. Your computer may soon undergo spontaneous internal combustion. ``Software engineering'' was coined on January 17, 1985, the same day that the last optimizer bug was reported. For more than half a decade, optimizers have been absolutely perfect. They are always worth the time they take, because they produce incredible speedups with no risk of program failure. It seems safe to say that hand optimization died the day that software engineering was invented. Have a nice day. ---Dan Difference between Multics and Ada: Multics was ten years *ahead* of its time.