FREE HISTORICAL FIGURES OF COMPUTING PROFILE
Ada Lovelace
1815–1852 · Mathematical writer and collaborator
Augusta Ada Lovelace
Mathematical writer and collaborator · 1815–1852 · England
Lovelace's 1843 Notes explain operations, changing quantities, and symbolic interpretation for Babbage's proposed Analytical Engine. They include a detailed published plan for calculating Bernoulli numbers. The achievement is substantial without an unsupported claim that no one had previously written a program plan or imagined mechanical calculation.
Study and collaboration
Lovelace's mathematical education is documented in surviving papers and correspondence. An Oxford research project examined those materials rather than treating her as either an all-knowing visionary or a passive assistant. The papers show a serious learner asking technical questions, making mistakes, and working through them. Oxford, The mathematics of Ada Lovelace
Her correspondence course with Augustus De Morgan belongs principally to 1840–1841, not 1833–1835. The Clay Mathematics Institute provides dated scans and transcriptions, including discussions of functions, limits, series, and differentiation. Those records support studying her actual reasoning rather than inventing her thoughts during a first meeting with Babbage. Lovelace–De Morgan correspondence
Menabrea's article appeared in French in 1842. Lovelace's English translation and Notes A through G appeared in 1843. Note A discusses the possibility of operating on things other than numbers when their relations can be represented appropriately. Note D distinguishes input, temporary, and result quantities. Note G contains both the Bernoulli calculation plan and the caution about the Engine's ability to originate. The caution is not in Note A. These are proposals and explanations for an uncompleted machine, not reports of running software. Menabrea and Lovelace, complete 1843 text
Worked mechanism: exact values with explicit indexing
This original exercise uses a modern Bernoulli-number convention. It is not a transcription of Note G's table, whose subscripts and organization differ. Define B0=1 and, for each integer m≥1:
sum from k=0 to m of C(m+1,k) Bk = 0.
The coefficient of Bm is C(m+1,m)=m+1. Consequently:
Bm = -(sum from k=0 to m-1 of C(m+1,k) Bk)/(m+1).
This triangular dependency means the next value depends only on already computed values. Work with fractions, so rounding does not obscure the argument:
m=1: 1 + 2B1 = 0 => B1 = -1/2
m=2: 1 + 3(-1/2) + 3B2 = 0 => B2 = 1/6
m=3: 1 + 4(-1/2) + 6(1/6) + 4B3 = 0 => B3 = 0
m=4: 1 + 5(-1/2) + 10(1/6) + 5B4 = 0 => B4 = -1/30
For the last line, the known terms total 1/6, so dividing their negative by 5 gives -1/30. The notation matters: calling this modern B4 "Lovelace's B4" would silently change conventions. Her Note G presents an example using the sequence labeled B1, B3, B5, and B7. A careful comparison first maps definitions, not just subscripts. Note G
From a formula to a program plan
A formula does not yet specify storage reuse or execution order. A simple plan keeps the computed array B[0..m-1], initializes a temporary sum s to zero, and accumulates C(m+1,k)×B[k] for k from 0 through m−1. Only after the loop finishes does it assign B[m]=-s/(m+1).
The inner-loop invariant is: before processing k, s equals the sum of terms with indices below k. Each iteration adds exactly the next term. At termination, s is the required known part of the recurrence. The outer-loop invariant is that all stored entries with index below m satisfy the definition. These invariants establish correctness by induction.
Temporary storage can be reused after its last needed value has been consumed. Reusing a slot too early changes a later operand. This is why program tables that track both operations and changing quantities contain more information than a bare algebraic expression. The comparison is educational; it does not assume that the proposed Engine used today's array syntax or exact-fraction representation.
Symbolic meaning requires a representation contract
Suppose integers encode musical pitches. Adding 12 can represent an octave transposition in a chosen equal-tempered pitch-number convention. The same integer addition could instead mean adding twelve units to a financial quantity. The machine's arithmetic alone does not choose the interpretation. Valid encodings, permitted operations, and output interpretation must agree.
Generality therefore has a condition: a useful representation must preserve the relationships relevant to the task. Encoding a document as numbers is not enough to make ordinary numerical addition implement translation between languages. A computation needs appropriate rules, not merely numerical input.
Exercises
- Continue the stated recurrence to calculate B5 and B6 exactly. Show the known-term sums and the final divisions.
- A program computes
t=a+b, thenu=a-b, thenv=t×u. With a=7 and b=3, show the correct values. A programmer overwrites a with t after the first operation. Trace the bug and propose a safe storage plan using only one additional temporary variable beyond a and b. - A source labels a value B1=1/6, while this reading uses B1=−1/2 and B2=1/6. Explain why declaring one source wrong is premature. State what must be compared, and distinguish a published program plan, an executed implementation, and a claim of historical priority.
Compare your reasoning with the worked solutions
- For m=5 the known sum is
1+6(-1/2)+15(1/6)+15(-1/30)=1-3+5/2-1/2=0, so B5=0. For m=6 it is1+7(-1/2)+21(1/6)+35(-1/30)=1-7/2+7/2-7/6=-1/6. Thus B6=-(-1/6)/7=1/42. Terms containing B3 and B5 vanish. Exact fractions expose cancellations that rounded decimals could conceal. - Correctly, t=10, u=4, and v=40. Overwriting a with 10 makes the next subtraction produce 7 and the product 70. A safe plan is
t=a+b, thena=a-b, thena=t×a; b remains 3 and a becomes the result 40. This is safe only if the original a is no longer needed afterward. Storage optimization depends on future uses, not just the current expression. - The sources may index different subsequences or use different sign conventions. Compare their defining equations and initial values before aligning terms. A published plan is a documented sequence of proposed operations; execution requires an implementation and a trace or other evidence of operation. Priority adds a comparison with earlier work and a definition of what counts as a program. None of these claims follows solely from recognizing a loop or a familiar number in a printed table.