Ada Lovelace: What did the first computer program do?
Celebrated on what would be her 197th birthday, Ada Lovelace is widely credited as having written the first computer program. What did Lovelace's program do?
The British Romantic poet Lord Byron is a hero among Greeks, having volunteered in the country's war of independence against the Ottoman Empire in the 1820s. Two decades later, Byron's daughter would become a hero among geeks, having drafted what is today considered the very first computer program.Skip to next paragraph
In Pictures Google Doodles you'll never see
Subscribe Today to the Monitor
Her feat is all the more impressive considering that, in the 1840s, there weren't actually any computers. Back then, the word 'computer,' which first appears in English in the early 1600s, meant a person whose job it was to perform calculations.
Instead, Lovelace, who is celebrated on Google's homepage today on what would be her 197th birthday, wrote her program on a hypothetical computer, one that had been developed by the British mathematician and engineer Charles Babbage.
Babbage first came up with his idea in 1812, when looking at tables of logarithms that had been tabulated by human computers. The tables were, Babbage observed, riddled with errors. Taking a cue from methods developed by the French government, in which logarithmic tables were created by roomfuls of workers performing simple addition and subtraction, overseen by mathematicians who had broken down the process into simple steps, Babbage envisioned the work being performed by a fast, reliable machine.
He convinced his own government to bankroll his 'Difference Engine,' as he called it. But after ten years and some £17,000 of public money, Babbage's machine, which was designed to tabulate logarithms and trigonometric functions, remained only half built. So he did what any good visionary would do: He scrapped the plans in favor of something more ambitious.
The Analytical Engine, which, like the Difference Engine, existed mostly on paper during Babbage's lifetime, was envisioned as a general calculating device. The user would input punched cards into the machine, which would be processed by rotating barrels. The machine would output to a printer, a plotter, or a ringing bell. (Babbage was inspired by the Jacquard loom, which used punched cards to "program" certain weaves, such as a brocade or a damask.)
The design of the Analytical Engine is nothing like that of today's MacBook, but it has all the basic architecture. It distinguished between program memory and data memory. It had a separate input/output unit. It accepted conditional "if/then" expressions.
Of course, the average laptop is millions of times more powerful. According to John Graham-Cumming, a British programmer and writer who is seeking to build a real-life Analytical Engine, the machine would have 675 bytes of memory and a clock speed of 7 Hz. Graham-Cumming told the BBC that if completed, Babbage's machine would be "about the size of a small steam train."