Babbage

There is simply no avoiding the fact that the computer idea was Babbage’s (hence the title of this series of essays "Babbage's Bag" pays homage to the man who really did, well almost certainly did, start it all off).

We think of him as the man responsible for the impressive designs of cogs and gears that seem just right for the Victorian age but Babbage really should be remembered for his idea and not his failure to turn them into working machines.

Babbage started out with the idea of building an advanced calculator, but somewhere along the way he stumbled on the idea of a computer.

In 1833 he started to design the machine that we know as the Analytical Engine In fact there never was a definitive design because he revised and improved it throughout his life. It is too easy to be astonished at the physical details of the machine that his plans describe. It was huge and mechanical but you can identify all of the parts of a modern computer.

There’s the mill, a mechanical central processor, the store, early RAM, and punched cards held the program. The whole thing was as large as a steam engine and needed one to drive its cogs and gears round. When the program was complete a lever rang a bell and it’s all too easy to see it either as an amusing Rube-Goldberg/Heath-Robinson construction or something to revere as a brass and bronze art work.

In fact the machine itself isn’t the point.

What is the point is that Babbage had described a new type of machine and a new operating principle that could be applied to a whole class of machines, irrespective of what they were made of. Babbage had invented the programmable computer as opposed to the programmable loom or any other programmable machine.

The key difference is that the program specifies what should be done with information stored in its memory and not how some mechanical part should move. If you like, it is the meeting of the calculator and the automaton - the Jevons Logical Piano meets the Jacquard Loom if you like!

The “things” being manipulated are just states of the machine and these states are taken to represent some aspect of the outside world - like the height of the tide at a particular time or the amount of money in your current account. No useful work is done because what is being manipulated is information not material.

“We may say most aptly that the analytical engine weaves algebraic patterns just as the Jacquard loom weaves flowers and leaves”

Usually this is interpreted as a statement of how similar the two were but it is better seen as a statement of how different they were. Ada was struggling with trying to convey what the computer was and to try to make it seem more real and realistic. Today the problem is to try to make clear what makes it different. What sets it apart from other machines. The analytical engine was the first machine to work with abstract patterns.

Babbage as a young man

The Turing Machine

You can take Babbage’s idea even further - who needs a real machine?

Alan Turing didn’t, even though he is best known for his “Turing Machine” and perhaps a little less well known for the Ace computer he designed which gives the impression that Turing was all about "real machines". It is often claimed that he had some big influence over our current state of computer use and some how the hardware we use. This, like the suggestion that Babbage was a failure, is a misunderstanding.

Turing’s legacy is the idea that the computer is an idea, a thing of the mind and not just a particular realisation of it.

Turing’s machine (1936) was a simple description of the absolute minimum that was needed for a computer to be a computer.

It was essentially nothing more than a strip of paper, a pen and a list of instructions. The pen could write on the paper and the number it wrote could be read as input to the machine.

At the time the word “computer” meant a person who did computations. Rooms full of people, usually girls, spent their days doing sums and being a “computer” was a respectable profession. Presumably this is where Turing got his inspiration for the paper and pen approach to computing.

If you were asked to compute something then you might sit yourself down with a huge stack of paper, lots of pens and all sorts of things that you might suppose would help you. The real question to be answers is what is essential to the computation? What can you do without and yet still compute anything?

Turing’s machine was the ultimate in stripped down computing but surprisingly, while it could take an unreasonable amount of time to do any particular task, Turing proved that nothing was beyond its capabilities if you were prepared to wait.

To be more precise, he proved that his machine was universal in the sense that it could do anything that any other computer could do. He did this by showing that it was possible to write data on the paper tape which would make the Turing machine behave like any other computer - yes an imaginary machine creating a virtual one.

This is deep - very deep.

Turing's machine is a model of computation - any computation. If you look at its definition then it seems reasonable that it is a reasonable model of computation. It might not be a practical way to implement the computation but these are issues of speed, convenience, how to build the computer and so on. They are matters of engineering. They are the sorts of things that made it difficult for Babbage to actually build a working computer. But it is clear that Babbage had much of the same idea that Turing had about what constituted computation.

The next step in the argument is the surprising one. If a Turing machine can perform any computation it can also be set up to perform the computation of another Turing machine. That is you don't need "special" Turing machines for different tasks. You just need one universal Turing machine that can do the same job as any Turing machine.

A system that is equivalent to a Turing machine can also compute anything that can be computed. In this sense a universal Turing machine captures the very essence of a computer.

The argument still rages over who built the first computer and it seems reasonable that some of the people involved can also lay claim to having reinvented the computer idea without help from Babbage. His work was so little known at the start of the 20th century that most computer pioneers, Turing for one, knew little about it. However, the actual building of a computer is clearly a matter of engineering. The original idea was obviously Babbage’s, refined by Turing.

One of the people often credited with taking Babbage’s idea further is John Von Neumann. He wrote a theoretical specification for a computer after having being told about the ENIAC - usually credited as the first electronic computer. Von Neumann’s claim to fame is that he thought up the idea of storing the program along with the data - the so-called stored program or Von Neumann architecture.

Clever but of course Turing’s universal machine contained the same idea when it used the data written on its tape to specify not only the program but the machine to run it!

Stored program architecture looks fairly primitive when you compare it to the universal machine idea.