25. januar: Fra ingenting til overalt - en reise i informatikkens historie - Del I

Foredrag ved Roger Antonsen og Morten Dæhlen.

Roger Antonsen og Morten Dæhlen

Oppsummering skrevet av Morten Dæhlen:

Informatikkens historie er stor og omfattende, så for at dette ikke skal bli for langt vil vi holde oss til noen høydepunkter. Viktige stikkord i vår reise gjennom historien er representasjon av informasjon og oppskrifter (algoritmer).

Tallene og skriftsspråkene

I tallteorien er null overgangen mellom de positive og negative tallene. Enda viktigere er null i regning med tall (aritmetikk og algebra). Uten null vil regnereglene bli svært kompliserte. Prøv f.eks. å multiplisere to romertall! Oppdagelsen eller forståelsen av “null” var nøkkelen til vårt moderne tallsystem. Med våre ti fingre fikk vi ti-tallsystemet og når vi kom til ti fant man rett og slett ut at man kunne ha 1 tier og 0 enere, dvs. skrive tallet 10. Koden var løst og det viste seg raskt at systemet også var velegnet for regning (addisjon, subtraksjon, multiplikasjon, divisjon).  Hadde vi hatt 8 fingre hadde “10″ vært 8, og i det innerste av en datamaskin er “10″ lik 2.  Vårt tallsystem og oppdagelen av tallet NULL skjedde i India ca. 400 år f.Kr, men kom først til Europa rundt år 1100. Hvor vakkert er det ikke når “ingenting” (null)  betyr så mye! All informasjon i datamaskin er i sin mest basale form representert gjennom to tall – “0″ og “1″.

Et språk er et system vi bruker for å kommunisere. Et skriftspråk er et system av tegn vi bruker for å kommunisere. Skriftspråk er i konstant endring påvirket av talespråk og andre skiftspråk. I motsetning til et talespråk som utvikler seg blant mennesker er et skriftspråk en oppfinnelse. Det første kjente skriftspråk heter kileskrift og stammer fra Babylon omkring 3200 år f.Kr. De to største skriftspråkene i dag er engelsk og kinesisk. Det norske alfabetet har 29 bokstaver og bygger på det latinske alfabet som ble etablert rundt 600 år f. Kr. Vi kommuniserer med datamaskinen gjennom vårt eget naturlige språk og vi forteller datamaskinen hva den skal gjøre gjennom forskjellige programmeringsspråk.

Abakus

Abakus, eller kulerammen, ble utviklet og brukt i en rekke kulturer verden over. De eldste kulerammene stammer trolig fra Mesopetania omlag 2500 år  f.Kr. Kulerammen er et hjelpemiddel for å regne, og den er fortsatt i aktiv bruk i Japan og Kina. Datamaskinen er også et hjelpemiddel for å regne, men det er vel å strekke strikken litt lang å si at kulerammen er en reell forløper til datamaskinen!

Drømmen om en maskin som kunne regne

Det er vanskelig å tenke seg at noen drømte om å lage en regnemaskin før matematikkens grunnleggende regnearter var etablert. Den første kjente regnemaskinen som kunne utføre alle de fire grunnleggende regneartene stammer fra Gottfried Leibniz (1646-1716) i 1694. Før det hadde Leonardo da Vinci (ca. 1500) utviklet en maskin som kunne legge sammen tall (addere), og Wilhelm Schickard (1623) og Blaise Pascal (1642) konstruert maskinere som også kunne trekke fra (subtrahere).

Gottfried Leibniz, som gjerne omtales som det siste universalgeniet, drømte om et universelt språk (characteristica universalis) som kunne brukes til å representere og regne på all menneskelig kunnskap. Hans drømte også om en kalkyle (calculus ratiocinator) for å regne på uttrykk i dette språket, og hans regnemaskin var et første forsøk på å realisere denne drømmen. Alle disse regnemaskinene fra 1600-tallet manglet imidlertid noe vesentlig som var nødvendig for at de kunne kalles reelle forløpere til datamaskinen, og på begynnelsen av 1800-tallet skjedde det noe?

Datamaskinens bestefar

I 1820 tegnet den engelske matematikeren Charles Babbage (1791-1871) en regnemaskin som inneholdt mesteparten av de funksjonene vi har i en datamaskin i dag. Han var inspirert av utviklingen av Jacquards mekaniske vev fra 1700-tallet, som kunne kontrolleres med hullkort. Noen år senere presenterte Babbage maskinen han kalte differansemaskinen (The Difference Engine) for “The Royal Astronomical Society” i England. Maskinen skulle fremstille logaritmetabeller der logaritmeberegningen ble tilnærmet av polynomer og en numerisk metode (differansemetoden). Babbage fikk penger for å lage maskinen, men klarte ikke å konstruere den. Han klarte ikke å få de mekaniske delene til å fungere. Material- og produksjonsteknologien var ikke moden. Essensen i Babbage sin maskin var at denne maskinen trengte et minne, noe vi vet at alle datamaskiner trenger. Noen år senere (1833 og 1842) presenterte han en enda mer avansert maskin (The Analytic Engine) som også kunne programmeres! Charles Babbage kalles gjerne for datamaskinens bestefar.

The Analytic Engine

Verdens første programmerer

Augusta Ada King, Countess of Lovelace (1815 -1852), i moderne tid kjent som Ada Lovelace, kalles gjerne den første programmerer. Hun var datter av det kjente poeten Lord Byron og møtte Charles Babbage i 1833. Helt frem til sin tidlige død i 1852, arbeidet hun med å utvikle algoritmer som kunne benyttes av den analytiske maskinen (The Analytic Engine) til Charles Babbage. I forbindelse med at hun oversette Babbages arbeider til fransk, utarbeidet hun algoritmer for å beregne de såkalte Bernoulli-tallene, og det er for dette hun trekkes frem som verdens første programmerer. Programmeringsspråket Ada er oppkalt til ære for denne bemerkelsesverdige kvinnen.

Fra folketelling til “big business”

Holloriths hullkort

Hermann Hollerith (1860-1929) var en tysk-amerikansk statistiker som utviklet en tabulerende maskin basert på hullkort. Hollerith fant ut at tall kunne kodes ved å lage hull plassert i bestemte posisjoner (rader og kolonner) på et kort. Den tabulerende maskinen var konstruert slik at mekanikken kunne sortere kortene og telle antall kort med ulike kombinasjoner av hull. Som en del av systemet utviklet Hollerith  en mekanisme der han brukte en elektronisk forbindelse for å trigge en teller. Holleriths maskiner ble først brukt under folketellinger i USA. Mens den forrige folketellingen i USA (1880 folketellingen) tok 8 år ble den neste gjennomført på ett år (1890 folketellingen) takket være maskinene til Hollerith. Hermann Hollerith var grunnleggeren av firmaet Computing Tabulating Recording Corporation (CTR) som i 1911 ble fusjonert med tre andre selskaper. Dette fusjonerte selskapet  fikk i 1924 navnet International Business Machines Corporation (IBM).

Informatikkens far

I 1936 publiserte Alan Turing (1912-1954) artikkelen “On Computable Numbers”. Dette er Turings mest berømte verk der han definerer grunnlaget for datavitenskapen og informatikkfaget. Han gir her en formell presisering av hva en algoritme er ved å definere en maskin (senere kalt Turingmaskin) og si at en algoritme er nøyaktig det denne kan gjøre. Han dannet her mye av grunnlaget for analysen av avgjørbarhet i logikk og matematikk og klarte å si noe veldig presist om hvor grensen går for hva datamaskiner kan gjøre og for hva det fins algoritmer for. Turing hadde også andre viktige bidrag til IT-historien, bl.a. innen kodeteori (kryptering) og kunstig intelligens. Alan Turing kalles gjerne for informatikkens far.

Datamaskinens fedre og ENIAC

Matematikeren John von Neumann (1903-1957) regnes som en av verdenshistoriens skarpeste hjerner med et stort antall bidrag innen en rekke fagområder. Von Neumann var den trolig den første som gav en vitenskapelig fundert beskrivelse av hvordan kjernen i en datamaskin måtte se ut. Von Neumanns arbeider var inspirert av Alan Turing og de som bygget ENIAC – den første elektroniske datamaskinen.

ENIAC

Den tekniske utviklingen før og under andre verdenskrig var rask og omfattende og flere forskere verden over hadde tanker om hvordan de skulle bygge en elektronisk regnemaskin. Først ute var John Mauchly og J. Presper Eckert som i februar 1946 skrudde på strømmen på verdens første elektroniske datamaskin. Navnet på denne maskinen var ENIAC (Electronic Numerical Integrator And Computer). Mauchly og Eckert var også sentrale i utviklingen av EDVAC, BINAC og UNIVAC 1, som var den første datamaskin i kommersielt salg i USA.  Her var det en rekke bidrag til utviklingen av den første datamaskin, men det er ikke så galt å kalle trekløveret John von Neumann, John Mauchy og J. Presper Eckert for datamaskinens fedre!

NUSSE

Norges første datamaskin sto ferdig i 1954. Den ble bygget av Thomas Hysing og  fikk navnet NUSSE (Norsk Universell Siffermaskin Selvstyrt Elektronisk). NUSSE ble brukt av Nobelpris-vinnerne Ragnar Frisch (økonomi) og Odd Hassel (Kjemi). NUSSE står i dag utstilt på Teknisk Museum i Oslo.

NUSSE utstilt på Teknisk museum

 

Fra elektronisk regnemaskin til datamaskin

Fra den første spede begynnelse rett etter annen verdenskrig ble den elektroniske regnemaskinen gradvis utviklet til det vi i dag kaller en datamaskin. De elektroniske regnemaskinene var i starten store og prinsippet om 0-1 (strøm – ikke strøm) ble håndtert av radiorør. Etter hvert fant man ut at man kunne bruke transistorer og regnemaskinene ble mindre. Mot slutten av 1960 dukket opp  en ny teknologi – mikroprosessoreren. Historien om mikroprosessoren skal vi imidlertid komme tilbake til i del II av denne historien.

Programmeringsspråket som endret verden

Det er naturlig å avslutte denne delen av historien med  Ole-Johan Dahl og Kristen Nygaard. I 2001 fikk de Turing-prisen for oppfinnelsen og utviklingen av objekt-orientert programmering og programmeringsspråket Simula. Dette arbeidet ble utført på 1960-tallet og deres bidrag til informatikken regnes i dag som et av de mest betydningfulle forskningsresultater i det forrige århundre.

En datamaskin utfører det vi ber den om å utføre – vi gir datamaskinen instruksjoner! Disse instruksjonene plasseres i all hovedsak i datamaskinen gjennom bruk av et programmeringsspråk. I datamaskinens barndom var disse språkene enkle og utviklet med henblikk på at datamaskinen var en regnemaskin.  Etter hvert innså forskere som Dahl og Nygaard at maskinen kunne brukes til mye mer. De trengte derfor et programmeringsspråk som var bedre egnet for de oppgaver som skulle løses, for eksempel det å utvikle et styringssystem i en kaffemaskin eller banktjenester over internett.  Det praktiske problemets kompleksitet måtte på en effektiv og velorganisert måte kunne modelleres og plasseres i en datamaskin. Nøkkelen var objekt-orientering – en teknikk (eller metode) som gjorde det betydelig enklere å beskrive oppgaven (for eksempel styringssystemet i kaffemaskinen) i en datamaskin. Objekt-orientering brakte viktige elementer fra menneskets logikk inn i programmeringen og er i dag like grunnleggende innen informatikken som regnearten multiplikasjon er i matematikken.

Objekt-orientering er den mest brukte teknikk for utvikling av programvare i dag og enhver utdanning i informatikk (informasjonsteknologi) inneholder innføring i og bruk av objekt-orienterte teknikker. Arbeidet til Dahl og Nygaard har skapt verktøy og innsikt for systemutviklere over hele verden, og ikke minst gitt oss mulighetene til på en bedre måte å kunne utvikle gjenbrukbare, pålitelige og utvidbare IT-produkter.

Dahl og Nygaard realiserte sine resultater gjennom utviklingen av det første objekt-orienterte programmeringsspråket som fikk navnet Simula (forkortelse for Simulation language). Pionerarbeidet omkring objekt-orientering og utviklingen av Simula ble utført ved Norsk regnesentral i perioden 1961-1967.  Simula la grunnlaget for utviklingen av senere språk som Smalltalk, C++, Eiffel, Beta og ikke minst Java som i dag er det sentrale språket i utviklingen av anvendelser for internett.

 

For oppfinnelsen og utviklingen av objekt-orientering og programmeringsspråket Simula fikk Ole-Johan Dahl og Kristen Nygaard tildelt Turing-prisen for 2001. ACM (The Association for Computing Machinary), som deler ut prisen, skriver følgende i sin pressemelding av 4. februar 2002:

“The Association for Computing Machinery (ACM) has bestowed the 2001 A.M. Turing Award, considered the “Nobel Prize of Computing,” to Ole-Johan Dahl and Kristen Nygaard of Norway for their role in the invention of object-oriented programming, the most widely used programming paradigm currently in use.”

Prisen er oppkalt etter matematikeren og datamaskinpioneren Alan M. Turing. Han beskrev i 1936 en maskin, senere kalt turingmaskin, som utførte beregninger gjennom en serie forhåndsdefinerte regler. Beskrivelsen innholdt de fleste av de ideer som senere ble lagt til grunn for konstruksjon av den elektroniske datamaskin. I tillegg til Turing-prisen fikk Dahl og Nygaard også den prestisjefylte von Neumann-medaljen i 2002 for oppfinnelsen av objekt-orientert programmering og utviklingen av Simula.

 

Publisert 1. mars 2011 09:50 - Sist endret 7. feb. 2020 16:00
Legg til kommentar

Logg inn for å kommentere

Ikke UiO- eller Feide-bruker?
Opprett en WebID-bruker for å kommentere