Babbage's Analytical Engine
Charles Babbage's Analytical Engine, designed in 1837, abandoned the Difference Engine's single fixed job of tabulating polynomials and proposed instead a general-purpose machine that could be programmed to carry out any sequence of arithmetic a user chose, which is why historians of computing treat 1837 rather than 1822 as the year the modern computer was first conceived on paper. Where the Difference Engine was a dedicated stack of addition columns wired permanently to one method, the Analytical Engine split its works into two separate functional parts, an arithmetic unit Babbage called the "mill" and a memory unit he called the "store," and let a deck of punched cards borrowed directly from the Jacquard loom tell the mill, card by card, which operation to perform next and which numbers in the store to use, so changing the cards changed the computation without changing a single gear in the machine itself. That split between a processing unit, a memory unit, and an external, swappable instruction medium is the same three-part shape every digital computer built since has kept, which is the reason engineers today read Babbage's 1837 drawings and recognize, immediately, a CPU and RAM a century before either term existed.
The store alone shows how seriously Babbage scaled the design: he specified room for one thousand numbers of fifty decimal digits each, a memory capacity meant to hold an entire working calculation's worth of intermediate results rather than the single running total a calculator needed, and the mill was built to reach into any of those thousand locations on command rather than only ever touching its immediate neighbor the way the Difference Engine's columns did. Two distinct kinds of punched cards drove the machine, operation cards that selected which of the mill's arithmetic actions to run and variable cards that selected which store addresses supplied the operands, a direct, explicit reuse of the card-reading mechanism Joseph Marie Jacquard had built for his loom in 1804, and Babbage designed the engine so that a comparison of two values in the mill could, in principle, cause the card sequence to skip forward or loop back, meaning the machine could alter its own path through a program based on a result it had just computed, the same conditional-branch idea every programming language still expresses as an if-statement or a jump. The whole apparatus was meant to run on steam power, printing its results directly or punching them onto fresh cards for a later stage of calculation, but the machining tolerances the design demanded exceeded what 1830s workshops could reliably deliver at the scale required, and the funding that had barely carried the Difference Engine through two decades of cost overruns never materialized a second time, so the Analytical Engine was never built in Babbage's lifetime, surviving only as roughly two thousand pages of notebooks, drawings, and partial trial pieces.
The card-reading end of the engine is where its direct lineage from the loom shows most plainly: a card cylinder fed a chain of stiff cards past a row of spring-loaded probes, one probe per possible hole position, exactly the reading geometry Jacquard had perfected for silk patterns thirty years earlier, except that where a hole in a loom card lifted a thread, a hole in an Analytical Engine card selected an arithmetic operation or a store address. Operation cards and variable cards ran through the reader as two separate, synchronized chains, so a single pass could simultaneously name the action the mill should take and the exact store locations the mill should read from or write into, and Babbage's notes describe a mechanism for reversing the card chain's direction entirely, letting the sequence jump backward to repeat a block of cards, which is the mechanical ancestor of a modern loop. No complete Analytical Engine has ever been built, though the London Science Museum has worked from Babbage's drawings on later trial sections, and the design's full ambition is known only because it was documented well enough, in Babbage's own papers and in a long 1842 memoir on the engine written in French by the Italian engineer Luigi Menabrea, for a reader a few years later to translate, annotate, and extend it far beyond what either Babbage or Menabrea had written.
It fell to Ada Lovelace, translating Menabrea's 1842 memoir into English in 1843 and appending notes nearly three times longer than the original text, to spell out what Babbage's mill, store, and cards actually amounted to, writing in her Note G a worked, step-by-step method for computing Bernoulli numbers on the still-unbuilt Analytical Engine, a sequence of operations now widely regarded as the first published computer program, and setting up the next milestone in this history: her 1843 notes, not Babbage's drawings, are where the Analytical Engine's promise was first demonstrated as a working algorithm.