SwADE | 257
higher-order representation was used to manage vast and complex detail. Babbage had adopted
the same route driven by the same imperative—a symbolic language to manage otherwise
unmanageable complexity at the component level—the same solution to the challenges of com-
plexity 150 years apart.
In these earliest reflections on the potential of automatic computing machines we can
see a clear articulation of a set of core ideas that were evidenced in Turing’s work a cen-
tury later. The idea of ‘mechanical process’ is central. As related by Max Newman, this idea
may well have been the jumping-off point for Turing’s ‘On computable numbers’, follow-
ing a lecture given by Newman in 1935 that was attended by Turing (see Chapter 40). Here
Newman recalled using the idea of ‘a purely mechanical machine’ to describe a process in
mathematical logic:^10 ‘mechanical’, in the Turing–Newman sense, denoted a systematic
procedure that is ‘unthinking’ or ‘unintelligent’. The development of Turing’s universal
machine involved the stripping out of all but operational (mechanical) features of calcula-
tion. A startling feature of the Turing machine was the reduction of calculation, for which
the sine qua non had until then been human intelligence, to a series of unthinking tasks. For
Babbage, in his world of cogs, levers, cams, ratchets, and machine cycles, ‘mechanical pro-
cess’ was something literal rather than theoretical, but unmistakeably unthinking in Turing’s
sense.
Mechanical process, algorithm as a stepwise procedure, computation as a systematic
method, halting, machine intelligence, and abstract formalism were intrinsic to both men’s
work and can be seen as a part of a remarkable congruence between the central features of both
Babbage’s and Turing’s ideas. But there is one critical congruence without which the picture is
incomplete.
The Analytical Engine: from calculation to computing
Difference Engines, for all the ingenuity of their design, and all the stimulus that they pro-
vided to debates about the prospects and limits of machine calculation, are not computers as we
would now understand them. They are strictly calculators that crunch numbers in the only way
they know how—by repeated addition, according to the method of differences. They execute
a single specific fixed algorithm on whatever initial values they are given. Useful as tabulating
polynomials is (they have wide application in science and engineering), in computational terms
the Difference Engines have no generality, not even as a four-function arithmetical calculator.
A leap to generality is found in Babbage’s Analytical Engine, conceived during 1834, shortly
after his decade-long project to construct a full-sized and well-engineered Difference Engine
had fatally foundered. There are detailed and extensive designs for the Analytical Engine that
Babbage worked on intensively for over a decade until 1847, and then intermittently until he
died in 1871 (Fig. 24.3). There is no definitive single version of the Analytical Engine, but rather
three distinct phases in which different features were developed and refined. Like the first
Difference Engine, the Analytical Engine remained unbuilt in its entirety.^11
The designs for the Analytical Engine describe an automatic programmable general-purpose
computing machine, capable of executing any sequence of arithmetical operations under pro-
gram control. At a user level it was programmable, using punched cards which Babbage intro-
duced in 1836. These were made of paste-board and stitched together in a fan-fold arrangement,
where the hole-pattern determined the instruction to be executed.