2 Punkte von GN⁺ 2024-12-17 | 1 Kommentare | Auf WhatsApp teilen
  • 1843 veröffentlichte Ada Lovelace ein Verfahren zur Berechnung von Bernoulli-Zahlen für die noch nicht fertiggestellte Analytical Engine und rückte damit ins Zentrum der Debatte um das „erste Computerprogramm“
  • Die veröffentlichte Tabelle zeigt einen Schritt einer Methode zur Berechnung der gesamten Bernoulli-Folge; der Wert, den Lovelace B7 nannte, entspricht in heutiger Notation der achten Bernoulli-Zahl
  • Das Programm in Note G war mit 25 Operationen, verschachtelten Schleifen und einer Notation zur Nachverfolgung von Variablenwerten deutlich ausgefeilter als Menabreas schleifenloses Beispiel mit 11 Operationen
  • Bei der Übersetzung nach C zeigte sich, dass die vierte Operation der Originaltabelle v5 / v4 eigentlich v4 / v5 sein müsste; vermutlich ein Satzfehler, aber möglicherweise der älteste Bug der Computergeschichte
  • Lovelaces Besonderheit liegt weniger im Titel „erste Programmiererin“ als darin, dass sie die Erstellung von Lochkarten nicht als bloße Übersetzung algebraischer Formeln verstand, sondern als Programmierarbeit, die man gut oder schlecht ausführen kann

Das nie ausgeführte Programm von 1843

  • Anders als in der Microsoft-Gründungsgeschichte bekam Ada Lovelaces Programm nie die Chance, auf einer realen Maschine ausgeführt zu werden
    • Paul Allen und Bill Gates testeten ihren BASIC-Interpreter auf einem Emulator auf Basis der Intel-8080-Spezifikation, obwohl noch kein Altair vorhanden war, und ließen ihn später auch auf einem echten Altair laufen
    • Lovelace schrieb ebenfalls ein Programm für einen Computer, der nur als Beschreibung existierte, konnte es aber nicht ausführen, weil die Analytical Engine nie gebaut wurde
  • Lovelaces Programm wird oft als das erste Computerprogramm der Welt bezeichnet, doch dieser Status ist umstritten
    • Die Debatte über Umfang und Wert von Lovelaces Beitrag hält so lange an, dass Walter Isaacson sie als „minor academic specialty“ bezeichnete
    • Wichtiger als die Bewertung der Person ist hier die Frage, wie das 1843 geschriebene Programm funktionieren sollte
  • Das Programm geht über eine bloße Auflistung von Formeln hinaus
    • Es bildet wiederholbare Gruppen von Operationen und verwendet damit eine Struktur, die einer Schleife entspricht
    • Es führt eine Notation ein, um Änderungen des Variablenzustands nachzuverfolgen
    • Darin finden sich Ähnlichkeiten zu heutigen Erfahrungen beim Schreiben von Software

Bernoulli-Zahlen und das Problem der Potenzsummen

  • Lovelaces Programm wurde zur Berechnung von Bernoulli-Zahlen entworfen
  • Hinter den Bernoulli-Zahlen steht ein altes mathematisches Problem: die Berechnung von Potenzsummen
    • Die Pythagoreer suchten nach einer Möglichkeit, 1 + 2 + 3 + ... + n zu berechnen, ohne direkt alles zu addieren, und kamen über das Zusammensetzen zweier Dreiecke zu einem Rechteck auf die Formel n(n+1)/2
    • Archimedes interessierte sich für Summen der Form 1² + 2² + 3² + ... + n² und hinterließ eine geometrisch interpretierbare Lösung
    • Aryabhata veröffentlichte 499 die Aryabhatiya, die auch eine Formel für Kubiksumme enthält
  • Das allgemeinere Problem war, Summen der Form 1^k + 2^k + ... + n^k zu finden
    • Johann Faulhaber berechnete und veröffentlichte 1631 Formeln bis zur 17. Potenz, lieferte aber keine allgemeine Lösung
    • Blaise Pascal entwickelte 1665 eine allgemeine Methode, für die man jedoch zunächst die Verfahren für alle niedrigeren Potenzsummen kennen musste
  • Jakob Bernoulli hinterließ eine praktischere allgemeine Lösung
    • Mithilfe des Pascalschen Dreiecks erkannte er Muster in den Koeffizienten der Polynome
    • Ein Teil der Koeffizienten ergibt sich aus dem Pascalschen Dreieck, der Rest aus der Eigenschaft, dass die Summe der Koeffizienten immer 1 ist
    • Dieser zweite Koeffizientenfaktor wurde zur Zahlenfolge der Bernoulli-Zahlen
  • Bernoullis Entdeckung machte die Berechnung beliebiger Potenzsummen nicht sofort trivial
    • Um die Summe der k-ten Potenzen zu berechnen, muss man die Bernoulli-Zahlen bis zur k-ten kennen
    • Jede Bernoulli-Zahl wird aus den vorherigen Bernoulli-Zahlen berechnet
    • Dennoch war es viel einfacher, eine lange Bernoulli-Folge zu berechnen, als jede Formel für Potenzsummen einzeln herzuleiten

Babbages zwei Rechenmaschinen

  • Charles Babbage entwarf zwei Arten mechanischer Rechenmaschinen
    • die Difference Engine
    • und die Analytical Engine, die heute als mechanischer Computer gilt
  • Die Difference Engine war kein Computer, sondern eine Maschine, die nur Additionen und Subtraktionen ausführen konnte
    • Babbage störte sich an den vielen Fehlern in den damaligen Logarithmentafeln und wollte sie maschinell erzeugen
    • Gaspard de Pronys Methode der geteilten Differenzen zerlegte die Erstellung von Logarithmentafeln in kleine Schritte, die nur Addition und Subtraktion erfordern
    • Polynome konnten zur Approximation von Logarithmus- und trigonometrischen Funktionen genutzt werden
  • Die Difference Engine ordnete jeder Spalte einer Differenztabelle eine physische Spalte von Zahnrädern zu
    • Jedes Zahnrad stand für eine Dezimalstelle, und eine ganze Spalte repräsentierte eine Dezimalzahl
    • Mit 8 Spalten konnten Tafeln bis zu Polynomen 7. Grades erzeugt werden
    • Ein Mensch setzte die Anfangswerte und drehte dann eine Kurbel, sodass sich die konstanten Differenzen in die nächste Spalte fortpflanzten
  • Babbage baute und demonstrierte Teile der Difference Engine, vollendete aber nie die gesamte Maschine
    • Er fand keinen Hersteller, der die benötigte Zahl an Zahnrädern mit ausreichender Präzision herstellen konnte
    • Eine funktionsfähige Difference Engine wurde erst in den 1990er Jahren gebaut, als Präzisionsfertigung möglich war
  • Die Analytical Engine war als wesentlich mächtigere und flexiblere Maschine gedacht
    • Sie sollte ähnliche Zahnradsäulen wie die Difference Engine verwenden, aber Hunderte oder mehr davon besitzen
    • Sie sollte sich wie der Jacquard-Webstuhl mit Lochkarten programmieren lassen
    • Sie konnte nicht nur addieren und subtrahieren, sondern auch multiplizieren und dividieren
    • Ein Teil namens „mill“ wurde passend zur Operation neu konfiguriert, las Operanden aus Speicherspalten und schrieb das Ergebnis in andere Spalten

Menabreas Aufsatz und Lovelaces Anmerkungen

  • Babbage traf in Turin den italienischen Ingenieur und späteren Premierminister Luigi Menabrea, der 1842 einen französischsprachigen Aufsatz über die Möglichkeiten der Analytical Engine veröffentlichte
  • Lovelace übersetzte Menabreas Aufsatz 1843 ins Englische
    • Lovelace hatte Babbage erstmals 1833 im Alter von 17 Jahren kennengelernt und war von seiner Difference Engine fasziniert
    • Sie erhielt schon früh eine intensive mathematische Ausbildung und studierte auch nach ihrer Heirat und der Geburt von drei Kindern bei Augustus de Morgan weiter Mathematik
  • Menabreas Aufsatz behandelt knapp die Funktionsweise der Difference Engine und die Überlegenheit der Analytical Engine
    • Die Analytical Engine wird als Maschine vorgestellt, die das Produkt zweier 20-stelliger Zahlen in 3 Minuten berechnen könne
    • Als Beispiele dienen ein einfaches lineares Gleichungssystem und die Ausmultiplikation zweier Binome, dargestellt mit „diagrams of development“
    • Auch diese Tabellen sind Programme im selben Sinn wie Lovelaces Programm, allerdings einfache Beispiele ohne Verzweigungen oder Wiederholungen
  • Lovelaces Übersetzung wurde mit Anmerkungen versehen, die länger waren als der Originaltext, und genau darin liegt ihr wichtigster Beitrag
    • Note A behandelt ausführlich die Möglichkeit, dass die Analytical Engine beliebige mathematische Operationen ausführen könne
    • Sie vertritt die Ansicht, dass die Maschine nicht nur mit Zahlen arbeiten könne, sondern mit allem, dessen grundlegende wechselseitige Beziehungen als abstrakte Wissenschaft der Operationen ausgedrückt werden können
    • Als Beispiel erwähnt sie, dass die Maschine eines Tages vielleicht Musik komponieren könne
  • Note G ist aus zwei Gründen berühmt
    • Lovelaces Argument, man könne nicht sagen, die Analytical Engine „denke“, wurde später von Alan Turing als „Lady Lovelace’s Objection“ bezeichnet
    • Zugleich enthält die Note ein Programm zur Berechnung von Bernoulli-Zahlen, um zu zeigen, dass die Maschine sehr komplexe Probleme bearbeiten könnte

Die tatsächliche Struktur des Programms in Note G

  • Lovelaces vollständige Tabelle ist ein erweitertes „diagram of development“; das Originalbild ist hier zu sehen
  • Das Programm ähnelt eher einer Liste von Operationen, die in üblicher mathematischer Notation angegeben sind
    • Offenbar waren weder Babbage noch Lovelace schon an dem Punkt, einen Opcode-Satz für die Analytical Engine zu definieren
  • Lovelace erklärte eine Methode, die gesamte Bernoulli-Folge bis zu einer beliebigen Grenze zu berechnen, doch das als Tabelle gezeigte Programm illustriert nur einen Schritt davon
    • Berechnet wird der Wert, den Lovelace B7 nannte
    • In moderner mathematischer Notation ist das die achte Bernoulli-Zahl
    • Die Formel hat die Form B7 = -1(A0 + B1A1 + B3A3 + B5A5)
  • Jeder Term dieser Formel steht für den Koeffizienten eines bestimmten Potenzsummen-Polynoms
    • Die betreffende Potenz ist 8; die achte Bernoulli-Zahl taucht erstmals in der Formel für die Summe positiver ganzer Zahlen in der 8. Potenz auf
    • B1 bis B7 sind verschiedene Bernoulli-Zahlen nach Lovelaces Indexierung
    • A0 bis A5 sind Koeffizientenfaktoren, die Bernoulli mithilfe des Pascalschen Dreiecks berechnen konnte
    • Lovelaces Programm verwendet n = 4
  • Eine C-Übersetzung ist als gist verfügbar
    • Zunächst werden A0 und B1A1 berechnet
    • Danach beginnt eine Schleife, die zweimal durchlaufen wird und B3A3 sowie B5A5 berechnet
    • Nach jeder Multiplikation wird das Ergebnis zu den vorherigen Produkten addiert, bis am Ende die Gesamtsumme vorliegt

Schleifen, Variablenzustand und ein alter Bug

  • Die C-Übersetzung zeigt gut, wie vorausblickend Lovelaces Programm war
    • Im Original gab es zwar nicht wortwörtlich eine while-Schleife, aber Lovelace bildete Gruppen von Operationen und legte in Anmerkungen fest, wann sie wiederholt werden sollten
    • In der C-Übersetzung gibt es zwei while-Schleifen, von denen eine in der anderen verschachtelt ist
    • v10 im Original und in der C-Übersetzung verhält sich wie eine Zählervariable, die bei jeder Wiederholung dekrementiert wird
  • Lovelaces Tabelle macht Zustandsänderungen leichter nachvollziehbar als Menabreas Tabellen
    • Es gibt eine Spalte namens „Indication of change in the value on any Variable“
    • Jede Variable erhält einen hochgestellten Index, der die aufeinanderfolgenden Werte bezeichnet, die sie während der Programmausführung annimmt
    • Ein hochgestelltes 2 bedeutet den zweiten zugewiesenen Wert seit Programmstart
  • Beim Übertragen nach C ergab die Ausführung zunächst ein falsches Resultat, und der Fehler lag nicht im Übersetzungscode, sondern in der Originaltabelle
    • Lovelaces „diagram of development“ notiert die vierte Operation als v5 / v4
    • Die richtige Reihenfolge ist v4 / v5
    • Wahrscheinlich handelt es sich nicht um einen Fehler in Lovelaces Programm selbst, sondern um einen Satzfehler
  • Jim Randall übersetzte Lovelaces Programm ebenfalls nach Python und wies auf denselben Divisionsfehler sowie zwei weitere Probleme hin
  • Der kleine Bug im Originalprogramm passt zu der Interpretation, dass Lovelace nicht bloß eine Demonstration, sondern etwas schrieb, das einem echten Programm sehr nahekam

Die Grenzen des Titels „erste Programmiererin“

  • Zu sagen, Lovelace habe das „erste Programm“ geschrieben oder veröffentlicht, ist nicht ganz korrekt
    • Menabrea veröffentlichte seine „diagrams of development“ ein Jahr vor Lovelaces Übersetzung
    • Auch Babbage schrieb mehr als 20 Programme, die jedoch unveröffentlicht blieben
    • Je nachdem, was man als Programm ansieht, bleibt Raum für Debatten
  • Lovelaces veröffentlichtes Programm war seinem Vorläufer in der Öffentlichkeit jedoch weit voraus
    • Menabreas längstes Programm umfasste 11 Operationen
    • Menabreas Beispiele enthielten weder Schleifen noch Verzweigungen
    • Lovelaces Programm umfasst 25 Operationen und verschachtelte Schleifen, also auch Verzweigungsstrukturen
  • Menabrea meinte, sobald die Maschine fertig sei, reduziere sich die Schwierigkeit auf die Herstellung der Karten; diese seien nur Übersetzungen algebraischer Formeln, sodass man die Ausführung mit einer einfachen Notation leicht Arbeitern überlassen könne
  • Babbage und Menabrea konzentrierten sich vor allem darauf, die Analytical Engine auf mathematische Rechenprobleme anzuwenden, die sie selbst interessierten
  • Lovelace sah in der Analytical Engine Möglichkeiten, die über Babbages oder Menabreas Vorstellung hinausgingen, und verstand, dass die „Herstellung der Karten“ keine bloße Nebenaufgabe war, sondern Programmierarbeit, die man gut oder schlecht machen kann

1 Kommentare

 
GN⁺ 2024-12-17
Hacker-News-Kommentare
  • Das eigentliche Kennzeichen eines nicht trivialen Programms ist, dass es beim ersten Versuch nicht funktioniert.
    Erstaunlich ist, dass Babbage, nachdem er frustriert war, weil die präzise Massenfertigungstechnik für den Bau einer einfachen Maschine noch nicht existierte, ein neues System entwarf, das um eine Größenordnung komplexer war, und bis nach Italien ging, um weiterentwickelte Fertigungskapazitäten zu finden.

    • Ich hatte einmal so einen Mitarbeiter.
      Wenn er bei etwas nicht weiterkam, baute er zuerst seine eigenen Werkzeuge; einmal gefielen ihm die eingebauten Schriftarten bei sehr kleinen Punktgrößen nicht, also entwarf er seine eigene Schriftart.
      Er war der beste Ingenieur, den ich kannte, aber man musste ständig aufpassen, dass er nicht in irgendwelchen Kaninchenlöchern verschwand.
    • +1 zur Babbage/Lovelace-Geschichte, aber selbst wenn beide Tatsachen jeweils stimmen, ist es schwer zu sagen, dass Babbage wegen fehlender Präzisionsbearbeitung ein komplexeres System und die Reise nach Italien als „besten Weg“ gewählt habe.
      Auch Tim Robinson sagte: „Wenn es Meccano der 1920er schon 100 Jahre früher gegeben hätte, wäre Babbage vollständig erfolgreich gewesen“, und ich sehe ihn eher als Softwaremenschen, der durch Ideen, die dem realistisch Machbaren voraus waren, in Hardware hineingeworfen wurde.
      Neben seinem mangelnden Gespür für Geschäfts- und Projektplanung, wodurch er den Umfang nicht reduzieren oder auf 10-stellige Genauigkeit verzichten konnte, hatte er immer wieder bessere Ideen, denen er folgte und dabei in Kaninchenlöcher geriet; da er schon in jungen Jahren allein für den Vorschlag der Difference Engine mehrere Preise erhielt, dürfte es Jahrzehnte später schwer gewesen sein, aufzugeben.
      Außerdem war die Verstrickung mit der Regierung eine große tragische Achse. Der Adel verachtete und misstraute Regierung und Politik, die unteren Schichten misstrauten der Regierung, weil sie ihnen nie viel geholfen hatte, aber Babbage gehörte zur Mittelschicht, in der eine patriotische Sicht auf den Staat nahelag; offenbar wollte er seine Erfindung der „Nation“ widmen und meinte, die Regierung müsse ihn dafür entschädigen.
      Er vollendete die Difference Engine nicht, fragte die Regierung aber, ob er mit zusätzlicher Finanzierung die bessere Analytical Engine realisieren könne, woraufhin die Regierung 20 Jahre lang unentschlossen blieb. Selbst als die Regierung anbot, ihm die Erfindung zurückzugeben, lehnte er ab.
      Vielleicht auch unter dem Einfluss der vielen Auszeichnungen scheint er an der Identität eines „klugen Menschen“ gehangen zu haben; es gibt die Anekdote, dass er auch den Vorschlag ablehnte, gemeinsam mit Faraday Preise zu beurteilen, weil er alleiniger Juror sein müsse. Auch diese Haltung dürfte ihn eher zu hochfliegenden Genie-Ideen als zu praktischer Umsetzung getrieben haben.
      Sydney Paduas The Thrilling Adventures of Lovelace and Babbage scheint ein sehr gut recherchiertes Buch zu sein; den Haupttext habe ich nicht viel gelesen, aber die Anhänge habe ich gründlich gelesen und kann es empfehlen.
    • Die Aussage „ein nicht triviales Programm funktioniert beim ersten Versuch nicht“ ist nicht wahr.
  • Wirklich ein großartiger Artikel. In der Einleitung hat mich beeindruckt, dass Lovelace intensiv darüber nachdachte, wie man Berechnungen in wiederholbare Gruppen organisiert, dabei Schleifen erfand, erkannte, wie wichtig es ist, den Zustand bei veränderlichen Variablen nachzuverfolgen, und dafür eine Notation schuf.
    Aus Sicht eines Programmierers ist erstaunlich, wie sehr das, was Lovelace tat, der heutigen Erfahrung beim Schreiben von Software ähnelt; auch die Erklärung, dass sie es zur Berechnung von Bernoulli-Zahlen entwarf, ist ausreichend detailliert, um zu verstehen, was sie geleistet hat.
    Wenn sie heute leben würde, säße sie vermutlich am Ende des Flurs und würde mit Rust an irgendeinem Problem ringen; ich habe das Gefühl, dass sie statisch typisierte Sprachen stark bevorzugt hätte.

    • Wie viel Anerkennung Ada auch immer für Programmiertechniken bekommen sollte: Am stärksten sticht immer ihre Fähigkeit hervor, das große Ganze der Berechnung zu sehen.
      Entscheidend ist, dass sie erkannte, dass die Analytical Engine nicht nur auf Zahlen, sondern auch auf andere Gegenstände wirken könnte, die sich durch Beziehungen der abstrakten Wissenschaft der Operationen ausdrücken lassen; wenn sich beispielsweise die grundlegenden Beziehungen von Harmonie und Komposition auf diese Weise ausdrücken ließen, könnte sie Musik von beliebiger Komplexität und Länge erzeugen.
      Dass sie 1842, ein Jahrhundert vor dem Erscheinen tatsächlich programmierbarer Computer, allein anhand der Beschreibung eines mechanischen Computer-Prototyps auf diesen Gedanken kam, ist ein beeindruckender Hack.
    • Besonders auffällig fand ich, dass ihre Notation zur Nachverfolgung des Zustands bei veränderlichen Variablen der Static-Single-Assignment-Form sehr ähnlich aussieht.
      https://en.wikipedia.org/wiki/Static_single-assignment_form#Benefits
      Selbst heute ist das nah an modernen Techniken; sie hatte es gewissermaßen schon vor 180 Jahren.
  • Interessant ist die Stelle, dass Paul Allen und Bill Gates den BASIC-Interpreter für den Altair ohne einen echten Altair auf einem Harvard-Computer testeten, mit einem Emulator, den sie nur anhand der Intel-8080-Spezifikation gebaut hatten, und dass er beim ersten Lauf vor einem echten Altair korrekt funktionierte.
    Dann sind die wahren heimlichen Helden hier vielleicht die Intel-Ingenieure, die eine Spezifikation so präzise schrieben, dass Software, die auf einem nur nach dieser Spezifikation gebauten Emulator lief, auch auf der echten Hardware problemlos lief.

    • 1976 habe ich als ersten kommerziellen Programmierauftrag einen in Fortran geschriebenen 8008-Emulator so angepasst, dass er auf einem Data-General-Minicomputer als 8080-Emulator lief.
      Die Arbeit sollte einem anderen Programmierer, der 8080-Firmware für einen Plotter schrieb, ermöglichen, seinen Code zu debuggen; ich erinnere mich, dass der Quellcode dieses Emulators von Intels INTERP/8 8008 stammte. Nach Online-Artikeln zu urteilen, scheinen Allen und Gates ihn ebenfalls verwendet zu haben.
  • Der beste Teil ist meiner Meinung nach die eigentliche Arbeit in den „notes“, die sie ihrer Übersetzung beifügte.
    Referenz: https://upload.wikimedia.org/wikipedia/commons/c/cf/Diagram_for_the_computation_of_Bernoulli_numbers.jpg
    Und https://en.wikipedia.org/wiki/Note_G
    Der Artikel verweist auch auf dieses Material, das ihre Arbeit nach Python übertragen hat: https://enigmaticcode.wordpress.com/tag/bernoulli-numbers/

    • Die Hälfte des Artikels handelt von Note A und Note G.
  • Wenn man liest, dass die Übertragung von Lovelaces Programm nach C gar nicht so fremd wirkt – abgesehen davon, dass es vor wenig hilfreichen Variablennamen wimmelt –, dann hat der Autor eindeutig noch nie meine Kollegen getroffen.

    • Das erinnert mich daran, wie mein Projektpartner im Programmierunterricht in der Highschool Variablen nach den erstbesten derben und obszönen Wörtern benannte, die ihm einfielen.
      Ich war nicht besonders konservativ, aber natürlich konnte er sich nie merken, wofür die Variable „butts“ eigentlich gedacht war, und verstand bis zum Schluss nicht, warum ihn sein eigener Code ständig verwirrte.
    • Oder er hat offenbar noch nie mit programmierenden Mathematikern, Physikern oder Ingenieuren gearbeitet. Als ich den Satz sah, dachte ich sofort: „typischer Quant“.
      Mein Vater, Chemieingenieur, lernte das Programmieren in FORTRAN; damals mussten Variablennamen aus einem Buchstaben und höchstens zwei Ziffern bestehen. Später lernte er Basic, aber sein Code war im Kopf immer noch FORTRAN, und diese Gewohnheit blieb.
      Anfangs dachte ich, das sei nur bei meinem Vater so. Viel später arbeitete ich an der Wall Street mit Quants, die Code aus Numerical Recipes übernahmen, und sah exakt dasselbe Muster auch in C.
  • Wenn man bedenkt, dass Menabrea die Analytical Engine vor allem als Werkzeug sah, das „lange und trockene Berechnungen“ automatisiert und so die geistigen Fähigkeiten herausragender Wissenschaftler für höheres Denken freisetzt, ist interessant, wie langlebig der Automatisierungsdiskurs ist.
    Über LLMs sagt man heute genau dasselbe.

    • Vielleicht liegt der zentrale Unterschied zwischen dem Computer als Werkzeug und einem Konsumgerät letztlich in der Automatisierung „langer und trockener Berechnungen“.
  • Ich frage mich, ob jemand eine virtuelle Maschine für Babbages Befehlssatz gebaut und Adas Programm darauf ausgeführt hat.

  • Das wurde auch schon diskutiert, als dieser Artikel damals erschien.
    What Did Ada Lovelace’s Program Actually Do? - https://news.ycombinator.com/item?id=17797003 - Aug. 2018, 52 Kommentare

  • Ein kleiner Seitenaspekt: Ich habe mich gefragt, wie die Leute sie damals nannten.
    Ihr Name war Augusta Ada King, und sie war Countess of Lovelace. Ich frage mich, ob es damals üblich war, den Titel verkürzt wie einen Nachnamen zu verwenden, oder ob man erst in jüngerer Zeit dazu übergegangen ist.

    • Beim Träger des Titels Earl of Lovelace gibt es die übliche Form, nur mit der Orts- bzw. Titelbezeichnung angesprochen zu werden.
      Nachdem William King-Noel Earl of Lovelace geworden war, wurde er „Lovelace“ genannt; sie dürfte in der Gesellschaft „Lady Lovelace“ und in offiziellen Kontexten „Countess of Lovelace“ genannt worden sein.
  • Guter Artikel. Das war die klarste Erklärung, die ich bisher gelesen habe, in welchem Sinn Ada innovativ war und warum sie Anerkennung verdient.