Matematikens grundvalar och programmering av datorer



Relevanta dokument
Grundläggande programmeringsteknik Datorsystem

Föreläsning 5. Deduktion

el o;; Utbildningsplan för Kognitionsvetenskapligt kandidatprogram Bachefor Programmein Cognitive Science 180 Högskolepoäng

F5 Introduktion till digitalteknik

BERÄKNINGSKONSTENS HISTORIA - Från kulram till dator

7, Diskreta strukturer

Datorhistoria Introduktion till PBL

Viktiga moment i kursplanen

DATORER OCH PROGRAM. Datorn är en symbolmaskin

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg niklas.broberg@chalmers.

Varför är logik viktig för datavetare?

DATORER OCH PROGRAM. Programmerade maskiner Program beteendeplan och beteendegenerator Generalitet och portabilitet Datorn är en symbolmaskin

Datavetenskapliga programmet, 180 hp

IT OCH PROGRAMMERING I SKOLAN. Jan Erik Moström Peter Vinnervik

Datorarkitekturer. Sammanfattande bedömning. Ämnesbeskrivning

Introduktion till logik

Utbildningsplan Dnr CF 52-66/2007. Sida 1 (7)

Automationsingenjör, 180 hp

Underlag för arbete med kvalitetsindikatorn

Kursplan. Ämnesövergripande

Dynamisk programvara, ett didaktiskt verktyg?

LEGO MINDSTORMS Education EV3

Explorativ övning 11 GEOMETRI

4-7 Pythagoras sats. Inledning. Namn:..

Grundläggande logik och modellteori

Digitalt lärande och programmering i klassrummet

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

1 ALLMÄNNA BESTÄMMELSER. 1.1 Allmänna mål. 1.2 Särskilda mål. Examensbeskrivning Konstnärlig kandidatexamen

UTBILDNINGSPLAN. Högskoleingenjörsutbildning i datateknik, 180 högskolepoäng. Computer Engineering Programme, 180 ECTS Credits

T1-modulen Lektionerna Radioamatörkurs OH6AG OH6AG. Bearbetning och översättning: Thomas Anderssén, OH6NT Heikki Lahtivirta, OH2LH

Grunderna i stegkodsprogrammering

Tommy Färnqvist, IDA, Linköpings universitet. 2 Strukturer Domäner Tolkningar... 3

FTEA12:4 Vetenskapsteori. Deduktiv metod - Falsifikationism -

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

Bakgrund. Bakgrund. Bakgrund. Håkan Jonsson Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige

Målet med undervisningen är att eleverna ska ges förutsättningar att:

LINKÖPINGS TEKNISKA HÖGSKOLA

Att välja kurser på Datateknik år 4-5

Styrdokumentkompendium

Matematik och statistik

Föreläsning 1 & 2 INTRODUKTION

Kvalitetsutvärdering av matematik och matematisk statistik och närliggande huvudområden

Logik. Boolesk algebra. Logik. Operationer. Boolesk algebra

MATEMATIK 3.5 MATEMATIK

Hands-On Math. Matematikverkstad. Förskolans nya läroplan 1 juli Matematik är en abstrakt och generell vetenskap

CV - John Berggren - Sommarjobb GKN

KONSTRUKTION. Ämnets syfte. Kurser i ämnet

Sagt & gjort. House of Alvik

Utbildningsplan för. International Software Engineering, 180 högskolepoäng

TDDD02 Föreläsning 2 HT Reguljära uttryck och reguljära språk Lars Ahrenberg

Skolverkets förslag till kursplan i matematik i grundskolan. Matematik

Den här texten ska förhoppningsvis underlätta en del av anpassningarna. Det kan säkert finnas en del fel och annat tok.

I D C : S Y T T R A N D E. Sponsrad av: VMware. Brett Waldman Maj 2013

Smart låsning utan nyckel.

Föreläsning 8: Intro till Komplexitetsteori

KONSTRUKTION. Ämnets syfte

Programmering och digital kompetens

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

F5 Introduktion till digitalteknik

Föreläsning 11. Giriga algoritmer

Vad är semantik? LITE OM SEMANTIK I DATORLINGVISTIKEN. Språkteknologi semantik. Frågesbesvarande

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

Lektion 1: Fördelningar och deskriptiv analys

C: Skrollhjul D: Batterihållare E: På/Av-knapp F: Anslutningsknapp G: Optisk rörelsesensor. Installation SE

F1 Introduktion och ingenjörsrollen EDAA05 Datorer i system! Roger Henriksson!

Undervisningen i ämnet mekatronik ska ge eleverna förutsättningar att utveckla följande:

Utbildningsplan. Maskiningenjör - produktutveckling BSc in Mechanical Engineering - Product Development 180 högskolepoäng

F1 Introduktion och ingenjörsrollen

Semantik och pragmatik

K3 Om andra ordningens predikatlogik

Integration av matematik och teknik på ingenjörsutbildningar

Del ur Lgr 11: kursplan i slöjd i grundskolan

7, Diskreta strukturer

eck utv relativt väl ecklade utv goda relativt väl ecklade elativt väl förhållandevis stor utv lade och r 213

Filosofisk Logik. föreläsningsanteckningar/kompendium (FTEA21:4) v. 2.0, den 5/ Kompakthet och Löwenheim-skolemsatsen

[FOKUSOMRÅDE LÄRANDE & UTVECKLING]

Teknikprogrammet, inriktning informations- och medieteknik

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

MATEMATIKENS SPRÅK. Syftet med denna övning är att med hjälp av logik lära oss att uttrycka matematik mer exakt,

Datorn föds.

COMPUTABILITY BERÄKNINGSBARHET. Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall

Programmering A. Johan Eliasson

Angreppssätt. Vilka är våra studieobjekt? Population och stickprov

Projekt på Elektro i Haninge

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

Utveckling av undervisningen i matematik och datateknik i gymnasiet

1-6:an skriver sig till läsning läsåret

HÖGSKOLAN I GÄVLE UTBILDNINGSPLAN AVANCERAD NIVÅ. Besluts-, risk- och policyanalys Programkod: NABRP Fastställd av NT-nämnden

TEKNIK/EKONOMIPROGRAMMET, 120 POÄNG Programme for Business Economics and Engineering, 120 points

INDUKTION OCH DEDUKTION

Aktiv sittställning för alla. Justera efter dina behov

Tentamen: Programutveckling ht 2015

Umeå april 2015 och lite till. För alla elever och pedagoger från förskoleklass till årskurs 9

Individuellt val, PASS A Tisdagar kl och onsdagar kl

Tal till Solomon Feferman

Göteborg 15 januari 2008

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

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

3:e generationen laserskrivare. Imaje 7000-serien. Gör mer med mindre YOU MAKE IT, WE MARK IT

Laboration 2 Elektriska kretsar Online fjärrstyrd laborationsplats Blekinge Tekniska Högskola (BTH)

Transkript:

Matematikens grundvalar och programmering av datorer Bengt Nordström Datavetenskap, Chalmers och Göteborgs Universitet, 14 februari, 2005

Datorerna föddes ur logiken 1870: Cantor: Det finns minst två slags oändligheter. 1900 : Diskussion om matematikens grunder (Frege, Russel) 1928: Hilbert. Kan vi konstruera en metod som avgör om en matematisk sats är sann eller inte? 1930: Logiker studerade beräkningsbarhet: Turing, Church, Kleene, Gödel, Hilbert 1940: De första datorerna

De första datorerna von Neuman och EDVAC, designad 1945 ENIAC 1945

BESK 1953 BESK 1953 Tangentbordet BESKs konstruktörer Erik Stemme, Gösta Neovius och Olle Karlström.

Under 1960-talet började man använda integrerade kretsar.

1965: Moores observation Moores observation Goordon Moore lade märke till att antalet komponenter i en integrerad krets tiofaldigades vart tredje år. 1965 : 50 komponenter 1968 : 500 1971 : 5 000 1974 : 50 000???

Och Moore fick nästan rätt!

Varje decennium 10-faldigades allt

Men datorerna består inte bara av hårdvara. Antalet program ökade antagligen ocksa exponentiellt. Men hur fungerar de? (Demo)

Microsoft XP Lanserades den 25 oktober 2001 Samma dag lade bolaget ut ändringar på sin web-sida (18 miljoner tecken!) Två av dessa skulle fixa viktiga brister i säkerheten. Endast en fungerade. Innan man uppdaterar skall man enligt bolaget först spara viktiga filer på en speciell floppy-disk. Men som Microsofts Online Data Base säger: De speciella floppy-diskarna som är skapade av Windows XP Home do not work with Windows XP Home.

Kritiska tillämpningar: kraftverk flygplan (fly-by-wire) bilar överföring av pengar Komplicerade system som ingen människa förstår. Livsviktigt att de fungerar!

Computer Related Airplane Incidents and Accidents China Airlines Airbus A300 in Taipei (1998) The Korean Air Lines B747 CFIT Accident in Guam (1997) The FedEx MD11 Accident on Landing at Newark (1997) The Birgen Air B757 accident near Puerto Plata (1996) News on the Aeroperu B757 accident (1996) The Ariane 5 Failure (1996) The T-43A Accident near Dubrovnik (1996) Information About the Martinair B767 EFIS-loss Incident near Boston, MA The American Airlines B757 Accident in Cali (1995) The A320 Maintenance Incident at Gatwick (1995) The A330 Flight-Test Accident in Toulouse (1994) The Tokyo-London A340 FMGS Problem (1994) The A300 Crash in Nagoya (1994) The A320 Accident in Warsaw(1993) The Air Inter A320 Accident near Strasbourg(1992) The Sydney A320/DC10 Incident (1991) The Lauda Air B767 Accident (1991) http://www.rvs.uni-bielefeld.de/publications/incidents/ (prof Peter Bladkin, 1999)

Exempel: Sizewell B För att stänga reaktorn används ett program som är 100 000 rader långt. Fungerar det? Under 1993 gjorde man mer än 50000 tester i 1993. Programmet gick fel i hälften av fallen.

Varför? Lätt att skriva ett program. Svårt att skriva ett korrekt program. Vad betyder det att skriva ett korrekt program?

Hur vet vi att ett program är korrekt? Traditionellt: Vi testar om programmet fungerar ibland. Önskvärt: Vi bevisar att programmet alltid löser sin uppgift.

Kunskap av olika precision tyst språk (Ingemar Stenmark: Dä ä ba och åk!) naturligt språk (kan tolkas av en människa) formellt språk (kan tolkas av en maskin)

Vilken precision har olika delar inom programmeringen? Precision hos: inget språk naturligt språk formellt språk program alltid uppgift vanligt ibland sällsynt bevis ofta ibland sällsynt

Exempel på hur ett formellt bevis kan se ut:

Datavetenskapen har nytta av och ställer krav på Logik. Men vi kan också bidra.

En mänsklig konstruktion (t.ex. en bil, ett verktyg, en bro, ett programmeringsspråk eller en formell logik) kan studeras på olika sätt: i teorin (genom att göra en matematisk modell) i praktiken, genom att förverkliga konstruktionen experimentera med den (genom att använda den) Det är först under de senaste decennierna som vi har lyckats implementera och experimentera med olika logiska formalismer.

Teoretiska studier av ett logiskt språk (sedan 1930-talet) Vi ser på en logik som ett matematiskt objekt och resonerar matematiskt om olika egenskaper hos språket (normalisering, subjekt reduktion etc) Praktiska studier (sedan 1990) implementering: beviskontroll, teorembevisare, beviseditor. experiment: bygger bevis med hjälp av en dator.

Vi kan använda datorer för att kontrollera bevis Bevis av programs egenskaper Exempel: Resonera om JavaCard-program Säkerhetskritiska exempel Matematiska bevis Exempel: Egenskaper hos logiska system Keplers förmodan Algebrans fundamentalsats

Konsekvenser av ett stigande praktiskt intresse Teoretiska studier av en logik reducerar logiken till ett matematiskt objekt, man betonar intressanta matematiska egenskaper. Logiska språk med intressanta praktiska egenskaper kommer att utvecklas (vi är intresserad av att använda, inte bara studera) Ökat intresse av semantik och grundvalsproblem.

Argument mot formalism Formalism Matematiken handlar om att manipulera symboler med hjälp av givna regler Mot formalism När vi använder en logik för att bevisa egenskaper hos program vill vi ha en riktig semantik. Egenskaper måste ha en mening i verkligheten.

Program är konkreta matematiska objekt konkreta Program tar fysiskt utrymme (som byggnader, stolar, etc). En programmerare konstruerar ett program i samma anda som en snickare tillverkar ett bord. Objekt sätts ihop av delar med vissa egenskaper och det är en viktig del av konstruktionsprocessen att övertyga sig om att dessa egenskaper gäller. matematiska Funktionella programmeringsspråk, typteori.

Sammanfattning Under de senaste århundranden utvecklades den matematiska analysen från framsteg inom fysiken. På samma sätt kommer logiken i framtiden att utvecklas från starka praktiska behov av korrekta datorsystem och nya möjligheter till logiska experiment. Inom logiken kommer intresset att skiftas från ett intresse av syntax till semantik och från teori till praktik. Grundvalsfrågor inom matematik och logik har plötsigt blivit praktiskt viktiga.