Abstract
Det går flere linjer fra filosofi til informatikk. En av disse linjene
har utgangspunkt i Freges arbeid med logikk og språkfilosofi. En annen
linje har utgangspunkt i Husserls teori om mental representasjon av
objekter. I oppgaven tegner jeg opp disse linjene, og påpeker hvilken
nytte vi som informatikere kan ha av å kjenne til dem.
Frege er grunnleggeren av moderne logikk. Hans brudd med den klassiske
logikken besto i en ny måte å analysere logiske utsagn på. Oppgaven
tar innledningsvis for seg hvordan Frege tenkte seg at den logiske
strukturen til ethvert utsagn gjenspeiler det ontologiske skillet
mellom funksjon og objekt. Videre tar oppgaven for seg
funksjonsbegrepet hos Frege i forhold til funksjonsbegrepet innenfor
hhv. matematikk og informatikk. Innenfor matematikk er en funksjon en
mengde av ordnede par. Dette bryter med Freges funksjonsbegrep. For
Frege kan ikke argumentverdier inngå i funksjonen. Frege betrakter en
funksjon som noe "umettet". Funksjonen må "mettes" med en
argumentverdi for å bli et hele.
Innenfor informatikk betrakter vi etter min mening funksjonen som en
produsent: Når vi definerer funksjonen beskjeftiger vi oss med den
mekanismen som skal gjøre at funksjonen produserer riktige
funksjonsverdier. Når vi anvender funksjonen forventer vi at den skal
produsere returverdier. Jeg hevder at Freges funksjoner kan betraktes
som kunnskapsmoduler, og at de er noe annet og mer grunnleggende enn
funksjoner slik vi ser dem innenfor informatikk. I Freges teori er det
de ufullstendige uttrykkene som viser til umettede funksjoner. De
ufullstendige uttrykkene er resultater av oppsplitting av sammensatte
fullstendige uttrykk. Teorien om oppsplitting av uttrykk har etter min
mening en nytteverdi når vi skal lage funksjonsdefinisjoner innenfor
informatikk. I prinsippet kan flere mulige mekanismer gi en funksjon
den funksjonaliteten vi ønsker. Jeg vil hevde at de ufullstendige
uttrykkene er beskrivelser av slike mekanismer. Med andre ord vil det
å ha kjennskap til et stort omfang ufullstendige uttrykk gi et
tilsvarende stort repertoar av mekanismer vi kan velge blant for å gi
en funksjon dens tiltenkte funksjonalitet.
Oppgaven sammenlikner videre funksjonsbegrepet hos Frege med
funksjonsbegrepet hos Church. Jeg viser også at Church utviklet den
matematiske kalkylen lambda-kalkyle med bredt utgangspunkt i den
analysen Frege gjorde rundt logiske utsagn. Men selv om Church bygget
sin kalkyle på mange av Freges ideer, har han ikke det samme
funksjonsbegrepet som Frege har. Churchs funksjonsbegrep er det samme
som det vi finner i matematikk.
Churchs typede lambda-kalkye er den matematiske formalismen som ligger
til grunn for funksjonelle programmeringsspråk. Ett av disse språkene
er Haskell. Jeg tar for meg de viktigste språklige trekkene i Haskell
og viser noen sammenhenger mellom disse og elementer i Freges analyse
av utsagn. Jeg poengterer at funksjonelle programmeringsspråk hviler
på ideer som Frege utarbeidet for sin logikk. Blant disse ideene er
ideen om at en variabel er en plassholder for et objekt, ideen om at
funksjonen kan ha alle slags objekter som argument- og
funksjonsverdier og ideen om at et sammensatt fullstendig uttrykk er
en applikasjonsterm.
Avslutningsvis behandler oppgaven representasjon av objekter. Frege ga
en analyse av tekstlig representasjon av objekter og Husserl ga en
analyse av mental representasjon av objekter. Jeg argumenterer for at
navnet betraktet som syntaktisk objekt spiller den samme rollen i
tekstlig representasjon av et objekt som "den bestembare X" spiller i
mental representasjon av et objekt. Begge størrelser representerer
objektet direkte uten å fortelle noe om objektets egenskaper. Jeg
påpeker at vi som informatikere kan dra nytte av både Freges og
Husserls analyse når vi skal orientere oss om hvordan vi best kan
representere objekter i formelle modeller.