Skriva rapporter



Yüklə 0,5 Mb.
tarix08.08.2018
ölçüsü0,5 Mb.
#61705

Vad trodde datorpionjärerna om framtidens datorer - och hur blev det?


Författare: Tommy Haake och Daniel Karlström

Mälardalens Högskola, Västerås

25/3 - 2010





SAMMANFATTNING


Denna rapport går igenom ett urval av historiens utmärkande datorpionjärer som på ett eller annat sätt stått ut med sina bidrag till den moderna datorvärlden som vi har idag. Vi gör en tillbakablick till Turing och hans forskning med Bombe och avkodningen av Enigma-maskinen och som senare ledde fram till Turingmaskinen, en insikt som än idag används för att beskriva hur en dator fungerar. Vi bekantar oss med Grace Murray Hopper som vi har att tacka för det första standardiserade programmeringsspråket, COBOL. Utan Von Neumanns bidrag skulle vår dator inte heller se ut som den gör idag; att kunna göra sekventiella beräkningar. Slutligen får vi inte glömma Linus Thorvalds som skapade Linuxkärnan. Hur hade världen sett ut om vi inte hade haft honom, eller någon av de ovanstående för den delen?


Innehållsförteckning

Vad trodde datorpionjärerna om framtidens datorer - och hur blev det? 1

SAMMANFATTNING 2

INLEDNING 3

Vad trodde datorpionjärerna om framtidens datorer - och hur blev det? 4

Grace Murray Hopper 4

Första kompilatorn 4

John von Neumann 5

Alan Turing 5

Bombe / Enigma 6

Turingmaskinen 6

Morphogenesis 7

Turingtestet 7

Linus Thorvalds 8

Framtid 8

SLUTSATSER 8

REFERENSER 9




INLEDNING


Bakgrunden till denna rapport kom från en lista med ämnen inom kursen Vetenskapsmetodik då man skulle välja ett intressant ämne och sedan skriva en rapport och hålla ett seminarium. Vi valde detta ämne eftersom det verkade väldigt intressant och det var ett ypperligt tillfälle att lära sig lite mer om de gamla datapionjärerna som, tack vare sina bidrag, har gjort dagens värld möjlig.

Vad trodde datorpionjärerna om framtidens datorer - och hur blev det?




Grace Murray Hopper


Vi börjar med Grace Murray Hopper (1906 – 1992), [HOP 01, HOP 02] från USA som är mest känd för att ha sett till att den första datorkompilatorn sett dagens ljus, samt för att ha givit namn till 'bug' som används än idag inom datorvärlden. Hon var väldigt tekniskt lagd och väldigt intelligent, då hon fick en BA inom matematik och fysik vid 1928, en MA två år senare och en PhD vid 1934. Hon jobbade senare med Mark I-datorn och blev genast väldigt intresserad av den; och det första hon ville göra var att plocka isär den och försöka förstå hur den fungerade. Hon var något av en visionär då hon trodde att datorer skulle kunna användas till att göra musik, bilder och andra avancerade saker om man kunde komma över problemet med den invecklade maskinkoden. Ett användarvänligt tillvägagångssätt skulle öppna upp för snabbare utveckling.

Visst hade hon rätt. Vid år 1949 riskerade hon sin karriär inom flottan för att följa sina visioner genom att gå med i Eckert-Mauchly Computer Corporation där hon även påbörjade arbetet med UNIVAC I, Universal Automatic Computer vilket var den första storskaliga elektroniskt digitala datorn. Hon uppmuntrade programmerarna att börja spara och dela kod mellan sig, även om de nu fick kopiera den för hand. Men det minskade antalet fel och den påskindade utvecklingen. Detta tillvägagångssätt används även i dag i form av så kallade program och data bibliotek. En typisk biblioteksfil inom Windowsvärlden är en DLL-fil och innehåller programkod som olika program kan anropa och slipper på så sätt lägga in det i sina egna program. Detta minskar storleken på programmen oerhört mycket. Ännu en sak som Grace Murray Hopper fick rätt på med andra ord.


Första kompilatorn

När Grace Murray Hopper jobbade på Eckert-Mauchly Computer Corporation vid 1949 hade programmerarna som tidigare nämnt delat med sig av koden och skapat bibliotek av gemensam kod. Murray Hopper och hennes grupp började utvecklingen av det som skulle kallas A-O, den första kompilatorn. Tidigare hade programmerarna fått skriva koden binärt, vilket innebar väldigt många ettor och nollor efter varandra. A-O kunde använda symbolisk kod och översätta till binärt genom olika nummer. Ett nummer kanske motsvarade en kodbit som adderade, t ex. Inte alltför olikt nutidens funktioner inom programmeringsvärlden, ännu en poäng åt Hopper. [HOP 01, HOP 02]

Grace Murray Hopper var även med och skapade det första gemensamma programmeringsspråket. Vid 1956 hade hon varit med och utvecklat kompilatorn ännu mer och denna version kallades B-O, eller Flow-Matic som det senare blev kallat. Det var tänkt att kunna översätta språk som typiskt användes för automatiserade räkningar och lönebetalningar. Mycket riktigt så hade de efter ett tag fått datorn att förstå cirka 20 uttryck. Hon föreslog att ett helt programmeringsspråk skulle utvecklas för att förstå engelska ord men blev "sagd väldigt snabbt att hon inte kunde göra det för att datorer inte förstod engelska”. Det tog tre år innan hennes idé accepterades. Hon hjälpte och designade verktyg och manualer för språket och det blev släppt 1959. Vilket var det språket då? COBOL, COmmon Business-Oriented Language. Utan hennes Flow-Matic hade COBOL antagligen inte blivit utvecklat, enligt en kommitémedlem som översåg COBOL-utvecklingen.

COBOL används fortfarande i dagens avancerade kompilator-samhälle såsom C, C++, C#, osv. Det fick även stöd för objekthantering år 2002. Gartner Group uppskattade år 1997 att 80% av världens affärstransaktioner kördes på COBOL-kod. Det beror mest på att det är fungerande system som gör sitt jobb, det finns ingen anledning att byta program. Det vore både kostsamt och tidskrävande.


John von Neumann

John von Neumann var född med namnet János von Neumann men senare under sitt liv bytte han förnamn till John istället för János[NEU 01, NEU 02]. von Neumann var enastående inom matematik då han kunde dela 8-siffriga tal i huvudet när han var sex år gammal. Han skrev sin första avhandling vid 18 års ålder. Han studerade på universitet i Berlin och Zurich.

Hans största upptäckt inom datorvetenskapen var Von Neumann-arkitekturen som delar upp datorn i fyra delar: Minne, aritmetikenhet, styrenhet och användargränssnitt. (se bilden nedan.)

Det som var den stora skillnaden mot arkitekturen som användes tidigare var att man hade ett gemensamt minne för program, instruktioner och data samt att man även kunde göra beräkningar sekventiellt.




Alan Turing

Alan Mathison Turing, född 23 juni 1912, död 7:e Juni 1954 var en engelsk matematiker, logiker och framförallt kryptoanalytiker som blev mest känd för Turingmaskinen och arbetet med Bombe, vilket var en kryptoanalysmaskin som knäckte tyskarnas Enigma-kodade meddelanden under andra världskriget. Han blev arresterad 1952 efter att polisen fick reda på att han hade sexuellt umgänge med en annan man. Han valde att ta hormonbehandling i ett år istället för fängelse. [TUR 04]



Bombe / Enigma

Turing började arbeta på fulltid inom kryptoanalysen vid Bletchley Park när England gick med i andra världskriget den tredje september 1939. Med hjälp av polska kollegor byggde han en maskin som kunde knäcka vilket Enigma-meddelande som helst så länge en bit fanns som klartext. Maskingen kallades Bombe, en maskin som var en vidareutveckling på den tidigare Bomba. Med denna maskin började man avkoda tyskarnas flottiljrörelser och man fokuserade mycket på ubåtarna. Denna framgång banade vägen för ett annat av Turings verk; en elektronisk universell Turingmaskin. Med andra ord, en digital dator. [TUR 04]


Turingmaskinen

En Turingmaskin [TUR 01, TUR 04] är mer ett teoretiskt koncept än ett praktiskt. Det hjälper dock personer att förstå hur datorer i synnerhet fungerar, då man lätt kan dra paralleller. Enligt Turing själv består en Turingmaskin av detta:



"...an infinite memory capacity obtained in the form of an infinite tape marked out into squares on each of which a symbol could be printed. At any moment there is one symbol in the machine; it is called the scanned symbol. The machine can alter the scanned symbol and its behavior is in part determined by that symbol, but the symbols on the tape elsewhere do not affect the behavior of the machine. However, the tape can be moved back and forth through the machine, this being one of the elementary operations of the machine. Any symbol on the tape may therefore eventually have an innings".


Illustration 1: Exempel på en Turingmaskin

Det vill säga, ett tal läses in och kollas upp; står det 12 så skall den hoppa ett steg åt höger och läsa in det talet. Står det 11 så skall den skriva 1 och sedan läsa in nästa tal, och så vidare. Ett praktiskt exempel finns nedan. Läskautomater är faktiskt ett bra praktiskt exempel, man lägger in en peng och värdet på det läses in. Utifrån den informationen så händer ett par saker; antingen får man sin läsk eller får tillbaka sina pengar, eller någon kombination av dessa. Lägger man i för mycket pengar så får man läsk och pengar tillbaka, till exempel. Nedan är ett exempel på hur en praktisk Turingmaskin kan se ut:




Det var efter kriget som Alan Turing började arbeta med en universell Turingmaskin. En maskin som kunde göra allt som varje individuell Turingmaskin kunde. Han hade visionen att se att, även om nu teknologin var bristande, så skulle det snart utvecklas ny som var bättre. Därför fokuserade han på själva idén bakom maskinen istället för den praktiska biten. Han förutsåg en maskin som kunde göra algebra, knäcka kod, hantera filer och även spela schack. En enda maskin som kunde göra allting. Nu när vi tittar tillbaka på hans idéer ser vi att han inte hade fel alls.

En nutida dator kan göra allt som Turing förutsåg och mycket mer.

 

Morphogenesis

Vad är morphogenesis då, förutom ett invecklat ord? [TUR 03]
Wikipedia säger följande:

"Morphogenesis (from the Greek morphê shape and genesis creation, literally, "beginning of

the shape"), is the biological process that causes an organism to develop its shape"[TUR 03].

Den uppsättning av regler som bestämmer ett föremåls framväxt med andra ord. Turing hade alltid varit intresserad av hur saker och ting i naturen fick sin specifika form, speciellt de upprepande mönster som finns hos blommor och träd.

 

Turingtestet

Turingtestet är ett test som Alan Turing föreslog år 1950 för att testa en dators intelligens, dess AI [TUR 02]. Testet finns i otaliga versioner och revideringar men den ursprungliga versionen består av en domare som försöker ta reda på vilken av de två personer han pratar med egentligen är en dator. Datorn och människan sitter bakom en vägg och det enda svar som domaren får tillbaka består av text för att inte kunna se att det är en dator som svarar. Likaså är det inget visuellt prov med i testet. Det behöver inte vara en robot. Även om nu det finns sådana delmoment i en av de förgreningar som gjorts, givetvis.




Illustration 2: Pratar jag verkligen med två människor nu..?

Är Turingtestet då en bra metod att testa en AI på?


Svaret är nej. Varför då?

  1. Turingtestet består av att försöka lura en människa till att den egentligen pratar med en annan människa, när den egentligen pratar med en dator. Det innebär att datorn måste göra misstag som en människa gör. Skrivfel är ett bra exempel. Men det är inget större problem att införa slumpmässiga skrivfel i ett program.

  2. Om en maskin gör en smart sak som en människa inte skulle klarat av, lösa en svår ekvation eller liknande, så måste datorn dumma ned sig till människans nivå för att undgå upptäckt. Löser datorn problemet så vet domaren att det är en dator, då en människa inte skulle kunna lösa det problemet. Vilket inte heller är det största problemet.

  3. Det största problemet är att intelligens hos en människa består av så många delar varav skriftlig kommunikation bara är en liten del. Med dagens alltmer avancerade program närmar sig datorer mer och mer den graden av skicklighet att det börjar bli svårt att urskilja en chat med en maskin från en chat med en människa som inte pratar bra engelska. Det har redan hänt många gånger att domare i Turing Test gör detta misstag.


Linus Thorvalds


Linus Thorvalds var född den 28 december 1969 i Finland. Han är känd för skapandet av operativsystemet Linux, men vem är människan egentligen? Hans föräldrar var båda journalister. Han började tidigt vara intresserasig för datorer. Han var duktig på matte i skolan. När han var klar med gymnasiet började han på universitet i Helsingborg 1988 där han studerade datalogi. Han köpte en dator som han lade in Minix på, ett operativsystem som är byggt på Unix och är gjort för att man lätt ska kunna lära sig det. Thorvalds var inte riktigt nöjd med det och skrev på sin fritid ett operativsystem som till slut blev Linux, vilket släpptes i sin första version 1991. Den fick versionsnumret 0.01 och vem som helst fick använda och ändra det (open source. [LIN 03]

Just nu jobbar Thorvalds med hur Linux ska utvecklas vidare och hur Linuxkärnan ska utvecklas. Hans förhoppningar för framtiden är att mer och mer ska bli öppen källkod. Något som slår in mer och mer över världen, till exempel att mer länder går över till det såsom Tyskland redan gjort. Även Brasilien som tror att det är framtiden för utvecklingsländer, har även gått över till Linux [LIN 01, LIN 02].


Framtid


Utan Linus Thorvalds skulle det troligtvis tagit längre tid för att det skulle kommit något gratis operativsystem som man kan bestämma själv exakt hur man vill ha det. Vi tror att det skulle kommit ett senare åtminstone så mycket folk som programmerar, då själva idén har funnits väldigt länge. Hade inte Thorvalds tagit steget så hade någon annan säkerligen gjort det, om än med givetvis annat resultat.

SLUTSATSER


Vi är medvetna om att vi inte kunde få med alla pionjärer som man skulle vilja ha med i en redogörelse som denna, egentligen. Det är väldigt svårt att dels gå igenom allas arbete och sedan bedöma om det varit en väsentlig del av utvecklingen eller inte. Det hade vi inte tid med. Visst hade vi kunnat ta fler personer. Varför tog vi inte Bill Gates eller Steve Jobs, för båda dessa har tillfört världen så mycket och utan dem skulle det vara en helt annan värld? Varför tog vi inte med dem då? För att de är kända. Folk har redan en uppfattning om dem, mest för att det fortfarande är aktuella då artiklar om dessa hoppar upp fortfarande. Vi valde istället att fokusera oss på personer lite längre bak i tiden, inom den stora pionjäråldern. Valet på just Hopper och Turing är för att de passade in i vår tidsram angående pionjärerna. Sedan att de stod ut genom att en var homosexuell och den andre en kvinna gjorde bara valet lättare.

Vi tycker dessutom att detta är ett intressant ämne, hur det har gått framåt på så kort tid som det egentligen har gjort. Intresset har bara ökat ju mer vi har grävt ned oss inom ämnet, precis som det ska vara. Det sporrar en att leta vidare och djupare fastän man inte behöver. Man har nog med material men går ändå djupare för att man själv vill veta. Det är bra indikationer på att man valt ett intressant ämne. När vi ändå är inne på valet av ämnen så måste vi ge en eloge till de lärare som bestämt ämnena. Alla var intressanta på något sätt. Vi skulle personligen vilja höra på allas bidrag.


REFERENSER

[HOP 01] (1994) ”Grace Murray Hopper”. [Cited 24 feb 2010] <http://cs-www.cs.yale.edu/homes/tap/Files/hopper-story.html>

[HOP 02] (2006) ”Inventor of the Week, Inventor of the Week Archive”. [Cited 24 feb 2010]<http://web.mit.edu/invent/iow/hopper.html>

[NEU 01] J.A.N Lee (2002) ”John Louis von Neumann”. Virginia Tech [Cited 25 feb 2010]<http://ei.cs.vt.edu/~history/VonNeumann.html>

[NEU 02] ”School of Mathematics and Statistics, University of St Andrews, Scotland” [Cited 25 feb 2010]

[TUR 01] ”Turing Machine”. Wikipedia [Cited 22 feb 2010] <http://en.wikipedia.org/wiki/Turing_Machine>

[TUR 02] ”Turing test”. Wikipedia [Cited 22 feb 2010]
<http://en.wikipedia.org/wiki/Turing_test>

[TUR 03] ”Morphogenesis”. Wikipedia [Cited 22 feb 2010]





[TUR 04] ”The Alan Turing Homepage” (Cited 20 feb 2010)

<http://www.turing.org.uk/turing/>

[LIN 01] Steve Kingstone(2005) ”Brazil adopts open-source software” (Cited 20 feb 2010)



[LIN 02] Nyteknik.se(2007) ”Tyskland väljer Linux”. (Cited 20 feb 2010)



[LIN 03] Linux.org(2007) ”About Linus Torvalds”. (Cited 20 feb 2010)



BILAGOR


Exempel på COBOL-kod:

ADD DEPOSIT-AMOUNT TO ACCOUNT-BALANCE GIVING ACCOUNT-BALANCE

vilket kan förkortas ned till

COMPUTE ACCOUNT-BALANCE = ACCOUNT-BALANCE + DEPOSIT-AMOUNT

Värt att notera är ordet 'COMPUTE'. Liksom nutidens version, '#include math.h' eller liknande så laddar den in alla matematikvertygen. Detta försämrade prestandan då den var tvungen att pausa uträkningen genom att ladda in alla verktyg först, inte bara de som behövdes.

Ett exempel på multiplikation med COBOL:

$ SET SOURCEFORMAT"FREE"

IDENTIFICATION DIVISION.

PROGRAM-ID. Multiplier.

* Example program using ACCEPT, DISPLAY and MULTIPLY to

* get two single digit numbers from the user and multiply them together

DATA DIVISION.

WORKING-STORAGE SECTION.

01 Num1 PIC 9 VALUE ZEROS.

01 Num2 PIC 9 VALUE ZEROS.

01 Result PIC 99 VALUE ZEROS.

PROCEDURE DIVISION.

DISPLAY "Enter first number (1 digit) : " WITH NO ADVANCING.

ACCEPT Num1.

DISPLAY "Enter second number (1 digit) : " WITH NO ADVANCING.

ACCEPT Num2.

MULTIPLY Num1 BY Num2 GIVING Result.

DISPLAY "Result is = ", Result.

STOP RUN.



Referens: http://www.csis.ul.ie/cobol/examples/Accept/Multiplier.htm




Yüklə 0,5 Mb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə