Page 2 of 4
A Very Modern Theory
The conception of the analytical engine also came from a surprisingly modern line of thought. Babbage was trying to find ways of speeding up the addition of two numbers. He used gear wheels with ten teeth and his biggest problem was propagating the decimal carry. He needed to build a mechanical device that would carry in one operation. He succeeded and optimised the arithmetic unit so that it could add any two numbers in ten units of time.
This success gave him the energy he needed to go on and design a complete computing engine based on his arithmetic unit and the punch card control found in a Jacquard loom.
Babbage called the computational part of his machine the “Mill” and this was set up to perform operations by a deck of punched cards. Constants and variables were held in a “Store” which used stacks of digit wheels.
The operation of the machine was a completely modern three-address machine. One card held the instruction, two more the addresses of the operands and a third the address that the result was to be stored in.
Punched cards for the analytical engine.
Yes, I hear you say, but this would have been such a slow machine that it wouldn’t have behaved like a computer.
Babbage’s estimates for the prototype put its computing speed at around one addition per second and multiplication taking around 1 minute.
Notice that his machine was fully parallel in that it operated on 50 digit values. Its store was also to be of a very reasonable size. He planned to build a store of 1000 constants but admitted that it was no problem to expand this because
“...such is the simplicity of structure of this portion of the machine.”
Babbage already knew that memory was a doddle - just more of the same!
So how does his prototype analytical engine compare to our machines?
You might be surprised. The first electronic computer ENIAC added in 0.0002 of a second - which makes it 5000 times faster than the Analytical Engine, but don’t forget it took ages to program and only worked reliably while the valves burned bright.
There is also the point that the Analytical Engine was a 50 decimal digit machine, i.e. roughly the equivalent of a 166-bit machine which also puts his proposed store at just over 20Kbytes!
Future versions of the Analytical Engine could have pushed more speed out of the machinery - perhaps a factor of 100 or more. Babbage assumed a top speed of less than 0.5 mph for any moving part in the machine so raising this to 50mph shouldn’t have been a huge problem.
In addition the need to build more and better machines would have caused a rapid development in materials science. With better, stronger, lighter materials the speed of the future Analytical Engines could have been increased yet further.
Admittedly, with moving parts involved, the Analytical Engine would have reached a point where making it go faster would have been difficult. But computational speed isn’t just a matter of making components work faster. The Analytical engine was a decimal machine and it was a parallel decimal machine. You could make improvements in speed of computation by increasing the degree of parallelism and this would surely have occurred to Babbage’s successors.
Given that the machine could have been built, would have worked and could have worked fast enough to give results - what would they have used it for?
At the time the big problem was the inaccuracies in all known constants and tables. Babbage fantasised about recalculating all the known derived constants in a few hours and then settling down to create accurate tables of logs, trig functions and so on.
This wasn’t just an abstract mathematical problem because without accurate astronomical tables ships were being sunk because they calculated that they were somewhere different!
As news of the machine spread I’m sure that there would have been people in the military who could have thought up uses for it! At the simplest level there were all those gun aiming tables to calculate - and of course this is exactly what the first electronic computers were used for.
Another area where history would have surely happened earlier is cryptography. Babbage was very interested in codes and cyphers and so this is bound to have occurred to him as an application.
Eventually though the computer that he had built would have worked its way out of scientific and military users hands and into the commercial arena.
If you don’t believe this idea then it is because you are probably thinking of Babbage’s machine as some sort of calculator. It really was suitable as an information processor. Using punch cards banks and businesses would have been able to revolutionise their operations - and of course Great Britain, Babbage's home, had the Empire to run at the time.
Perhaps the sun would never have set on one of Babbage’s machines.
What would have become of programming?
One thing that would have stayed the same is that we would have a language called Ada - but it wouldn’t quite be the language invented by the DoD.
Augusta Ada, Countess of Lovelace was a mathematician and helped Babbage with his attempts to build the Analytical Engine. It was unusual for a woman to pursue mathematics at the time and Ada was only an amateur mathematician but a very reasonable one.
She certainly grasped what the Analytical Engine was capable of and was its first programmer. Had it been build she would have had a great deal of fun with it.
She is usually quoted as saying that
“The Analytical Engine has no pretensions whatever to originate any thing. It can do whatever we know how to order it to perform.”
This is assumed to mean that she thought that AI was impossible and the machine was very limited. Personally I think she just expressed the essence of programming itself.
I also think that she saw its possibilities:
“Supposing, for instance, that the fundamental relations of pitched sounds in the science of harmony and of musical composition were susceptible of such expression and adaptations, that the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent.”
Does this sound like someone who thinks the machine is limited?
Ada understood exactly what programming was and realised that if you could code it the computer could do it.
She also understood that it wasn’t just numerical arithmetic that the machine was capable of but symbol manipulation. It wouldn’t have taken long for Ada to realise that it could be programmed in a symbolic language that the machine itself could translate.
It is worth mentioning that the Analytical Engine had a conditional branch and hence it was Turing Complete even before Turing was born. Give that Ada had access to a Turing Complete computer the languages that she and others could have created would have been as sophisticated as any today. The langauge's would also be Turing Complete.
I can’t guess if the language she would have eventually invented would have been more like Fortran, Cobol or even Basic but at first it would have been a something like simple assembler. She might even have tried to automate Babbage’s machine description language.