DATORER OCH PROGRAM Programmerade maskiner Program beteendeplan och beteendegenerator Generalitet och portabilitet Datorn är en symbolmaskin men kan ha såväl symboliska som fysiska gränssnitt till omvärlden Universalitet 41
Programmerade maskiner Tidiga exempel Jacquard-vävstol (tidigt 1800-tal) vissa typer av speldosor och klockspel; självspelande pianon 42
Program Idén är att från en maskin separera ut en särskild, lätt utbytbar del som kontrollerar maskinens beteende den utbytbara delen är program den permanenta delen av maskinen är processor processorn exekverar programmet; det betyder att den beter sig i enlighet med och som en effekt av programmet Ett program är dels en beteendeplan som beskriver ett önskat beteende; dels en beteendegenerator som kan orsaka det beskrivna beteendet (givet en passande processor) Släpper man något av villkoren är det inte längre ett program Ex: monteringsanvisningen för en IKEA-möbel beskriver men orsakar inte hopsättningen Ex: sandstrandens topologi orsakar men beskriver inte en myras rörelse över sanden Simon s ant, Herbert Simons berömda liknelse, illustrerar hur komplext beteende inte behöver härröra ur agentens egen inre komplexitet, utan kan uppstå i samspel med omgivningen 43
Orsak och verkan 44 Ta ett självspelande piano som exempel: Hålremsan passerar en avläsningsanordning med fjädrande kontakter som ligger an mot hålremsan, så att en strömkrets sluts när ett hål passerar en av brytarna, vilket orsakar en elektrisk ström, som i sin tur påverkar exempelvis en elektromagnet, och händelsekedjan fortsätter fram till dess att en ton ljuder på avsett sätt Endast den sista händelsen hör till det programmerade, det avsedda beteendet Betraktat som ett program beskriver hålremsan tonbeteendet, medan andra händelser i orsakskedjan inte är representerade av programmet Mellanliggande händelser är instrumentella för tonens ljudande Andra effekter orsakade av programmet som varken är representerade eller instrumentella kallar vi sidoeffekter Ex: det klickande ljud som uppstår när ett hål i hålremsan passerar förbi en kontakt; den värme som skapas av den elektriska strömmen i elektromagneten De instrumentella händelserna är nödvändiga för att åstadkomma det avsedda beteendet, men den exakta kedjan av instrumentella händelser som leder från program till avsett beteendet är oviktig Ex: byt den elektriska hålremsläsaren mot en optisk som fungerar med ljusstrålar och fotoceller: samma program kan generera samma beteende som förut trots att processorn modifierats och orsakskedjan nu är en annan
Programmering Att programmera innebär alltså att utforma och skapa beteenden programmeraren behöver fokusera det avsedda beteendet, inte orsakskedjorna programspråket, det system för att representera beteende, det symbolsystem som används i programmet, bör alltså fokusera just på det avsedda beteendet Ju mer sofistikerat beteende man vill skapa, och ju mer effektiv man vill vara i programmeringsarbetet, desto större behov av ett väl utvecklat programspråk Notera: programmet eliminerar det potentiella glapp mellan plan och genomförande som finns i allt mänskligt planföljande: som det är programmerat, så blir det ökad kontroll ökad komplexitet möjlig men ställer höga krav på detalj och exakthet i programmet, programspråket och processorn och ger ingen flexibilitet utöver den som är inprogrammerad 45
Generalitet, portabilitet, avmaterialisering Programmerade maskiner utmärks av 1 Generalitet samma maskin kan exekvera många olika program dvs. många olika beteenden kan genereras genom att endast variera programmet 2 Portabilitet samma program kan köras på många olika maskiner dvs. samma beteenden kan genereras genom att att välja samma program Programmet är relativt sett lätt, litet, enkelt att förändra och byta ut; lätt och billigt att kopiera och distribuera outslitligt (dvs. mediet kan nötas, men det kan ju ersättas av en kopia); och med en avancerad processor (läs: datorn) kan programmet vara mycket komplext utan risk att det börjar slira eller kärva Dessa fördelar ger en avmaterialiserande trend kan man få samma eller bättre funktion med mer programvara och mindre maskinvara, så går utvecklingen med viss ekonomisk nödvändighet i den riktningen 46
Vad skiljer en jacquardvävstol och ett självspelande piano från en dator? 1 2 Datorer är symbolmaskiner Datorer är universella processorer 47
Datorn är en symbolmaskin Det vill säga, datorer är maskiner för att producera kontrollerade symboliska beteenden (med andra ord beräkningar) Normalt är dessa symboliska skeenden att betrakta som interna till datorn men: Genom symboliska gränssnitt kan datorer interagera symboliskt med sin omgivning vilket förutsätter att det finns något slags agenter på utsidan som förstår sig på symbolerna Genom fysiska gränssnitt kan datorer interagera fysiskt med sin omgivning kräver inga agenter i omgivningen 48
Interaktion med omgivningen Isolerad dator Dator med fysiska gränssnitt 49 Dator med symboliska gränssnitt
Polhems mekaniska alfabet Christopher Polhem (1661 1751) utarbetade ett mekaniskt alfabet : olika elementära sätt att omvandla rörelsetyper (roterande, fram och återgående, etc.), rörelseriktningar, hastigheter och krafter mellan varandra Genom att kombinera bokstäver i alfabetet kunde man lösa mer komplicerade uppgifter: konstruera en klocka, en gruvpump, en kraftöverföringsmekanism Idealiskt skulle man på detta sätt kunna lösa varje tänkbart mekaniskt formulerat problem givet den problemlösningsförmåga och kreativitet som krävs för att finna de rätta kombinationerna! och givet att en lösning är möjlig! 50
Mekanisk vs symbolisk universalitet Polhem drömde om mekanisk universalitet en grundläggande repertoar av mekanismer som kunde kombineras till att lösa varje tänkbar mekanisk uppgift (som har en mekanisk lösning) Exempel mekaniska uppgifter när axel A vrids, så vrids den parallella axeln B en fjärdedel så mycket, i motsatt riktning när axeln A roterar rör sig B fram och tillbaka 51
Mekanisk vs symbolisk universalitet Hilbert, Gödel, Turing, Kleene, Church, Markov, mfl, drömde om symbolisk universalitet en grundläggande repertoar av symboliska mekanismer som kunde kombineras till att lösa varje tänkbar symbolisk uppgift (som har en symbolisk lösning) Exempel symboliska uppgifter när talsymbolen X har ett värde så har talsymbolen Y ett värde som är fjärdedelen så stort när X är en andragradsekvation så är Y och Z dess rötter när X är en engelsk text så är Y en översättning av X till franska Medan Polhems dröm i praktiken förblev en dröm, är symbolisk universalitet (nära nog) idag realiserad genom datorn 52