Geek's garden

03.04.2006

Difference engines: rationalist roots

The ancient Indian mathematician Pingala is credited with the first known description of a binary numeral system in the third century BC (coinciding with his discovery of the concept of zero). However, it was Gottfried Leibniz in the 17th century who first fully described the modern binary system, in his article "Explication de l'Arithmetique Binaire." Leibniz's system, based on ones and zeros, was subsequently employed on all modern computers. He revisited that system throughout his long and varied intellectual career.

Leibniz's genius extended to many fields. Along with Spinoza and Descartes, he was one of the three great Rationalist philosophers. He developed integral and differential calculus independently of Sir Isaac Newton and is usually considered the father of symbolic logic. Leibniz's work anticipated Lagrangian interpolation and algorithmic information theory. His calculus ratiocinator anticipated aspects of the universal Turing machine. In 1934, Norbert Wiener claimed to have found in Leibniz's writings a mention of the concept of feedback, central to Wiener's later cybernetic theory.

In 1671, Leibniz began work on a machine that could execute all four arithmetical operations, inspired by (and competing with) calculating machines developed by Blaise Pascal and Sir Samuel Morland. Over several years, he gradually improved the design of the machine, which was the basis of his election to the Royal Society in 1673. A number of the machines were produced by a craftsman working under Leibniz's supervision. Leibniz didn't consider it an unambiguous success because it didn't fully mechanize the operation of carrying. Historian Louis Couturat reported finding an unpublished note by Leibniz, dated 1674, describing a machine capable of performing some algebraic operations.

Leibniz was groping toward hardware and software concepts worked out much later, in the first half of the 19th century, by Charles Babbage and Ada Lovelace. In 1679, while mulling over his binary arithmetic, Leibniz imagined a machine in which binary numbers were represented by marbles governed by a rudimentary sort of punched cards. Modern electronic digital computers replace Leibniz's marbles, which moved by gravity, with shift registers, voltage gradients and pulses of electrons, but otherwise, they run roughly as he envisioned. Most historians of science and technology acknowledge Leibniz's prophetic role in the emergence of calculating machines and formal computer languages.