Om syntaks Herman Ruge Jervell ITSLP 1100 – vår 2008 Om syntaks Herman Ruge Jervell
Datamaskiner som syntaksmaskiner Nøyaktige Raske Små Stort lager Mest avansert teknologi Datamaskiner som modell
Nøyaktige Klarer ikke å måle veldig nøyaktig – 10-9 . Datamaskiner er mye mer nøyaktig enn det vi får med fysiske målinger. Hugs> product [1 .. 500] 1220136825991110068701238785423046926253574342803192842192413588385845373153881997605496447502203281863013616477148203584163378722078177200480785205159329285477907571939330603772960859086270429174547882424912726344305670173270769461062802310452644218878789465754777149863494367781037644274033827365397471386477878495438489595537537990423241061271326984327745715546309977202781014561081188373709531016356324432987029563896628911658974769572087926928871281780070265174507768410719624390394322536422605234945850129918571501248706961568141625359056693423813008856249246891564126775654481886506593847951775360894005745238940335798476363944905313062323749066445048824665075946735862074637925184200459369692981022263971952597190945217823331756934581508552332820762820023402626907898342451712006207714640979456116127629145951237229913340169552363850942885592018727433795173014586357570828355780158735432768888680120399882384702151467605445407663535984174430480128938313896881639487469658817504506926365338175055478128640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Raske og små Maskiner med klokke 2 GHz Lyset går 15 cm Ingen signaler når lenger enn 15 cm Maskiner må være små for å være raske
Stort lager Enorm utvikling 1 kontorist skriver på maskin 1 kilobyte i timen 1750 timer i året 40 år 70 megabyte som et livsverk Vi har passert kilobyte, megabyte, gigabyte, terrabyte
Måleenheter Slå opp i web på Powers of ten http://www2.sims.berkeley.edu/research/projects/how-much-info/datapowers.html http://micro.magnet.fsu.edu/primer/java/scienceopticsu/powersof10/ http://www.gofish.com/player.gfp?gfid=30-1025863
Mest avansert teknologi 1650 – fontener og sluser 1800 – gnister og elektrisitet 1900 – dampmaskiner og mekanikk 1940 – telefonsentraler og hullkort Nå – datamaskiner Vi bruker den mest avanserte teknologien for å beskrive mennesker. Mennesket som en informasjonsprosessor.
Beskrive med syntaks SIVILISASJONSPROSESSEN Lyd – tegn – alfabet Varer – penger Terreng – sti – vei – bane Byråkrati Håndverk – fabrikker Sykdommer Arbeid
Syntaks Drøm om universalspråk Språk: lingua characteristica Kalkyle: calculus ratiocinator Leibniz 1700 Frege 1879
Syntaktisk kalkyle Gottfried Wilhelm von Leibniz 1646 - 1716 Gottlob Frege 1848 - 1925 Alan Turing 1912 - 1954
Turingmaskin - 1936 Hva er en beregning ? Alfabet av tegn – nok med 0 1 Regnemedium – tape med ruter En beregner – computor - ser en rute Leser tegn t i ruta Er i tilstand q Skriver nytt tegn Ny tilstand Beveger seg høyre/venstre/stopp Endelig alfabet, tilstander, skrevne ruter
Om turingmaskiner Det er et gap mellom å definere en beregning og Kan realiseres elektronisk Viktigste teoretiske modell av datamaskiner Analyserer beregninger på tape – trinn for trinn Turing viste at det var problemer som turingmaskiner ikke kunne løse Stoppeproblemet ikke løsbart Gitt maskin M og tape T Kan vi avgjøre om M stopper satt i gang på T Det er et gap mellom å definere en beregning og å finne terminalegenskapene ved beregningen Intensjonal – definert ved program Ekstensjonal – definert ved input/output
Hva regnes på ? Tall Datastrukturer Lister, trær, stakker, arrays, … Unære tall 1 11 111 1111 11111 … Binære tall 0 1 10 11 100 101 110 … Reelle tall 2.7182… 3.14159… Datastrukturer Start, konstruktorer Lister, trær, stakker, arrays, … Logiske utsagn Algoritmer og datastrukturer
Logiske utsagn Utsagn – har sannhetsverdi dvs er enten sann eller gal Konnektiver – og, eller, ikke, hvis – så Kvantorer – for alle, det fins Predikater og relasjoner Funksjoner og individkonstanter Variable
Utsagn Noe som har sannhetsverdi Meget spesiell form for utsagn Vi regner på sannhetsverdiene og ser bort fra mye som hører med til forståelsen av setningen Kan uttrykke dette med andre utsagn
Konnektiver Sannhetsfunksjoner Konjunksjon: A B Disjunksjon: A B Negasjon: A Kondisjonal: A B De giftet seg og fikk barn Om månen er en gul ost, så er Ola 21 år
Kvantorer - Frege Alle mennesker puster Fins pattedyr som legger egg x. Menneske(x) Puster(x) Fins pattedyr som legger egg x. Pattedyr(x) Egg(x) Variablene finnes ikke i dagligspråket Relasjon – predikater med flere argumenter
Predikatlogikk Det er gitt et formelt språk som inneholder et bestemt antall Relasjonstermer (inklusive predikater og utsagn) Funksjonstermer (inklusive individer) Variable Logiske termer – konnektiver og kvantorer -fast tolking Ikke-logiske termer – relasjoner og funksjoner – må gis tolking
Semantikk for predikatlogikk En tolkning er gitt ved Et univers U Sannhet/galhet av predikater i U Funksjoner fra U til U Et utsagn er gyldig om det er sant i alle tolkninger
Gyldig Gyldig: Alle tolkninger gir verdien sann Verifiserbar: Fins en tolkning som gir verdien sann Falsifiserbar: Fins en tolkning som gir verdien gal Kontradiktorisk: Alle tolkninger gir verdien gal
Oppsummering Forutsetter et skille mellom logiske og ikke-logiske termer Utsagnslogikk – enkel – holde orden på kombinasjoner av sannhetsverdier Predikatlogikk – ikke avgjørbar, men fins en kalkyle Kan lage en kalkyle for ”gyldighet” ”Gyldighet” er enklere enn ”sannhet”
Freges tre nivåer Syntaks F Semantikk Pragmatikk F F Kan gjenkjenne tegn Semantikk Skjønner betingelsene for at F er sann Pragmatikk Vet konsekvensene av at F er sann Selv etter at en har skjønt et utsagn er det mye en kan gjøre med det – vise at noe er sant, vise at noe er usant, bløffe, lyve, angre, true, love, … F F
Freges tre gap Fra det fysiske til det syntaktiske Fra det syntaktiske til det semantiske Fra det semantiske til det pragmatiske Disse gapene kan bare overstiges ved at vi foretar sprang
SLUTT FØRSTE DOBBELTTIME
ANDRE DOBBELTTIME Om syntaks Syntaksmaskiner Hva kan beskrives med syntaks ? Sivilisasjonsprosessen Ekstensjonal / intensjonal Finne syntaktiske kalkyler Forstå syntaktiske kalkyler
Kunstig intelligens Ønsker å regne på menneskelige aktiviteter som Resonnering Læring … Hovedproblem: Lage fornuftige syntaktiske kalkyler Dette gjøres i mange vitenskaper
Søking Gitt Finn vei til mål Legge inn motpart – to person spill problemområde start Mål Finn vei til mål Legge inn motpart – to person spill
Planlegging Kan sees som et søkeproblem Finne best mulig plan eller bare finne en god nok plan Hvor mye binder foreløpige valg – søking uten backtracking
Resonnering Ofte brukes logikk Språk – representere problemet Kalkyle – utføre resonneringstrinn Mekanisme – data + kontroll
Læring Finne enklest mulig forklaring av data Ofte inngår søk Parameterjustering Hva slags læring blir simulert
Menneske + maskin Menneske + maskin er et system Damen har semantikk Oversettes til syntaks – tastes inn på maskin Maskinen utfører syntaktisk kalkyle Syntaktisk resultat på skjerm Oversettes av damen til semantikk Menneske + maskin er et system
Kalkyler Vi definerer en syntaktisk kalkyle ved å si hvordan overgangen er fra trinn til trinn Vi er interessert i egenskaper som Invarians: uansett hvilken input så .. Spesifikasjon: for alle input I fins output O slik at det er en viss sammenheng mellom I og O Terminering: For alle input I så terminerer beregningen
Ekstensjonal/intensjonal Gap mellom vår definisjon av kalkyle Program, transisjoner, … De egenskapene vi er interessert i Invarians, terminering, spesifikasjon, … Skiller mellom Ekstensjonal: input/output Intensjonal: program
Endelig automat Ser på turingmaskiner Endelig automat – maskinen beveger seg bare i en retning, computoren har et endelig antall tilstander Noam Chomsky: eksempel i lingvistikk – undersøke en setning ved å bare bevege seg i en retning uten å gå tilbake Klarer ikke parenteser
Kontekstfritt språk Turingmaskin som beveger seg i en retning, men computoren har hjelp av en stakk Klarer parentesspråk Parenteser vesentlig i dataspråk Håndtere funksjonskall Flere typer parenteser spiller liten rolle – kan ta dem med uten at ting blir mer komplisert
KONTEKSTSENSITIVT SPRÅK Turingmaskin uten stakk men der hele beregningen skjer innenfor inputstringen Det er sammenheng mellom klasser av språk og begrensinger på turingmaskiner Mange muligheter
Ressurser Tid: antall trinn turingmaskinen bruker Rom: antall ruter turingmaskinen bruker Dette er robuste mål. Bruk av turingmaskiner er ingen begrensning Ofte er en trade-off mellom tid og rom
Syntaktiske kalkyler Utsagnslogikk – OK Predikatlogikk – nesten OK Problemer med følgende univers En datastruktur som univers Mengder som univers Reelle tall
Utsagnslogikk Bruker sannhetstabeller – med n utsagnsvariable får vi 2n tilfeller Åpent spørsmål om vi kan gjøre bedre Et av de store åpne problemene i teoretisk informatikk er om vi kan lage kalkyler for gyldighet i utsagnslogikk som er bedre enn sannhetstabeller. (P ≠ NP)
Predikatlogikk Det fins kalkyler for gyldighet i predikatlogikk. Om et utsagn er gyldig, så vil kalkylen finne det. Men om utsagnet ikke er gyldig, så har vi ingen garanti for at kalkylen vil finne det. Dette er en variant av Entscheidungsproblem. Turing lagde sine maskiner for å vise at det var uavgjørbart.
Datastruktur Våre datastrukturer er ganske like våre syntaktiske kalkyler. I en syntaktisk kalkyle har vi Et endelig antall aksiomer Et endelig antall slutningsregler som tillater oss å vise nye utsagn gitt utsagn som er alt vist. Dette minner om start / konstruktorer i en datastruktur.
Kurt Gödel 1906 - 1978
Ufullstendighet Kurt Gödel viste i 1931 at under ganske enkle forutsetninger kan en ikke lage noen syntaktisk kalkyle for en datastruktur. Dette kalles Gödels ufullstendighetsteorem. Språket må være mer komplisert enn det språket skal beskrive.
Mengder Dette er måter å skrive mengder på {1,2,5} = {1,1,5,2} { x | x er et primtall } Med det har en en praktisk syntaks som kan brukes til å beskrive en del mengder A B , A B
Mengdelære Vi har ingen fullgod syntaks for å beskrive mengder. Heller ingen syntaktisk kalkyle for dem. Å beskrive endelige mengder klarer vi like bra som det å beskrive en datastruktur
Reelle tall Verken syntaktisk språk eller syntaktisk kalkyle. Store problemer med reelle tall på datamaskiner. Som oftest bruker en bare tall avrundet og avskåret. Det betyr at en bare bruker en variant av de naturlige tall i stedet for de reelle tall.
Syntaksmaskiner Datamaskiner er syntaksmaskiner Ikke alt kan representeres som syntaks og som syntaktiske kalkyler Sivilisasjonsprosessen Ekstensjonalt / intensjonalt Datastrukturer, mengder, reelle tall Men stor gevinst når vi klarer å representere noe som syntaks
Filosofi Nominalisme – alt er bare syntaks Konstruktivisme – bruker forståelige konstruksjoner når vi bygger opp syntaks Platonisme – direkte tilgang til semantikk
Nominalisme Ingen plass for semantikk Styrer syntaktiske konstruksjoner med semantisk forståelse Hvorfor skal vi stole på bevis ?
Konstruktivisme Hva er en akseptabel konstruksjon Ikke en enkel teori, men en hærskare av teorier Ny forståelse av konnektiver, av kvantorer, av gyldighet – kan ikke bygge på sann/gal
Platonisme Problemer med paradokser Russells paradoks: La R = { x | x x } . Vi får da R R R R . Motsigelse. Uklart hvilken forståelse av semantikk det er som platonistene hevder at de har – og uklart hva en slik forståelse kan brukes til
Læren om det å tenke ut fra forutsetninger Logikk Læren om det å tenke ut fra forutsetninger
SLUTT