Search This Blog

Monday, October 4, 2010

The 100-year leap

The 100-year leap:

In December 1837, the British mathematician Charles Babbage published a paper describing a mechanical computer that is now known as the Analytical Engine. Anyone intimate with the details of electronic computers will instantly recognize the components of Babbage's machine. Although Babbage was designing with brass and iron, his Engine has a central processing unit (which he called the mill) and a large amount of expandable memory (which he called the store). The operation of the Engine is controlled by program stored on punched cards, and punched cards can also be used to input data.




Punched cards created for Babbage's Analytical Engine. From Flickr user lorentey.

Punched cards created for Babbage's Analytical Engine. From Flickr user lorentey.



Inside the mill, individual operations are controlled by the equivalent of a microprogram. The microprogram is stored on cylinders covered in studs (much like in a music box) that Babbage refers to as the barrels. Data is transferred from the store to the mill for processing and returned to the store for later use. In his plans Babbage described an Engine with 100 storage locations holding 40 decimal digits each (which is roughly equivalent to 1.7KB). He even anticipated the need for ever more memory, describing an Engine with 1,000 storage locations (17KB) and external storage (he would have used punched cards where we use disks).



For output, the Analytical Engine plans call for both a printer and a plotter. The entire Engine would likely have been powered by steam and would have been the size of a small steam locomotive. Its programming language -- if it can be called that -- included loops and conditionals. The only surprising thing about the architecture of the Analytical Engine is when it was invented.



It wasn't until 100 years later that computers came into existence, with Babbage's work lying mostly ignored. In the late 1930s and 1940s, starting with Alan Turing's 1936 paper "On Computable Numbers, with an Application to the Entscheidungsproblem," teams in the US and UK began to build workable computers by, essentially, rediscovering what Babbage had seen a century before. Babbage had anticipated the impact of his Engine when he wrote in his memoirs: "As soon as an Analytical Engine exists, it will necessarily guide the future course of science."



During his lifetime Babbage only constructed parts of the Analytical Engine (which can be seen in the Science Museum in London). His son, H. P. Babbage, working from his father's designs, built a demonstration version of the mill after his father's death. The elder Babbage left behind extensive documentation and plans for the Engine, all of which are safely stored in London and have been examined by historians.




The mill of the Analytical Engine.  From Flickr user Gastev.

The mill of the Analytical Engine. From Flickr user Gastev.



Babbage came up with the idea of the Analytical Engine while working on a machine to automatically produce mathematical tables (such as tables of logarithms). Mathematical tables were extensively used at the time -- and well into the 20th century -- and they were calculated by hand by people referred to as "computers." Babbage hoped to eliminate errors made by these computers by replacing them with a machine capable of performing the relevant calculations automatically.



The machines he invented are called the Difference Engines (because they use the mathematical technique of differences to perform their calculations). These machines were not completed during Babbage's lifetime partly because of his difficult personality and partly because of the withdrawal of government support for the project. The conception and construction of Babbage's Engines was an enormous undertaking in the 1800s. Despite repeated setbacks, Babbage continued essentially alone, working on plans and designs up until his death and spending his own fortune on the work. Twentieth-century computer pioneer Maurice Wilkes describes being "haunted by the thought of the loneliness of [Babbage's] intellectual life" while working on the Analytical Engine.



The British government had initially supported Babbage and covered some of the costs of construction of the first Difference Engine. But as costs rose and years wore on, the government was advised that the machines would be of little use, were unlikely to pay for themselves, and the money expended would have been better invested and the dividends used to hire additional human "computers" to do the work.



Soldiering on alone with the conviction that his machines would be of great benefit to mankind by taking what had been mental effort and making it mechanical, Babbage wrote that "Another age must be the judge" of his inventions.



Simply put, we live in that age. In the late 1980s the Science Museum in London undertook a project to demonstrate that Babbage's Engines could have been built during his lifetime. The museum constructed his Difference Engine No. 2 and the associated printer using historically accurate materials and to within historically accurate tolerances. In 1991, the working machine was unveiled, and it can still be seen on display in the museum (a copy of the machine is also on display at the Computer History Museum in Mountain View, CA).




Difference Engine No. 2.  From Flickr user psd.

Difference Engine No. 2. From Flickr user psd.



The Science Museum's Difference Engine No. 2 project put to rest any doubt about the limits of Victorian engineering. Babbage's Engines were achievable in Victorian Britain and Babbage's 100-year leap in inventing the computer could have been realized.




It's time to build the Analytical Engine




I hope to finish Babbage's dream and build an Analytical Engine for public display. I've launched a project called Plan 28 to raise the money and bring together people to work on the Engine. Babbage left behind extensive documentation of the Analytical Engine, the most complete of which can be seen in his Plan 28 (and 28a), which are preserved in a mahogany case that Babbage had constructed especially for the purpose.



There are three important steps to achieve this goal:




  1. A decision must be made on what constitutes an Analytical Engine

  2. The Engine should be simulated on a computer to help debug the physical machine

  3. The machine must be built



The first step is necessary because Babbage continually refined his designs -- he was constantly aiming at simplification and faster computational speed -- and left behind a mixed collection of plans and notebooks. Sorting through this material will require the help of historians and specialists in Victorian engineering.



Simulating the machine using 3D modeling software and a physics engine would enable us to bring the machine to life without making any metal parts. Given the size and complexity of the machine, this step is vital. And since the final machine would wear out if constantly used, it would provide a way of demonstrating the Engine.



It might seem a folly to want to build a gigantic, relatively puny computer at great expense 170 years after its invention. But the message of a completed Analytical Engine is very clear: it's possible to be 100 years ahead of your own time. With support, this type of "blue skies" thinking can result in fantastic changes to the lives of everyone. Just think of the impact of the computer and ask yourself how different the Victorian world would have been with Babbage Engines at its disposal.



What seemed like costly research that was unlikely to have any short-term value turned out to be the seed of one of the greatest revolutions mankind has seen. I hope that future generations of scientists will stand before the completed Analytical Engine, think of Babbage, and be inspired to work on their own 100-year leaps.






Related: