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