Early Calculating and Computing Machines: From the Abacus to Babbage

continued

Leonardo Da Vinci

Recently, it was discovered that the famed artist and inventor Leonardo da Vinci experimented with designs for what may be the first digital mechanical calculating device. (See Figure 4.) In 1967, a pair of da Vinci drawings were discovered that depicted a design for a machine composed of geared wheels and rods that were purported to be a calculating machine capable of performing additions. IBM sponsored the construction of a replica based on these drawings. (See Figure 5.) But, an ensuing controversy about the true purposes of the design have cast a cloud over the authority of these claims. Today, the whereabouts of the original replica model are not known.

William Schickard

The inventor of another early mechanical (digital) calculating device was a German professor named William Schickard (1592-1635). Not a great deal is known about either Schickard or his mechanical device. We do know that the device was composed of rotating rods and gears. The rods represented columns of numbers, and the gears moved the rods to display the proper results. Basically, the machine performed the arithmetic operations of addition and subtraction using numbers up to six digits in length. It could apparently assist in performing multiplication and division with the help a set of Napier cylinders above the main portion of the machine. Unfortunately, most of the information about Schickard's invention was lost for centuries after his death from the plague in 1635.

Much later in the twentieth century, some of Schickard's notes were discovered and prototypes of his machine were constructed from them. (See Figure 6.)

Blaise Pascal and the Pascaline

For years historians considered the inventor of the first mechanical calculator to be the French mathematician, philosopher, and apologist Blaise Pascal (1623-1662). To assist his father's work as a tax collector, the 19-year-old Pascal created a mechanical device that performed simple addition and subtraction. (See Figure 7.) Even though the machine brought Pascal some notoriety, it was a commercial failure because of its inefficiency and difficulties in use.

Subtraction, for example, was performed using addition using nine's complement. Interestingly, while arithmetic with complements is cumbersome for humans, it is much easier to implement in machines. A form of complement arithmetic is used by most modern processors today to perform subtraction with integers. (See glossary, "two's complement.")

G. W. Leibniz and the Stepped Reckoner

The German scientist, mathematician, and philosopher Gottfried Wilhelm von Leibniz (1646-1716) is the next notable figure in our story. He is the designer of the Stepped Reckoner, the first fully featured arithmetic calculator capable of performing multiplication and division as well as addition and subtraction. Its chief feature was the so-called "Leibniz wheel," a gear-shaped metal cylinder that served as a mechanical multiplier. A crank rotated the collection of cylinders, which turned the wheels that displayed the digits of the answer. (Consult Figure 8.) However, Leibniz's prototype device never quite worked properly. Consequently, the machine is more important for its historical influence than as a practical device.

Although the Stepped Reckoner was a decimal device, it is interesting to note that by coincidence, Leibniz was the first mathematician to investigate the properties of base-2 or binary numbering. As you read earlier, binary coding is the native tongue of computers today.

Charles Stanhope

British scientist and politician, Charles Stanhope, the third Earl of Stanhope (1753-1816) is notable for his invention of what was later dubbed the "Stanhope Demonstrator." Like Lull's logic machine, the Demonstrator was not an arithmetic device, but apparently designed to represent and compute logical relations. This invention also reinforced the idea that computers could be employed for more general operations rather than as simple calculating machines.

Charles Babbage

The first truly modern pioneer in the history of computing is the Englishman Charles Babbage (1791-1871). (See Figure 9.) Babbage designed not one but two very different automated calculating machines. Unfortunately, his ideas were so modern that they far outstripped the capabilities of nineteenth-century technology. As a result, he was never able to realize them fully; consequently, many of these ideas were lost to posterity.

Much of the mathematical computations done in Babbage's day depended on consulting mathematical tables. Thus, enterprises such as navigation, science, and commerce relied heavily on the accuracy of these tables to aid the human "computers" who used them. The process of creating and publishing these tables was not always reliable, though. As might be expected, errors could result from either commission or transcription. The individuals doing the original computations might commit errors, and the publishing process might introduce others. Babbage reasoned that if a machine could be constructed to automate both of these processes, it would also bypass these sources of errors. He designed such a device, which he dubbed the Difference Engine. (See Figure 10.) The Difference Engine not only calculated tables of figures but also prepared plates for printing them. Unfortunately, the mechanical technology of the day was not suitable for the kinds of specifications needed to realize a fully functional device. That Babbage was a perfectionist who continually changed its design did not help matters either.

All in all, for its day, the Difference Engine was an amazing conception. Yet as an automated calculating device, it was a very special-purpose machine. The machine could perform a complicated series of computations for a given set of values. The results would be determined, of course, by both the original values and the process used to make the calculations. But, unfortunately, the machine could perform just that process and nothing else. To be able to perform another type of computation would require redesigning and building an entirely different machine. This very problem occupied Babbage during one of his breaks from work on the Difference Engine in 1833.

The idea that unlocked the solution to the problem was, surprisingly, the contemporary invention of the Jacquard loom. (See Figure 11.) J. M. Jacquard developed a device that attached to a loom to help automate the process of weaving. Jacquard's invention automated the action of the weaving needles to achieve a desired design by using a series of punched cards that directed, or programmed, this process. That is, the punched cards contained the instructions or program, written in a manner the weaving loom could understand, to direct the weaving.

Babbage recognized that computation in general could be organized in just this manner: The computational process could be programmed. The key is that the program does not have to be hardwired into the machine but fed into it much like the values processed. The advantages are enormous. Such a machine could not only vary what it processes but also vary how it processes. A programmable machine would be general purpose rather than limited in its capabilities. Changing the controlling program would enable the machine to perform an entirely different computational process.

Babbage called his design for such a machine the Analytical Engine. (See Figure 12.) The computations were directed by punched cards. Some of these cards specified the actual steps of the process to be performed; others specified the particular values or data to be used by the process. Babbage later recognized that other means could be used instead of punched cards to program a machine, but Jacquard's punched cards sparked his original insight. Babbage was assisted in this work on the Analytical Engine by Lady Ada Lovelace, who is sometimes referred to as the first computer programmer and in whose honor the recently developed programming language Ada was named.

Had he been able to realize the Analytical Engine as a functioning device, Babbage would have created the first general-purpose programmable computing machine. But, like the Difference Engine, it had little life beyond the drawing board. In retrospect, we must marvel at Babbage's ingenuity but regret that his accomplishments were known to so few and had so little influence on later generations who would struggle with the same enterprise.