Notions and Notations: Babbage's Language of Thought
"By the aid of the Mechanical Notation, the Analytical Engine became a reality: for it became susceptible of demonstration"
Babbage has been called the "great-uncle" of modern computing, a claim that rests simultaneously on his demonstrable understanding of most of the architectural principles underlying the modern computer, and the almost universal ignorance of Babbage's work before 1970.
There has been an explosion of interest both in Babbage's devices and the impact they might have had in some parallel history, as well as in Babbage himself as a man of great originality who had essentially no influence at all on subsequent technological development.
In all this, one fundamental question has been largely ignored: how is it that one individual working alone could have synthesised a workable computer design over quite a short period, designing an object whose complexity of behaviour so far exceeded that of contemporary machines that it would not be matched for over one hundred years?
We believe that the answer lies in the techniques Babbage developed to reason about complex systems: specifically his system of notations. The Leverhulme Trust have recently made a major project grant to support our effort to document, formalise and implement simulators for Babbage's Notation.
We are doing this by treating his system of notations as a formal language, adopting techniques from software language engineering. The team will develop abstract simulators which make specifications written in the notation executable (and as a by-product generate graphical visualisations of the system described by a specification). We shall use these simulations to verify our understanding against Babbages's descriptions and actual artefacts. We are also developing 'alternate Babbagery' - difference engines that Babbage could have implemented more cheaply, and investigating the architectural price/performance space of mechanical computation.
In this talk I shall illustrate and explain Babbage's core achievements in mechanical computing. I will give an early report on progress with our project, including showing off part of the 'new' difference engine being designed by Piers Plummer.
The talk is aimed at the non-specialist; it should be of interest to computer scientists and historians of technology.