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.