The “Father of the Computer”

According to IBISWorld, the percentage of families who own a computer is projected to reach 95.2% in 2022. Statista also reports that in 2021, approximately 340 million PCs were shipped worldwide. With that many computers and users in the world, you’d think that the name Charles Babbage would be well known. Babbage was an English mathematician, philosopher, inventor, and mechanical engineer who originated the concept of the computers we use today.

Born in Walworth, Surrey, England, on December 26, 1791, Charles Babbage attended Trinity, Cambridge in 1810 to study mathematics, graduated from Peterhouse in 1814, and received an MA in 1817. He was elected a fellow of the Royal Society in 1816 and was the Lucasian chair of mathematics at Cambridge University from 1828 to 1839. He died on October 18, 1871.
Science was not an established profession during Babbage’s lifetime, and Babbage, like many of his contemporaries, was a “gentleman scientist”—an independently wealthy amateur well able to self-support his interests. Between 1813 and 1868, he published six full-length works and nearly 90 papers.

Babbage pioneered lighthouse signaling, invented the ophthalmoscope, proposed “black box” recorders for monitoring the conditions preceding railway catastrophes, advocated decimal currency, proposed the use of tidal power once coal reserves were exhausted, and designed a cow-catcher for the front end of railway locomotives, failsafe quick-release couplings for railway carriages, multi-colored theatre lighting, an altimeter, a seismic detector, a tugboat for winching vessels upstream, a “hydrofoil” and an arcade game for members of the public to challenge in a game of tic-tac-toe.

The Difference Engine

Babbage’s most impressive achievement was the invention of the Difference Engine, regarded by many as the first mechanical computer and the reason why many people consider Babbage to be the “father of the computer.” The Difference Engine was designed to tabulate logarithms and trigonometric functions by evaluating finite differences to create approximating polynomials. The construction of this machine was never completed, but it eventually led to more complex electronic designs.

The Analytical Engine

The essential ideas of modern computers can be found in Babbage’s Analytical Engine, which was programmed using a principle borrowed from the Jacquard machine—a device fitted to a loom that simplifies the process of complex-patterned manufacturing textiles (e.g., brocade, damask, matelassé). The resulting ensemble of the loom and Jacquard machine was called a “Jacquard loom.” The machine was controlled by a “chain of cards”—a number of punched cards laced together into a continuous sequence. Multiple rows of holes were punched on each card, with one complete card corresponding to one row of the design.

This use of replaceable punched cards to control a sequence of operations is considered an important step in the history of computing hardware and is what inspired Babbage’s Analytical Engine—a proposed mechanical general-purpose computer, first described in 1837 as the successor to Babbage’s Difference Engine, which was a design for a simpler mechanical calculator.

The Analytical Engine incorporated an arithmetic logic unit, control flow in the form of conditional branching and loops and integrated memory, making it the first design for a general-purpose computer that could be described in modern terms as “Turing-complete.” In computability theory, a system of data-manipulation rules (such as a computer’s instruction set, a programming language, or a cellular automaton) is said to be Turing-complete or computationally universal if it can be used to simulate any Turing machine. This means that it is able to recognize or decide other data-manipulation rule sets. Turing completeness is used as a way to express the power of such a data-manipulation rule set. Virtually all programming languages today are Turing-complete.

So, in other words, the logical structure of the Analytical Engine was essentially the same as that which has dominated computer design in the electronic era.

Input for the Analytical Engine consisted of programs (“formulae”) and data to be provided to the machine via punched cards similar to those use in the Jacquard loom. For output, the Analytical Engine would have a printer, a curve plotter and a bell. The machine would also be able to punch numbers onto cards to be read in later. It employed ordinary base-10 fixed-point arithmetic. There was to be a store (that is, a memory) capable of holding 1,000 numbers of 40 decimal digits each (ca. 16.6 kB). An arithmetic unit (the “mill”) would be able to perform all four arithmetic operations, plus comparisons and optionally square roots.

In 1838, the Analytical Engine was Initially conceived as a difference engine curved back upon itself, in a generally circular layout, with the long store exiting off to one side. Later drawings (1858) depict a regularized grid layout. Like the central processing unit (CPU) in a modern computer, the mill would rely upon its own internal procedures, to be stored in the form of pegs inserted into rotating drums called “barrels,” to carry out some of the more complex instructions the user’s program might specify.

The programming language to be employed by users was akin to modern-day assembly languages. Loops and conditional branching were possible, and so the language as conceived would have been Turing-complete. Three different types of punch cards were used: one for arithmetical operations, one for numerical constants, and one for load and store operations: transferring numbers from the store to the arithmetical unit or back.
There were three separate readers for the three types of cards. Babbage developed some two dozen programs for the Analytical Engine between 1837 and 1840, and one program later. These programs treat polynomials, iterative formulas, Gaussian elimination, and Bernoulli numbers.
Late in his life, Babbage sought ways to build a simplified version of the machine and assembled a small part of it before his death in 1871. Unfortunately, Babbage was never able to complete the construction of any of his machines due to a lack of funding and conflicts with his chief engineer. It was not until 1941 that Konrad Zuse built the first general-purpose computer, Z3, more than a century after Babbage had proposed the pioneering Analytical Engine in 1837.

In 1878, a committee of the British Association for the Advancement of Science described the Analytical Engine as “a marvel of mechanical ingenuity” but recommended against constructing it because it could not estimate the cost of building it nor the likelihood that the machine would function correctly after being built.

But in 1991, the London Science Museum built a complete, working replica of Babbage’s Difference Engine No. 2, a design that incorporated refinements Babbage discovered during the development of the Analytical Engine. This machine was built using materials and engineering tolerances that would have been available to Babbage, quelling the suggestion that Babbage’s designs could not have been produced using the manufacturing technology of his time.

Were you aware of Babbage’s contributions to engineering? Let us know your thoughts below.