2012-10-16

Ada Lovelace programmerar

Den analytiska maskinen kan inte skapa någonting. Den kan göra vad som helst som vi kan instruera den att göra. Den kan utföra en analys, men den kan inte förutse några slutsatser eller sanningar. Den kan hjälpa oss att göra tillgängligt vad vi redan känner till.
- Ada Lovelace (1842)

Charles Babbage förutsätter jag att ni känner till, han med den Analytiska Maskinen som inte blev mer än ritningar, några testkonstruktioner och en fascinerande idé. Ada Augusta Lovelace känner ni naturligtvis också till, lord Byrons dotter som kallas världens första programmerare.

Men kan någon svara på detta: Vad var det egentligen hon gjorde?

Babbage höll 1842 en föreläsning i Turin. En italienare (som längre fram skulle bli premiärminister minsann, visserligen i ett land som haft mer av den varan än de flesta jämförbara) skrev ner vad han hörde. Babbage bad Ada att översätta texten till engelska. Hon gjorde så, och lade till utförliga noter där vissa detaljer förklarades. I en av dem, not G, beskriver hon hur man kan ställa in maskinen för att beräkna så kallade Bernoullital (en talserie som dyker upp då och då inom bland annat talteori, se Wikipedia (sv.): Bernoullital). Det är det som kallas "det första programmet".

Hur såg då det första programmet ut?

Med tanke på hur ofta programmet nämns så är det påfallande sällan man får se det. Vilket man förstår när man ser det. Läs själva (bilden visar en del av det matematiska resonemanget):

Sketch of The Analytical Engine invented by Charles Babbage, by L. F. Menabrea, with notes upon the Memoir by the Translator Ada Augusta, countess of Lovelace - not G

Här är en förklarande (hur mycket den nu förklarar …) tabell, klicka för förstoring:

För att ha en chans att förstå programmet behöver man först förstå maskinen. Redan det är en utmaning. Babbages underverk byggde på helt andra principer än dagens datamaskiner, och dess program var inte i närheten av  10 PRINT "Hello, world". Det hjälper inte att den aldrig förverkligades. Vad det än beror på så har jag inte hittat någon beskrivning som gjort mig riktigt nöjd. Men ta gärna en titt på filmen Babbage's Analytical Engine med professor David Brailsford; och den som inte kände till professor Brailsford är bara att gratulera, för hans många datahistoriska dragningar på Youtube-kanalen Computerphile är alldeles underbara.

Om detaljerna i Adas programmerande är föga kända så är de ifrågasättanden som gjorts av hennes insats ännu mindre kända. Jag har inte satt mig in i ämnet, men tvivlar starkt på att hon skulle ha varit någon sorts kuttersmycke. Som när Babbage vid ett senare tillfälle nämnde att hon visserligen inte löst problemet med Bernoullitalen, men däremot ett antal andra algebraiska utmaningar. Liksom att hon en gång rättade ett fel som Babbage gjort.

Om Ada åtminstone rättade världens första bugg, vilket redan det är vackert nog (och inte sällan svårare än ”grovprogrammering”), så är det även ett sammanträffande att världens första, och ofta missförstådda, actual bug upptäcktes av ett programmeringslag där Grace Hopper ingick. Hon skrev dessutom världens första kompilator.

Det finaste sammanträffandet tycker jag ändå är att Ada och hennes man baronen bodde på Ockham Park. Det är samma ort som han med rakkniven.


2 kommentarer:

Lena Synnerholm sa...

Kan man verkligen sägas ha programmerat en maskin, som konstruktören aldrig lyckats få att fungera?

Hexmaster sa...

Om maskinen är såpass väl beskriven att programmet skulle kunna köras på den färdiga maskinen, ja det tycker jag. Problemen Babbage hade var, om jag inte har fel, mekaniska och inte "logiska" eller så.