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 1 © Lars-Erik Janlert 2007 Programmerade maskiner Tidiga exempel Jacquard-vävstol (tidigt 1800-tal) vissa typer av speldosor och klockspel; självspelande pianon 2 © Lars-Erik Janlert 2007 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 programmet den permanenta delen av maskinen är processorn processorn exekverar programmet; det betyder att den beter sig i enlighet med och som en effekt av programmet 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 Ett program är dels en beteendeplan som beskriver ett önskat beteende; dels en beteendegenerator som kan orsaka det beskrivna beteendet (givet en passande processor) 3 Jfr. Simon’s ant, Herbert Simons berömda liknelse som ska illustrera hur komplext beteende inte behöver härröra ur agentens egen inre komplexitet, utan kan uppstå i samspelet med omgivningen © Lars-Erik Janlert 2007 Orsak och verkan Ta ett hålremsstyrt 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 Det är bara den sista händelsen som 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 4 De mellanliggande händelser som leder från hålremsan till tonen är instrumentella för tonens frambringande 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 det avsedda beteendet ska uppstå, men exakt vilken kedja av instrumentella händelser som leder från program till avsett beteendet är godtyckligt Ex: byt den elektriska hålremsläsaren mot en optisk som fungerar med ljusstrålar och fotoceller, och programmet kan generera samma beteende som förut trots att orsakskedjan nu är en annan © Lars-Erik Janlert 2007 Programmering Att programmera innebär således att utforma och skapa beteenden programmeraren behöver fokusera avsett beteende, inte orsakskedjor 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, desto större behov av ett väl utvecklat programspråk 5 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 ställer höga krav på detalj och exakthet i programmet, programspråket och processorn ger ingen flexibilitet utöver den som är inprogrammerad © Lars-Erik Janlert 2007 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 välja samma program och programmen är billiga att reproducera och lätta att transportera 6 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 © Lars-Erik Janlert 2007 Vad skiljer ett självspelande piano från en dator ? 1. Datorer är symbolmaskiner 2. Datorer är universella processorer 7 © Lars-Erik Janlert 2007 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, vanligtvis människor Genom fysiska gränssnitt kan datorer interagera fysiskt med sin omgivning kräver inga agenter i omgivningen 8 © Lars-Erik Janlert 2007 Interaktion med omgivningen Dator med fysiska gränssnitt Isolerad dator Dator med symboliska gränssnitt 9 © Lars-Erik Janlert 2007 Polhems mekaniska alfabet Christopher Polhem (1661–1751) utarbetade ett ”mekaniskt alfabet”: olika elementära sätt att omvandla rörelsetyper (roterande, fram och åter-gå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 mekaniska 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! 10 © Lars-Erik Janlert 2007 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 dubbelt så mycket, i motsatt riktning när axeln A roterar rör sig nålen B upp och ned, varannan gång bortom, varannan gång hitom neutralläget Hilbert, Gödel, Turing, Kleene, Church, Markov, med flera, 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 dubbelt så stort men negerat när X är en engelsk text så är Y en översättning av X till franska En skillnad är att medan Polhems dröm i praktiken förblev en dröm, är symbolisk universalitet (nära nog) idag realiserad genom datorn 11 © Lars-Erik Janlert 2007