Thursday, May 12, 2016

Spring 2016 report to the Computer Conservation Society

This was presented on May 11 to the Computer Conservation Society by Doron Swade.


We have been pecking away at Babbage’s original design drawings for some while now and have found with regret that we are unable to reverse engineer a coherent and consistent understanding of the Analytical Engine from the mechanical drawings alone. There are some 300 drawings and some 2200 Notations – descriptions of the mechanisms using Babbage’s language of signs and symbols. There were three phases of design - early, middle, and late.There is overlap between these, there are ad hoc upgrades, and only fragmentary explanation, where there is explanation at all.

It remains unclear whether any of these three phases is graced by a complete design. This in itself would be unfortunate but not catastrophic as mechanisms can be devised as functional replicas for omissions provided the intended function is fully understood. The immediate problem is that the extent of incompleteness is not clear. The work of the late Allan Bromley in decoding the AE designs in invaluable but he published only a small part of his substantial findings and these are anyway based on only part of the archive. While much is understood about many of the main mechanisms and the general scheme, there remain fundamental aspects control and sequencing that are not yet well understood and have resisted further illumination.

To achieve a more comprehensive understanding of the designs Tim Robinson in the US is going through the entire Babbage archive (over 7000 manuscript sheets) and producing a cross-referenced searchable data base. The purpose of this is to marshal all known sources so that we have a bounded idea of all relevant material. The intention is to reveal any explanations and/or drawings that Babbage might have left that have not yet come to light.

A second line of attack is to the 2200 Notations for the AE using the newly acquired knowledge of the Mechanical Notation. Allan Bromley maintained that the Notations were indispensible to his understanding. However he did not publish how he had used the Notations and he was the last to use them as an interpretative tool. The hope here is that the Notations will provide some of the missing information about logical control and moreover give insights into design strategy. In parallel with Tim’s comprehensive data base index I am going through the twenty volumes of Babbage’s ‘Scribbling Books’ identifying all material on the Mechanical Notation – a fast-track way of accessing this specific material.

Currently the stages envisaged for the project are:

1. Finalising research of the original design
2. Specifying a viable version
3. Computer modelling and simulation/3D printing
4. Manufacture and construction

We need more hands to the pumps and have latterly diverted some effort to fundraising. We have a 3-year plan at the end of which we expect have the requisite understanding of the designs, a platform from which to specify a viable version of an AE that is historically authentic, and to have trialled tools for modelling and simulation. The funding proposal includes pulling in requisite expertise including modellers and mechanical engineers.

In summary, we have had to bite the bullet with the realisation that without a concerted assault on the sources, a fuller understanding of the Engine design will not be forthcoming. We need to understand the intentions of the design well enough to identify missing mechanisms and understand their intended purpose well enough to devise fill-ins that are consistent with Babbage’s design style. Effort is now divided between continued study of the designs and fundraising to ramp up the effort.

Doron Swade

Tuesday, May 3, 2016

Winter 2015: Project Report to the Computer Conservation Society

The following report appeared in the Winter 2015 Resurrection:

The bicentennial year of Ada Lovelace’s birth falls this year. Preparation for various celebratory events has directed attention to Ada Lovelace’s ‘program’ (1843) to calculate Bernoulli numbers using Charles Babbage’s unbuilt Analytical Engine. A small group including Tim Robinson in the US, Rainer Glaschick in Germany, Bernard Sufrin in the UK (and me) have been collaborating in exploring the ‘program’. Significant progress has been made with many obscurities now illuminated. The study has directed new attention to how the several types of punched card control the internal microprograms on the one hand, and how these functions interface with the user on the other.

There has been significant archive activity. The major historical source is the Babbage technical archive held by the Science Museum. The Science Museum digitised the archive in 2012 is now preparing to provide open access to the archive. The Analytical Engine project team has been the main user of the digitised archive under special licence. In the course of the project mismatches have been identified between the digitised material and the existing printed index compiled by the late Allan Bromley and published by the Science Museum in 1991. Referencing anomalies, identification of material omitted from digitisation exercise and other structural issues have become evident. Descriptions of these have been compiled and we are working with Science Museum archivists to resolve and correct these ahead of open access release. The work is detailed and, given the volume of material, substantial. Eye-strain is an ongoing hazard.

This archive work has suggested a new and significant prospect for the role of the Notation in an understanding the designs. One of the difficulties in understanding the designs is the need to reverse engineer logical function from mechanical drawings of mechanisms - this without textual explanation of purpose or intention. The original hope was that the notations, expressed in Babbage’s symbolic descriptive language, would contain a higher-level logical description that would relieve this difficulty. As described in earlier reports the main features of the Notation were decoded from a detailed knowledge of the mechanisms of Difference Engine No.2. The provisional conclusion from that study was that the notations are a description of the mutual physical relationships of mechanical parts and are not an abstraction of a logical description of the Engine’s function. Further, that the mechanical design preceded the notational description. New material found in the archive suggests that while this might be true for Difference Engine No.2 the notations for the Analytical Engine (about 2,700 of these) may indeed embody higher-level logic, control functions for sequencing the punched cards and orchestrating the internal operations that the punched cards control. If so, the notations would provide the explanatory tool we have been looking for and the prospect of this is enough to distract one from the plight of refugees migrants and austerity, even if only briefly.


Doron Swade

Further progress as reported to the Computer Conservation Society

Progress continues decoding Babbage’s Mechanical Notation – the language of signs and symbols Babbage devised to describe the mechanisms of his calculating Engines. There has been a new archival find in manuscript papers Babbage gave to a younger colleague, Harry Wilmot Buxton. The Buxton papers are held by the Museum of the History of Science, Oxford. The papers were known about and some material has been published but last time the papers were viewed predates the focussed interest on the Analytical Engine, and the significance of the material on the Mechanical Notation passed unnoticed. With the kind permission of the archivist, permission was given for a copying rostrum to be used and the relevant material was digitally photographed in situ. The significance of the material is two- fold: it contains Babbage’s efforts to provide generalised rules for annotating his mechanical drawings; secondly, the principles it documents confirms our findings from the earlier exercise in which knowledge of the Difference Engine mechanisms were used to decode the Notations that describe them – this without the benefit of generalised rules of syntax orgrammar. The agreement between the archive and our earlier findings is a satisfying vindication of the decoding method using known mechanisms.

The Ada Lovelace bicentennial, celebrated this year, has directed attention to the Analytical Engine through the description of the Engine Lovelace published in 1843. Her description of the Engine is in the form of Notes which form a substantial addendum to the account by Luigi Menabrea who wrote up some of Babbage’s lectures on the Analytical Engine Babbage gave in Turin in 1840. The ongoing preparation of celebratory exhibitions, symposia andmedia coverage, has redirected attention to specific features of Lovelace’s description. One such is the use control arrangements between the punched card input and the routing of information between the cards, processor and memory. It appears that there is no form of indexed or relative addressing either of which would be required for the AE to execute the example given by Lovelace - the calculation of Bernoulli numbers. It is far from clear how the Engine executes its control functions and there are several ongoing collaborative conversations between scholars and historians analysing the issue stimulated by the extended interest in Lovelace’s work. The lesson we have taken is that much as is known about the principles of the AE, there is much that is not understood at the fundamental level of internal control and such understanding is a prerequisite of any construction, physical or virtual.

Doron Swade

Autumn 2015: Progress Report for the Computer Conservation Society

The following appear in the Autumn 2015 Resurrection

There has been a new archival find in manuscript papers Babbage gave to a younger colleague, Harry Wilmot Buxton. The Buxton papers are held by the Museum of the History of Science, Oxford. The papers were known about and some material has been published but last time the papers were viewed predates the focussed interest on the Analytical Engine, and the significance of the material on the Mechanical Notation passed unnoticed. With the kind permission of the archivist, permission was given for a copying rostrum to be used and the relevant material was digitally photographed in situ. The significance of the material is twofold: it contains Babbage’s efforts to provide generalised rules for annotating his mechanical drawings; secondly, the principles it documents confirm our findings from the earlier exercise in which knowledge of the Difference Engine mechanisms were used to decode the Notations that describe them — this without the benefit of an generalised rules of syntax or grammar. The agreement between the archive and our earlier findings is a satisfying vindication of the decoding method using known mechanisms.

The Ada Lovelace bicentennial, celebrated this year, has directed attention to the Analytical Engine through the description of the Engine which Lovelace published in 1843. Her description of the Engine is in the form of Notes which form a substantial addendum to the account by Luigi Menabrea who wrote up some of Babbage’s lectures on the Analytical Engine Babbage gave in Turin in 1840. The ongoing preparation of celebratory exhibitions, symposia and media coverage, has redirected attention to specific features of Lovelace’s description. One such is the use control arrangements between the punched card input and the routing of information between the cards, processor and memory. There is evidently no form of indexed or relative addressing either of which would be required for the AE to execute the example given by Lovelace - the automatic calculation of Bernoulli numbers. It is far from clear how the Engine executes its control functions and there are several ongoing collaborative conversations between scholars and historians analysing the issue stimulated by the extended interest in Lovelace’s work. The lesson we have taken is that much as is known about the principles of the AE, there is much that is not understood at the fundamental level of internal control and such understanding is a prerequisite of any construction, physical or virtual.


Doron Swade

Thursday, March 19, 2015

Progress on understanding Babbage's Mechanical Notation

A previous blog post explained Babbage's mechanical notation which is key to understanding and building the Analytical Engine. This blog post gives a quick update on work done.

"Project Report to Computer Conservation Society Committee for Meeting Thursday 19 March 2015

Analytical Engine

Major progress has been made decoding Trains diagrams – these are the ‘flow charts’ in Charles Babbage’s notational language. There are some 90 separate symbols in the alphabet denoting (a) the form of the part (lever, gear, pendulum, bar, rack, pinion . . .) and (b) type of motion (circular, linear, reciprocating . . . ). The method we are using involves examining the symbols in the Train that describe a particular mechanism in the Engine (addition, carriage, warning, locking  . . ) and from an existing knowledge of the function of the mechanism, infer the usage of the symbols used to describe each part. Progress made to date encourages us to believe that the whole language will yield to this method. The version of the notation being used for this process was formulated in 1851 which post-dates both the major work on the Analytical Engine and the complete design for Difference Engine No. 2 and is therefore likely to be representative of the notation conventions as used for both these engines.  Once this decoding exercise is complete attention will turn to the historical evolution of the Notation from 1822 through to 1871 i.e. an exploration of how the notational language was expanded and developed to describe mechanisms of increasing complexity.

The study of the notation is part of the Notions and Notations project funded by the Leverhulme Trust. There has been rapid progress in the two other major elements of this project: software implementation of the Notation, and an exploration of alternative designs. We have defined an ASCII-text language called FORTRAC15 which captures and expresses Babbage’s hand-written notations. The name FORTRAC derives from the three descriptive elements of Babbage's Notation: Forms are un-dimensioned ​ engineering diagrams and show the shape of parts and their relationship to one another; Trains show the chain of cause and effect within a mechanism; and Cycles show timing and phasing relationships of moving parts. Any resemblance between the name FORTRAC and that of other early formal languages is entirely intentional.

Significant software tooling for FORTRAC is underway. We envisage inter-linking between graphical icons that are the notational symbols, 3D animations of parts, and FORTRAC15 textual descriptions. As a first stage we are building a tool that allows JPEG images of the notations to be annotated with FORTAC15 textual terms. We are now using this tool to capture all the Difference Engine No. 2 notations in machine readable form. This process has exposed omissions, anomalies and ambiguities in the original notational description of the Engine and clarified the scope of what is describable in the notational language. Some unexpected features have also been thrown up including examples of highly nuanced use. We are also designing and constructing 'alternate’ Difference Engines making use of modern rapid prototyping technologies. A prototype digit-serial engine that would have around 15% of the throughput of DE2 has been partially demonstrated using sintered-nylon 3D printing and some stock gearing. All parts could have been machined or cast using 1830's technologies. As of March 2015, one quarter of a complete machine has been constructed.

The significance of this to the Analytical Engine project is partly to address the question of ‘how else might Babbage have done this using technology available to him at the time?’ The architecture of the Analytical Engine (1834-1871) conforms identifiably to Von Neumann’s in all major logical respects. This raises the question of whether this architecture contains something fundamental about logical implementation of general purpose digital computing.

The ‘alternative Difference Engine’ is a modern exploration of necessary uniqueness in physical implementation and will inform the analysis of the Analytical Engine designs.

Doron Swade

11 March 2015"

Friday, November 28, 2014

Babbage's Language of Thought

This is a guest post by Adrian Johnstone, Professor of Computing at Royal Holloway, University of London.

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?

I believe that the answer lies in the techniques Babbage developed to reason about complex systems. The Leverhulme Trust have recently made a major award to myself and my collaborator Prof Elizabeth Scott which we will use to document, formalise and implement simulators for Babbage's Notation. The team also includes Plan 28’s Dr Doron Swade, who is the foremost authority on Babbage, and Dr Piers Plummer who has an extensive background in chip design, computer architecture, mechanical CAD and programming language compiler design. The work will be based in Royal Holloway's Centre for Software Language Engineering.

Flow diagram using Babbage's Notation of the output apparatus (printer) of the Analytical Engine and Difference Engine No.2
The notation, or more correctly Babbage's parallel notations showing the geometry, the timing, the causal chains and the abstract components of his machines, have a direct parallel in the Hardware Description Languages developed to aid the design of modern large scale integrated circuits. These languages typically have a geometry facet in which the arrangement of components in space is specified; a register transfer facet which emphasises the interconnection of functional units via registers and memory buses; and a behavioural facet which describes sequences as state machines or in software-like notations. In modern digital electronics, these techniques are now ubiquitous although they met with some resistance when first introduced.

Output apparatus of the Difference Engine No. 2 and Analytical Engine
There is a 150 year delay between Babbage's first attempts at an engineering notation and the application of hardware description languages to electronic computer design yet Babbage's notations also include a geometry facet (corresponding to the fabrication drawings used to specify the individual parts and their position in space), an enumeration of functional parts, a functional transfer facet in which large flow diagrams show the cause-and-effect relationships between those parts, and most strikingly of all a behavioural facet in which the timing relationships and state machine transitions are directly displayed. For those with a background in modern digital hardware design techniques, the similarities are striking.

The artefacts that Babbage designed are wondrous, but the system of thought he developed in which those artefacts' complex state spaces could be designed and checked before any metal was cut is a much more significant achievement. Every modern engineer knows the value of speculative design backed up by simulation and prototyping. The integrated circuit industry led the way with design notations simply because the cost of prototyping, and the financial loss for an erroneous design, was economically unsustainable. By the same token, Babbage was forced to develop paper methods to exercise his designs because the cost of implementation, and the length of time needed to manufacture his designs rendered physical prototyping and experimentation largely infeasible.
Babbage himself was very aware of the relative importance of the objects and the meta-object; the design and the design discipline: he wrote
By the aid of the Mechanical Notation, the Analytical Engine became a reality: for it became susceptible of demonstration
and he believed that the notation would become the standard design method taught in the engineering schools. In that he was quite wrong. Nearly all mechanical systems, from steam engines to internal combustion engines, pumps and jet engines are sufficiently simple that their state space may be deduced by inspection of the engineering drawings which show their geometry. This is because they do not have memory: an engine rotates, and each rotation is as the last. Understanding one cycle is sufficient to understand all cycles. It is only the introduction of memory that generates complex time-dependent behaviour, and that is exactly the point at which the geometry diagrams become inadequate to the task of capturing the function of the machine.

We all know that the workings of a computer programme will not easily be gleaned from an examination of its transistors and their interconnections: that is the wrong level of abstraction. Babbage was the first individual to work with systems where the function transcends the components, and our Notions and Notations project aims to elucidate, formalise and test the techniques he developed.

We are going to do 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 specification written in the notation executable (and as a byproduct generate graphical visualisations of the system described by a specification) and use these simulations to verify our understanding against Babbages's descriptions and actual artefacts.

In this we are greatly aided by the existence of a complete draft and finished notations for Difference Engine 2, along with instances of the physical machine built by the Science Museum in London which were built according only to the drawings, but largely without reference to the notations.
Our goals then, are to research the development of the notations over time; to formalise the notation in a way that can be parsed and processed by modern computers; to implement a simulator for the notation; to test the simulator by reference to Difference Engine 2 and to provide simulations that will help understand the operation of the Analytical Engine.

Friday, June 14, 2013

The Inventive Mr. Babbage

Babbage was an inveterate inventor and delighted in instruments, contrivances and mechanical novelties of all kinds.


While at school, in about 1807, he devised shoes for walking on water and nearly drowned in the course of testing them.

He designed cow-catchers to be mounted in the front of locomotives to clear the line of obstacles, ‘black box’ recorders as ‘the incorruptible witnesses of the immediate antecedents of any catastrophe’, failsafe quick release couplings for railway carriages, a pen with a rotatable disk for drawing broken lines on maps, a chart recorder for logging the condition of railway tracks, theatre lighting using coloured filters (quashed by theatre management on the grounds of health and safety because of supposed fire hazard from the oxy-hydrogen blowlamps), a tugboat for winching vessels upstream,  diving bells, a submarine for propelled by compressed air, an altimeter, a seismograph, a flatbottomed boat that would aquaplane (‘hydrofoil’), an astronomical micrometer, a ‘coronograph’ for producing artificial eclipses, a life-buoy with a self-igniting mechanism wound automatically by bobbing motion in the sea, an arcade game, an aerial funicular system for mail delivery, and occulted lights for a signalling system for communicating with ships at sea with pre-programmed messages coded onto disks.


All this of course, aside from his invention of automatic computing machines for which he is best known.

With mechanical contrivances, devices and contraptions, the obsession of the age, he was clearly a man of his time. But the range and number of his inventions, proposed and/or constructed, is prolific even by the generous standards of his day.