Charles Babbage och Ada Lovelaces datorer Sven Andersson san01006@student.mdh.se Vetenskapsmetodik för teknologiområdet CT3620 Mälardalens Högskola 18 oktober 2004 1
1 Sammanfattning Charles Babbage designade under 1800-talet två maskiner. Den första var Differensmotorn som skulle beräkna matematiska tabeller med differensmetoden. Projektet misslyckades, men ur det föddes en ny tanke. Tanken att bygga en mer generell maskin som kunde programmeras till att beräkna betydligt mer än matematiska tabeller, den analytiska motorn. Tanken var helt ny, inget liknande hade tänkts före Babbage. Babbage spenderade en stor del av sitt liv att designa motorn men fick aldrig se den byggd, och än idag har ingen byggt den Analytiska motorn. Rapporten försöker ge en inblick i hur den mekaniska analytiska motorn skulle ha fungerat och vad den kunde göra. Här tas även Ada Lovelace upp, som genom sin dokumentation av Babbage arbete har blivit knuten till maskinerna. 2
Innehåll 1 Sammanfattning 2 2 Introduktion 4 3 Charles Babbage och Ada Lovelaces datorer 4 3.1 Babbage och Lovelace............................. 4 3.2 Differensmotorn................................. 4 3.3 Den Analytiska motorn............................ 5 3.3.1 Översikt................................. 5 3.3.2 Minnet................................. 5 3.3.3 Prestanda................................ 5 3.3.4 Programmering............................. 6 3.3.5 Om den byggts............................. 6 3.3.6 Idéerna och arbetet.......................... 6 4 Slutsatser 7 3
2 Introduktion 1822 påbörjade engelsmannen Charles Babbage arbetet med att bygga en maskin för att genom tillämpning av differensmetoden beräkna matematiska tabeller, maskinen är känd som differensmotorn. Tio år senare slutade projektet i ett misslyckande [Wiki3]. Babbage gav dock inte upp, redan 1834 började han på en mycket mer generell maskin för att utföra beräkningar. Maskinen kallade Babbage för den Analytiska motorn. Resultatet av det här arbetet blev 300 ritningsark, 600-700 noterade abstrakta representationer, logiska diagram, och program för den analytiska motorn samt 6000-7000 sidor anteckningar. De beskriver, tillsammans med Ada Lovelaces noterade översättning av L.F Menabreas presentation av Babbages idéer, vad som anses vara en mekanisk dator. [1] Rapporten kommer i huvudsak att koncentrera sig på att ge en översikt av den Analytiska motorn. 3 Charles Babbage och Ada Lovelaces datorer 3.1 Babbage och Lovelace Charles Babbage levde mellan 1791 och 1871. Han var matematiker och höll en professortjänst i ämnet på Cambridge universitet mellan 1828 och 1839. Förutom att designa mekaniska datorer så var han intresserad av kryptologi. Han lyckades knäcka Vigenères autonyckelchiffer. [2] Ada Lovelace, dotter till poeten Lord Byron, levde 1815 till 1852. Hon översatte L.F Menabreas arbete, Sketch of the Analytical Engine Invented by Charles Babbageöch bidrog med noteringar till texten. Menabreas och Lovelaces dokument är den enda samtida översiktliga dokumentationen av Babbages arbete. Lovelace rättade och noterade även de exempelprogram som Babbage skrivit och som bifogats i Lovelaces noterade översättning av Menabreas arbete. Lovelace avled i cancer 37 år gammal. Det tvistas fortfarande om hur stor Lovelaces involvering var i Babbages arbete. [3] 3.2 Differensmotorn Differensmotorn är den första räknemaskinen som designades av Babbage. Men maskinen byggdes aldrig, på grund av svårigheter med precision vid tillverkning av delar och att pengarna tog slut. Dess tänkta syfte var att beräkna polynom med differensmetoden. Den skulle drivas av en handvev. Differensmetoden är en numerisk metod för att ta fram matematiska tabeller för värdena av polynom. Det här var intressant eftersom logaritmiska och trigonometriska funktioner kan approximeras med hjälp av polynom och då de tabeller som fanns då innehöll flera fel. Babbage designade en till version av differensmotorn men fick aldrig tillfälle att bygga den. En liknande maskin byggdes av svensken George Scheutz 1855 en maskin baserad på Babbages beskrivning av den första differensmotorn, den fungerade aldrig särkilt väl på grund av svårigheter i att producera delar med tillräckligt hög precision. 1991 byggdes ett fungerande exemplar av Babbage andra version av differensmotorn, den finns att se på Science Museum i London. [4] 4
3.3 Den Analytiska motorn 3.3.1 Översikt Till skillnad från den begränsade funktionaliteten hos differensmotorn så är den Analytiska motorn en generell programmerbar mekanisk dator. Den har många likheter med de moderna elektroniska datorerna. Med motorn menas härifrån den Analytiska motorn. Motorn har vad Babbage kallade mill och store. Mills motsvarighet i en modern dator är processor och store minnet. Värden i både mill och store lagras genom att ställa kugghjul, sifferhjul, uppsatta på axlar. En axel har flera sifferhjul. En axel i mill är det närmaste man kommer till ett processorregister. En del av delen mill byggdes 1910 av Babbages son Henry och lyckades användas för att beräkna multiplar av pi [5]. Operationer i mill kontrollerades av en barrel, vilket är cylinder med tappar på ytan. Operationerna i motorn är, till skillnad från en modern dator, på ganska hög nivå. Istället för som i en modern dator genomföra addition genom att kombinera mindre logiska operationer så är addition en atomär operation i motorn. Det samma gäller för de tre övriga räknesätten. Indata och utdata är i form av hålkort. En idé som Babbage fick från Jacquard loom, en vävstol som kunde konfigureras till att väva ett visst mönster genom att läsa hålkort. [1] 3.3.2 Minnet Babbage använder basen tio för att representera värden istället för den binära talrepresentationen som moderna datorer använder. Till skillnad från elektroniska datorer så får man ingen ökad enkelhet i att bara representera två olika lägen om man som Babbage använder sifferhjul för att representera tal. Tal representeras genom signed and magnitude metoden. För att uttrycka ett negativt tal så används en talposition som indikator, talets storlek följer därefter. Ett tal i motorn har 40 siffror vilket innebär att en axel har 40 sifferhjul. Skälet till att kunna uttrycka tal med 40 siffror är att motorn saknar flyttals hantering och därför behöver använda fixed point aritmetics. All läsning av data förstörde den. Eftersom sifferhjulet överför sitt värde genom att då det vrids till sitt ursprungsläge, driva ett annat hjul som överför värdet till ett annat hjul. Den totala minneskapaciteten för en färdig maskin skulle ha varit 1000 tal uttryckta i 40 siffror. [1][5] 3.3.3 Prestanda Motorn skulle till skillnad från differensmotorn drivas av en ångmaskin. Babbage hade beräknat en processorcykel på 1/7 sekund. Det var den tiden en barrel skulle ta på sig för att vridas till nästa läge. En addition skulle ta ungefär tre sekunder, en nummeröverföring 2.4 sekunder. Att växla mellan olika axlar skulle ta femton cykler. [1] 5
3.3.4 Programmering Hålkort användes för att programmera motorn. Den tidigaste designen använde barrels liknande de som användes för att styra de operationer atomära operationerna, t.ex. addition. Men genom att använda hålkort insåg Babbage att kunde han göra sin maskin mer flexibel. Motorn tog två typer av hålkort, operationskort och variabelkort. De två typerna av kort var ordnade i två remsor som kunde röra sig oberoende av varandra. Genom att gå fram och tillbaka på operationsremsan kunde motorn genomföra iteration. Variabelkortet i sig kan från vårt moderna perspektiv ses som variabelnamnet. Det bör noteras att motorn inte har någon möjlighet att adressera variabler, det går alltså inte att använda ett operationsresultat för att komma åt en variabel i store. Alltså kan motorn inte strukturera data i fält. Babbage beskrev ett flertal program till sin motor. Programmen är snarare noterad pseudokod. Någon exakt definition av motorns instruktionsuppsättning finns inte. Pseudokoden är på en nivå som närmast liknar assemblerkods nivå. Det har diskuterats om Ada Lovelaces deltagande i programmerandet. Men Babbages arbete innan Lovelace involverades innehåller flertalet av de programbeskrivningar som finns med bland Lovelaces noteringar.[1] 3.3.5 Om den byggts Bara delar av motorn har hittills byggts, Babbage tillbringade den senare halvan av sitt arbete kring motorn med att ta fram bättre metoder för att producera mekaniska delar. Den färdiga maskinen skulle ha varit 4,5 meter hög, på grund av axlarna som var och en skulle ha haft 40 hjul med åtta centimeter mellanrum, samt 1,5 meters utrymme för styrmekanismer. Mill skulle ha en diameter på 1.8 meter. Store skulle ha sträckt sig tre till sex meter ut i sidled.[1] Arbetet på differensmotorn ledde till framsteg inom framställning av mekaniska komponenter. Babbage senare arbete med att försöka möjliggöra konstruerande av motorn bidrog ytterligare till den dåvarande mekaniska teknologin. De mekaniska framstegen kan tänkas ha blivit ännu större om ett verkligt byggande påbörjats. 3.3.6 Idéerna och arbetet Angående Ada Lovelaces inblandning i Babbages datorer var nästan enbart dokumenterande. Hennes översättning och notering av L.F Menabreas arbete ger den enda översiktliga dokumentationen över Babbages arbete. Bortsett från hålkorten så var differensmotorn och den analytiska motorn Babbages egna skapelser. Tanken att bygga en maskin som utförde differensmetoden hade redan varit påtänkt 1786 av J H Mueller, men glömdes bort igen.[4] 6
4 Slutsatser Diffensmotorn är i mina ögon bara intressant i det faktum att den verkar ha fungerat som en språngbräda till den mycket större och betydligt intressantare analytiska motorn. Enligt Bromley så var motorn möjlig att bygga med den teknik som Babbage hade tillgång till men kostnaden skulle ha varit avsevärd. Jag hade först tänkt ge mig in på att beskriva maskinen i detalj, men det jag kom fram till är att det skulle ta betydligt mer tid än jag har. Maskinen är komplex, i mina ögon långt mer komplex än en elektronisk dator. Det som i en elektronisk dator sker med hjälp av elektroner sker i den analytiska motorn med hjälp av kugghjul, vajrar och sprintar. Den som vill veta mer om maskinens alla detaljer rekommenderas att läsa Bromleys Charles Babbage s Analytical Engine, 1838. Babbages design av motorn är lik den moderna elektroniska datorn. Den har en central enhet för operationer och ett minne. Vilket leder till frågan om det finns några andra sätt att effektivt bygga en dator på. 7
Referenser [1] A G Bromley, Charles Babbage s Analytical Engine, 1838, IEEE Annals of the History of Computing, Vol. 20, No. 4, pages 29-45, 1998 [2] Wikipedia entry: Charles Babbage, http://en.wikipedia.org/wiki/charles Babbage (cited 041008) [3] Wikipedia entry: Ada Lovelace, http://en.wikipedia.org/wiki/ada Lovelace (cited 041008) [4] Wikipedia entry: Difference Engine, http://en.wikipedia.org/wiki/difference engine (cited 041008) [5] Wikipedia entry: Analytica engine, http://en.wikipedia.org/wiki/analytical engine (cited 041008) 8