BER AKNINGSBARHET F OR DATALOGER. Kent Petersson. Institutionen for Datavetenskap Goteborgs Universitet / Chalmers Goteborg, Sweden

Relevanta dokument
BERÄKNINGSBARHET FÖR DATALOGER

Tentamen i kurserna Beräkningsmodeller (TDA181/INN110) och Grundläggande Datalogi (TDA180)

Tentamen i kurserna Beräkningsmodeller (TDA181/INN110) och Grundläggande Datalogi (TDA180)

Tentamen i kurserna Beräkningsmodeller (TDA181/INN110) och Grundläggande Datalogi (TDA180)

En bijektion mellan två mängder A och B som har ändligt antal element kan endast finnas om mängderna har samma antal element.

Grundläggande logik och modellteori

Sista delen av kursen

Lars-Henrik Eriksson

Föreläsning 5. Deduktion

Föreläsning 8 i kursen Ma III, #IX1305, HT 07. (Fjärde föreläsningen av Bo Åhlander)

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska kunnas?

Anhållan om ändrad ersättning för vissa HST

Sista delen av kursen

Programspråkslingvistik. Sista delen av kursen. Ett programspråk

10. Mängder och språk

ÄNDLIGT OCH OÄNDLIGT AVSNITT 4

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Studieplan för utbildning på forskarnivå i datalogi

Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

9. Predikatlogik och mängdlära

MATEMATIKENS SPRÅK. Avsnitt 1

Grundläggande logik och modellteori

Övningshäfte 2: Induktion och rekursion

Datavetenskapligt program, 180 högskolepoäng

TDDC74 Programmering, abstraktion och modellering. Tentamen

7, Diskreta strukturer

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Lite additioner till Föreläsningsanteckningarna. 1 Tillägg till kapitel 1.

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Exempel på typer av datorspråk EXCEL

729G06 Logik FÖRELÄSNING 1 ANDERS MÄRAK LEFFLER IDA/HCS

Explorativ övning 4 ÄNDLIGT OCH OÄNDLIGT. Övning A

Föreläsning 5 5DV086 - Programspråk

Mängder och kardinalitet

Filosofisk Logik (FTEA21:4) föreläsningsanteckningar I. v. 2.0, den 24/4 2013

Grundläggande datalogi - Övning 9

Primitivt rekursiva funktioner och den aritmetiska hierarkin

Kursanalys för Programmeringsparadigm 2D1361, läsperiod 1 och 2 läsåret 2005/2006

DD1350 Logik för dataloger. Fö 7 Predikatlogikens semantik

Motivet finns att beställa i följande storlekar

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Kontextfria grammatiker

Introduktion till programmering. Programspråk och paradigmer

Tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610, onsdagen den 20 augusti 2014, kl

Grundläggande datavetenskap 4p

Programmering II (ID1019)

Explorativ övning 9 RELATIONER OCH FUNKTIONER

Matematik: Det centrala innehållet i kurserna i Gy 2011 i relation till kurserna i Gy 2000

1 Föreläsning Implikationer, om och endast om

Formell logik Kapitel 1 och 2. Robin Stenwall Lunds universitet

Sanningsvärdet av ett sammansatt påstående (sats, utsaga) beror av bindeord och sanningsvärden för ingående påståenden.

Rekursiva algoritmer sortering sökning mönstermatchning

SKOLFS. beslutade den -- maj 2015.

SJÄLVSTÄNDIGA ARBETEN I MATEMATIK

Matematikens grundvalar och programmering av datorer

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska ni kunna?

Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp

6 Rekursion. 6.1 Rekursionens fyra principer. 6.2 Några vanliga användningsområden för rekursion. Problem löses genom:

1.1. Fördjupning: Jämförelse av oändliga mängder

Datorlingvistisk grammatik

Tentamen i. TDDC67 Funktionell programmering och Lisp

Programmering, grundkurs

En bijektion mellan två mängder A och B som har ändligt antal element kan finnas endast om mängderna har samma antal element.

Exempel på typer av datorspråk EXCEL

Definition. Mängden av reguljära uttryck på alfabetet Σ definieras av. om α och β är reguljära uttryck så är (α β) ett reguljärt uttryck

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2

Instruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python)

Programmeringsteknik I

Dagens föreläsning Programmering i Lisp Fö 5

Presentation. Curriculum Vitae för Lars Kristiansson,

I kursen i endimensionell analys är mängden av reella tal (eng. real number), R, fundamental.

Sådana avbildningar kallar vi bijektioner mellan A och B (eller från A till B).

SKOLFS. beslutade den XXX 2017.

DD1361 Programmeringsparadigm. Carina Edlund

Kursinformation och schema för Lingvistik 6 hp 729G08 Ht 2011

Filosofisk Logik (FTEA21:4) föreläsningsanteckningar v , den 24/

Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium. v. 2.0, den 29/ III. Metalogik 17-19

Dataabstraktion. TDDD73 Funktionell och impterativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap

Tommy Färnqvist, IDA, Linköpings universitet. 1 Kursadministration 1. 2 Introduktion Varför logik? Satslogik... 2

Datastrukturer och algoritmer

Programmering för alla!

Lite Kommentarer om Gränsvärden

Formell Verifiering. Hur vet man att ett system fungerar korrekt? Lisa Kaati

Övningshäfte 3: Funktioner och relationer

Lösningar till utvalda uppgifter i kapitel 4

Bedömningsunderlag för Verksamhetsförlagd utbildning (VFU)

FÖRELÄSNING 2, TDDC74, VT2018 BEGREPP PROBLEMLÖSNING MED HJÄLP AV FALLANALYS PROBLEMLÖSNING MED HJÄLP AV REKURSION

Kursplan ENGELSKA. Ämnets syfte. Mål. Innehåll. Insikt med utsikt

Kursinformation och schema för Lingvistik 6 hp 729G08 Ht 2009

MA2047 Algebra och diskret matematik

DD1350 Logik för dataloger. Vad är logik?

7, Diskreta strukturer

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

Objektorienterad modellering och diskreta strukturer. 13. Problem. Sven Gestegård Robertz. Datavetenskap, LTH

Mängder, funktioner och naturliga tal

KURSUTVÄRDERING CD5560 FABER VT2003

Sats. Om t är en rätvinklig triangel så är summan av kvadraterna på kateterna i t lika med kvadraten på hypotenusan.

Föreläsning 9 Exempel

Transkript:

BER AKNINGSBARHET F OR DATALOGER Fran till P Kent Petersson Institutionen for Datavetenskap Goteborgs Universitet / Chalmers 412 96 Goteborg, Sweden

ii Kent Petersson Department of Computer Science Goteborgs Universitet / Chalmers 412 96 Goteborg (e-mail: kentp@cs.chalmers.se) Copyright c 1987 Kent Petersson

iii Forord Denna bok har vaxt fram ur forelasningsanteckningar som jag skrivit for kursen Teoretisk Datalogi som ingar i Matematikerlinjens tredje arskurs vid Goteborgs Universitet. Forelasningsanteckningarna har sin tur vaxt fram under de fyra ar som jag varit ansvarig for kursen. Anledningen till att jag borjade skriva egna anteckningar var att jag tyckte att de bocker som fanns tillgangliga inte tog upp amnet berakningsbarhet ur en datalogisk synvinkel. Det kandes inte meningsfullt att agna en stor del av kursen till att deniera syntax och semantik for en berakningsmodell (Turing-maskiner) som var sa olik de berakningsmodeller som studenterna var vana vid. I synnerhet inte nar problemen med att beskriva syntax och semantik for vanliga programmeringssprak ar sa centrala inom datalogi. Genom att valja en berakningsmodell som liknar ett vanligt programmeringssprak far man, som jag ser det, tva fordelar: Dels ser studenterna sambandet med sin ovriga verksamhet, och dels kan man inom kursens ram ta upp manga datalogiska problem som har med programmeringssprak att gora. Eftersom jag introducerar ett mycket enkelt programmeringssprak som berakningsmodell, kan jag till och med formellt deniera bade syntax och semantik for detta sprak. Jag hoppas att denna utgangspunkt gor att sambandet mellan de problem som tas upp i kursen och vanliga datalogiska problem blir mer framtradande. Jag ar mycket tacksam for de synpunkter pa tidigare versioner av forelasningsanteckningarna som jag fatt bade fran elever och fran olika medlemmar i Programmeringsmetodikgruppen. Diskussionerna i Programmeringsmetodikgruppen om funktionella sprak och typteori har dessutom i mycket stor utstrackning paverkat min installning till datalogiska problem i allmannhet. Jag ar medveten om att boken fortfarande innehaller felaktigheter, en del orsakade av min tankloshet, andra av texthanteringssystemets fantastiska formaga att hela tiden gora som jag skriver och inte som jag vill!!! Synpunkter och papekanden om innehall och tryckfel mottages darfor med stor tacksamhet. Goteborg i december '87 K P

iv

Innehall 1 INTRODUKTION 1 2 M ANGDL ARA 7 2.1 Naturliga tal : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 7 2.2 Sanningsvarden : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 9 2.3 Tecken : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 10 2.4 Heltal : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 10 2.5 Sekvenser eller listor : : : : : : : : : : : : : : : : : : : : : : : : : : : 11 2.6 Cartesiska produkter : : : : : : : : : : : : : : : : : : : : : : : : : : : 12 2.7 Disjunkta unioner : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 12 2.8 Andra mangdbildningsoperationer : : : : : : : : : : : : : : : : : : : : 13 2.9 Matematiska funktioner : : : : : : : : : : : : : : : : : : : : : : : : : 15 2.9.1 Partiella och totala funktioner : : : : : : : : : : : : : : : : : : 15 2.9.2 Injektiva, surjektiva och bijektiva funktioner : : : : : : : : : : 16 2.9.3 Komposition av funktioner : : : : : : : : : : : : : : : : : : : : 19 2.9.4 Funktioner fran naturliga tal : : : : : : : : : : : : : : : : : : : 21 2.9.5 Funktioner fran Bool : : : : : : : : : : : : : : : : : : : : : : : 25 2.9.6 Funktioner fran listor : : : : : : : : : : : : : : : : : : : : : : : 26 3 BER AKNINGSBARA FUNKTIONER 29 3.1 Upprakningsbara mangder : : : : : : : : : : : : : : : : : : : : : : : : 29 3.2 En berakningsmodell programspraket P : : : : : : : : : : : : : : : 34 3.3 Denition av programsprak syntax : : : : : : : : : : : : : : : : : : 36 3.3.1 Grammatiker : : : : : : : : : : : : : : : : : : : : : : : : : : : 36 3.3.2 Chomsky hierarkin : : : : : : : : : : : : : : : : : : : : : : : : 39 3.3.3 BNF : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 43 3.3.4 Formella sprak : : : : : : : : : : : : : : : : : : : : : : : : : : 44 3.4 P:s syntax : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 47 3.5 Abstrakt syntax : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 49 3.6 Denition av programsprak semantik : : : : : : : : : : : : : : : : 54 3.7 P:s semantik : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 57 3.8 Forkortningar : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 71 3.8.1 Satsforkortningar : : : : : : : : : : : : : : : : : : : : : : : : : 71 3.8.2 Uttrycksforkortningar : : : : : : : : : : : : : : : : : : : : : : : 77 3.8.3 Testforkortningar : : : : : : : : : : : : : : : : : : : : : : : : : 80 v

vi INNEHALL 3.9 Berakningar med andra dataobjekt : : : : : : : : : : : : : : : : : : : 84 3.10 P-program som dataobjekt : : : : : : : : : : : : : : : : : : : : : : : : 94 3.11 En interpretator for P-program skriven i P : : : : : : : : : : : : : : : 105 3.12 Nagra icke-berakningsbara funktioner : : : : : : : : : : : : : : : : : : 113 3.13 Rekursion : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 124 4 BER AKNINGSBARA M ANGDER 129 4.1 Rekursivt enumerabla mangder : : : : : : : : : : : : : : : : : : : : : 129 4.2 Avgorbara mangder : : : : : : : : : : : : : : : : : : : : : : : : : : : : 138 4.3 Predikatlogik ar oavgorbar : : : : : : : : : : : : : : : : : : : : : : : : 144 5 -KALKYL 149 5.1 Inledning : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 149 5.2 -notation : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 150 5.2.1 Abstraktion : : : : : : : : : : : : : : : : : : : : : : : : : : : : 150 5.2.2 Applikation : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 5.3 -kalkyl : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 5.3.1 Berakningsregler : : : : : : : : : : : : : : : : : : : : : : : : : 161 5.3.2 Likhetsregler : : : : : : : : : : : : : : : : : : : : : : : : : : : 169 5.3.3 Kombinatorer : : : : : : : : : : : : : : : : : : : : : : : : : : : 171 5.3.4 Representation av naturliga tal och andra data 5.3.5 Rekursion : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 175 5.4 -kalkyl och berakningsbarhet : : : : : : : : : : : : : : : : : : : : : : 178 5.4.1 Oversattning fran P-program till -termer : : : : : : : : : : : 178 5.4.2 En interpretator for -termer skriven i P : : : : : : : : : : : : 183 6 BER AKNINGSMODELLER 191 6.1 Andliga tillstandsmaskiner : : : : : : : : : : : : : : : : : : : : : : : : 191 6.2 Turing maskiner : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 201 6.3 Rekursiva funktioner : : : : : : : : : : : : : : : : : : : : : : : : : : : 209 7 LITTERATURH ANVISNINGAR 213 8 BETECKNINGAR 221 9 SATSER OCH DEFINITIONER 229 A NAGRA BEVISMETODER 239 B NAGRA SATSER UTAN BEVIS 243