What did Ada Lovelace's program actually do? (2018)
Focus of the article / Lovelace’s notes
- Commenters highlight that the real substance is in Lovelace’s appended notes (especially Note G and the diagram for computing Bernoulli numbers), not the translated paper itself.
- Some wish the article had shown more of the primary material directly, though links to scans and transcriptions are shared.
What Lovelace’s program did & technical innovations
- Her program computes Bernoulli numbers for the Analytical Engine.
- Commenters note her explicit structuring of operations into repeatable groups (loops) and careful tracking of variable state, likened to modern compiler ideas such as static single assignment.
- A probable typesetting error in the original table is discussed as possibly the “oldest bug in computing.”
Was Lovelace the first programmer? (Controversy)
- One side: claims that most example programs were prepared earlier by Babbage; some argue there’s no clear evidence she wrote original programs or advanced the engine’s design, and that crediting her as first programmer is overstated or ideologically driven.
- Other side: counters that she was long respected historically; that attempts to diminish her are themselves ideological; and that, regardless of “first,” she clearly grasped the conceptual implications of general-purpose computation.
- Specific claims: she may have been first (or among the first) to use loops in such programs; but papers and archival work suggest Babbage also had looping constructs in his own (mostly unpublished) “Series L” tables.
Vision of general-purpose computation
- Multiple comments stress how unusual her insight was: recognizing that a numerical machine could, by encoding non-numeric symbols as numbers, operate on music or other domains.
- This is contrasted with contemporaries who mainly saw the engine as an arithmetic labor-saver.
Difference vs Analytical Engine; what is a “computer”?
- Broad agreement: the Difference Engine was a fixed-function mechanical calculator; the Analytical Engine was a fully programmable, Turing-complete design.
- Debate over “stored-program” definitions: Analytical Engine followed a separate-program (Harvard-like) card architecture, not von Neumann, but still read instructions from memory-like media.
- Wider argument about when a machine deserves to be called a “computer” (fixed algorithm vs general, looping computation).
Emulation and reconstructions
- Links are shared to a web-based emulator for Babbage’s instruction set, a C transliteration of Lovelace’s program, and other projects reconstructing or running her Bernoulli program on modern systems.
Other tangents
- Discussion of historically programmable devices (Jacquard looms, automata), and whether early Chinese indexing schemes anticipate hashing.
- Side threads on Babbage’s personality, manufacturing limits, and modern parallels in over-engineering and tooling.