A trip down read-only memory lane with William Kahan
I’ve already written here about the weirdness of certain floating point operations – the case of the misbehaving Excel spreadsheet in particular – taking my cues, and my examples, from floating point pioneer William Kahan (notably this set of slides [PDF]). Before writing about the dire consequences of programs not equipped to handle such mistakes – which I will do in a later post – there is another issue that figured largely in my interview with Kahan on last Tuesday afternoon.
When Kahan graduated from high school, you couldn’t study computer science – it hadn’t yet established itself as a course of study. Kahan decided to study mathematics – because it was hard. Also, fortuitiosly for what was to follow, he had a suitable hobby: electronics.
In Kahan’s third year of college, in 1953, he first heard about computers. More precisely, about one particular computer that was said to reside in the physics department. Most of us, if interested, might just have gone there and asked. Instead, Kahan decided to figure out things on his own first, and set himself the problem of designing a programmable calculating machine out of telephone relays. (Only at a later date did he calculate the power consumption of such a machine – as it turns out he would have needed the combined power of Niagara Falls.)
With his (concept of a) machine, he then went to the professor responsible for the physics department’s computer: “I’ll show you mine if you’ll show me yours!”
Are you tormented by the unbearably slow performance of your 2 Gigabyte of RAM, and complaining about your paltry 500 GB of storage space? Kahan takes me back to a time when programming instructions were stored on (paper) tape, using an alphabet of
four characters represented by holes 32 characters (each representable by up to five
holes on a paper teletype-tape) in the tape. A time when performance optimization could mean programming
simple division of two numbers a tape-reading program for short integer numbers so cleverly that the computer could complete all the instructions without having having to stop and restart the tape. (Of course, if you succeeded and the tape whizzed just through, you would need to make sure that nobody stood in the way of the tape, or they might get hurt.)
And yes, on your magnetic storage drum you might have the capacity to store 100,000 40-bit-words (for a whopping total of 500 kilobytes). But on any given day, only 30,000 or so would work. When Kahan came in each morning, the engineer would hand him a directory showing which parts of the memory were working that day. When you wanted to run a program, you had to make sure you only used the good bits.
It’s easy to feel ever so slightly smug about how much more today’s technology can do. But that’s easily cured – we don’t really know for what reasons exactly future humans will look down on present-day technology, but we can be certain they will. Now if you will excuse me, my brain interface just reminded me that I left my flying car in a no parking zone.
PS: Bushra Anjum gives us a whirlwind tour of advances in computers, linked to the HLF, here
[My thanks to W. Kahan for correcting the two mistakes I had made in my rendition of his story!]