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"