(differential engine) – en avancerad räknemaskin, konstruerad av Charles Babbage† i början av 1800‑talet, men aldrig färdigbyggd. (Jämför med analysmaskinen.) – Babbages idé var att maskinen skulle räkna ut matematiska tabeller och trycka dem automatiskt med ett inbyggt tryckverk, så att man slapp slarvfel och tryckfel. Idén kan ha varit inspirerad av tysken Johann Müllers† aldrig förverkligade planer. – Brittiska regeringen satsade stora pengar på projektet, som pågick 1823—1833, men maskinen blev bara delvis färdig. Orsakerna var troligen dels att Babbage var perfektionist, men inte ingenjör, dels konflikter, bland annat om pengar, med den skicklige finmekanikern Joseph Clement (se Wikipedia) som skulle bygga maskinen. – Svenskarna Georg och Edvard Scheutz†, som var inspirerade av Babbage, byggde senare tre versioner av en fungerande differensmaskin, men fick ingen kommersiell framgång. Svensken Martin Wiberg† tillverkade däremot på 1860‑talet en fungerande differensmaskin i behändigt format, och lyckades också sälja den. – En förklaring till att inte ens de fungerande differensmaskinerna blev särskilt framgångsrika var att det på 1800‑talet var billigare att låta människor göra beräkningarna och korrekturläsa de matematiska tabellerna. (Källa: Glory and Failure, 1987, av Michael Lindgren, se länk.) – Brittiska Science Museum byggde 1985—1991 en fungerade differensmaskin enligt Babbages ritningar (se länk). Den fungerar som den ska. (Se boken The Difference Engine av Doron Swade, länk, 2002.) En annan nybyggd fungerande differensmaskin finns på Computer history museum i Silicon Valley (se länk). – Namnet: Differensmaskinen har namn efter differensmetoden. – Boken The difference engine från 1990 av William Gibson och Bruce Sterling utspelar sig i ett fiktivt 1800‑tal där differensmaskiner är lika vanliga som datorer är nu.
den uppbyggnad av datorer som har varit standard sedan 1940‑talet. – von Neumann‑arkitektur innebär att data och program lagras i samma minne – sammanhanget avgör vad som är vad. Arkitekturen är uppkallad efter matematikern John von Neumann†, men andra forskare var med och utvecklade principerna. De första datorerna som tillämpade von Neumann‑arkitekturen var brittiska Small-scale experimental machine†(SSEM) från 1948 och amerikanska IAS machine† från 1952, som blev mönsterbildande. – von Neumann kände till Alan Turings† idéer, men han ville göra ett datorsystem som var mindre intellektuellt krävande för programmerarna. Principerna beskrevs först i rapporten First draft on the Edvac(länk) från 1945 (se Edvac†). – John von Neumann delade in datorn i fyra huvuddelar, nämligen (med moderna termer) processor, minne, styrning och användargränssnitt. Detta var inget nytt: samma delar ingår i alla datorer, inklusive Charles Babbages†analysmaskin, som ritades hundra år tidigare (men aldrig förverkligades). Mer specifikt för von Neumann‑arkitekturen är att den:
– har ett gemensamt minne för programinstruktioner och data. Vad som är vad avgörs av sammanhanget. Ett annat kännetecken för von Neumann‑arkitekturen är:
– att beräkningarna sker sekventiellt. Programinstruktionerna verkställs en i taget, data och instruktioner hämtas från minnet ett i taget.
– Under 1940-talet fanns en konkurrerande arkitektur, Harvardarkitekturen, som tydligt skilde mellan instruktioner och data. Det har gjorts många försök att utveckla nya arkitekturer. Främst gäller det att komma ifrån ”von Neumann‑flaskhalsen”, den sekventiella inläsningen av data och instruktioner från minnet. Det går ju inte att läsa in instruktioner och data samtidigt, vilket gick i Harvardarkitekturen. John von Neumann insåg fördelarna med parallell databehandling, men han ansåg att det skulle bli för besvärligt att genomföra. Numera är parallellism vanligt, eftersom datorer ofta har flera processorer, eller flerkärniga processorer. Principen om gemensamt minne har också ifrågasatts, eftersom programspråk tydligt skiljer mellan data och instruktioner. – Eftersom von Neumann‑arkitekturen hanterar instruktioner och data i samma minne skulle man kunna skriva program som förändrar sin egen kod, men knappast någon utnyttjar den möjligheten.
(1815—1851) – engelsk matematiker, utgivare av det första kända datorprogrammet. – Under några år samarbetade hon med Charles Babbage† om hans mekaniska dator, analysmaskinen, som aldrig blev byggd. – Ada Lovelaces rykte som ”den första programmeraren” bygger på hennes översättning av en artikel från 1840 av Luigi Federico Menebrea(se Wikipedia), på engelska ”Sketch of the analytical engine invented by Charles Babbage”(länk). I sina kommentarer, som tar dubbelt så mycket utrymme som Menabreas text, redovisade hon en komplett algoritm för att lösa en matematisk uppgift. Men hon föreslog också att analysmaskinen skulle kunna användas till annat än matematik, till exempel för att analysera och komponera musik. Där var hon mer än hundra år före sin tid. – Ada Lovelace gjorde också det första inlägget om vad som nu kallas för artificiell intelligens, se Lady Lovelaces invändning och Lovelacetestet. – Programspråket Ada är uppkallat efter Ada Lovelace, liksom utmärkelsen Lovelace medal. – Se också Ada Initiative†. – Biografiskt: Ada Lovelace föddes som Ada Byron. Hon var dotter till poeten lord Byron(se Wikipedia). Hon lärde sig matematik av sin mor Anna Isabella Byron, född Milbanke(se Wikipedia), som hade ett djupt intresse för matematik. Hon studerade också för Mary Somerville(se Wikipedia) – den första person som har kallats för scientist. Som gift hette Ada först Ada King efter sin make, William King. Namnet Lovelace fick hon när hennes man 1838 ärvde titeln earl av Lovelace. – Läs mer om Ada Lovelace i denna artikel av Howard Rheingold. – Ada Lovelace day firas sedan 2009, från 2012 den andra tisdagen i oktober. – Se findingada.com.