Föreläsning 9 i programmeringsparadigm. Unifiering (Brna Chapter 4.1).
|
|
- Johannes Vikström
- för 5 år sedan
- Visningar:
Transkript
1 Föreläsning 9 i programmeringsparadigm. Unifiering (Brna Chapter 4.1). Repetition: I Haskell är mönster-passning (pattern-matchning) jättepraktiskt: När vi gör ett anrop av en funktion med ett visst argument mönster-passas argumentet mot olika mönster i funktionens definitioner : Ex Vi vill räkna ut f (Sq 6 7)(Chess ((Sq 2 3, NoChessman): [])) där f :: Square -> Chess -> Bool f _ (Chess [] ) = False f sq (Chess ((sq1, ch1):sqcms)) = sq == sq1 f sq (Chess sqcms) Första ekvationens vänsterled matchar inte; men den andra går bra och följande bindningar görs: f (Sq 6 7)(Chess ((Sq 2 3, NoChessman): [] )) -- argumentet f sq (Chess ((sq1, ch1) : sqcms)) -- vänsterledet sq binds till (Sq 6 7) sq1 binds till Sq 2 3 ch1 binds till NoChessman sqcms binds till [] Dessa bindningar används sedan i högerledet (utom ch1 varför man skulle kunna använda _ i stället i mönstret). Bindningarna görs till namnen (identifierarna) sq, sq1, ch1, sqcms. Namnen finns i mönstren i funktiondefinitionerna och namnen måste inledas med en gemen (liten bokstav). Konstruerarna skall stämma exakt, i vårt fall Chess, : (,) (Konstruerarna med namn har versal initial, börjar med stora bokstäver). Matchningen är "en-vägs", eftersom de namn som binds bara finns "på ena sidan", i mönstren i funkttionsdefinitonerna. Prolog : I Prolog kan bindningar (substitioner) göras till logiska variabler, med versal initial, medan värden (t ex atomer) har gemen intial. M a o är det tvärtom när det gäller gemener och versaler. Brna kallar matchning för unifiering. (Vissa författare skiljer på unifiering och matchning, den förenklade form av unifiering som används i Prolog av effektivitetsskäl). Unifieringen i Prolog är "två-vägs", eftersom logiska variabler kan finnas "på båda sidorna", både i det mål som Prolog försöker satisfiera och predikathuvuena (vänsterleden) i predikatens definitioner (de olika klausulerna) i databasen. I Prolog är unifiering det kanske allra viktigaste mekanismen för språkets funktion. Om unifieringen lyckas försöker Prolog använda klausulen, dvs satisfiera målen i klausulens kropp om en sådan finns. I prolog är unifiering fundamentalt för språkets semantik. Unifiering används för övrigt också i Haskell för att klura ut typer och kontrollera typer. Unifiering beskrevs första gången i detalj 1964 i en "landmark thesis" av Robinson. Unifiering är en mycket viktig teoretisk grundval för de båda deklarativa paradigmen (= logik- och funktionella paradigmen).
2 Byrd Box - modellen (Sökningarna i Brna Chapter 3 beskrivna med en variant av Box-modellen i Brna Chapter 5). En Byrd Box är ett grafiskt sätt att rita procedur-synen på ett predikat. Tre olika exempel : eller a(x):- b(x), och a/1 c(x). a(x) :- b(x), c(x). Procedurell läsnig: Proceduren Procedurell läsnig: Proceduren (med portar) a(x) : försök b(x) sedan ev. e(x) Logisk läsnig: Predikatet Logisk läsnig: Predikat med aritet (ställighet) 1 med med 1 klausuler, en regel 4 klausuler, alla faktum. med två konjugerade submål Exempel Byrd Box model förfrågan happy(p): e(x):- e(x):- e/1 g(x). h(x). eller e(x) :- g(x). e(x) :- h(x). Procedurell läsnig: Proceduren a(x) : försök b(x) eller e(x) Logisk läsnig: Predikat med 2 klausuler, 2 regler med varsitt submål, disjunkta. Byrd Box model för frågan happy(p) Program Database wise(jean). happy(p) :- happy(p) :- wealthy(p), happy(p) :- wise(p), e l l e r n y s a t s wealthy(p), wise(p), wise(jean). och,
3 En "körning" av Prolog kan spåras med trace och illustreras i Box-modellen. Genom att göra trace i Sixstus skriver Sixstus ut vad som händer på ett sätt som underlättar förståelsen av förloppet i Box-modellen. Två enkla körningar av ett predikat med fyra fakta illustrerade i Box-modellen: (streckade pilar skrivs ej ut av Sicstus)?- trace. {The debugger will first creep -- showing everything (trace)}?- 1 1 : woman(jean)? 1 1 : woman(jean)??- 1 1 : woman(joan)? 1 1 : woman(joan)? woman(jean) woman(joan) Dessa två körningar fungerar som motsvarande körning av denna Haskell-funktion woman :: Atom -> Bool -- Ett anrop motsvarar -porten woman Jean = True -- Resultatet True woman Jane = True -- motsvarar -porten woman Joan = True woman Pat = True woman _ = False -- False motsvarar -porten, no. Vi får svaret istället för True. I Prolog skall parametern/argument omges med (). I Prolog lämnar vi proceduren med -porten. Eftersom vi fått svar på vår fråga skriver Prolog. Körningar av ett predikat med fyra fakta som misslyckas:?- woman(eve). 1 1 : woman(eve)? 1 1 : woman(eve)? no Motsvarande Haskell-funktion skulle returnera False. I Prolog lämnar vi proceduren med -porten. Eftersom vi fått svar på vår fråga skriver Prolog no.
4 Körningar av ett predikat med fyra fakta. Frågan innehåller en logisk variabel. Prolog föreslår en substitution för att frågan skall kunna besvaras jakande. Vi är nöjda med Prologs första förslag till substitution:?- woman(w). 1 1 : woman(_206)?? 1 1 : woman(jean)? W = jean??- woman(w) W = jean? I körningen mönsterpassar ("matchar", unifierar) vi anropet woman(w), dvs ett anrop med en logisk variabel W, med ett "mönster med "ett värde" Sådan "baklänges" matchning gjorde vi aldrig i Haskell, men Prolog gör det och föreslår substitutionen W = jean?. Vi är nöjda ( bara vagnretur efer W = jean? ) så svarar sedan Prolog. Körning av ett predikat med fyra fakta. Frågan innehåller en logisk variabel. Vi vill ha flera förslag. Prolog föreslår en substitution för att frågan skall kunna besvaras jakande. Vi är dock ej nöjda med Prologs två första förslag till substitutioner, vilket vi visar genom att ge ; i stället för att ge vagnretur.?- woman(w). 1 1 : woman(_206)?? 1 1 : woman(jean)? W = jean? ; 1 1 : woman(jean)?? 1 1 : woman(jane)? W = jane? ; 1 1 : woman(jane)?? 1 1 : woman(joan)? W = joan? woman(w) W = jean?; W = jane?; W = joan?- I körningen tvingar vi Prolog att pröva ytterligare två gånger. Att Prologprocedurer kan "försöka igen med nästa klausul" illustreras med att vi använder -porten. Skulle vi inte vara nöjda med något förslag så svarar till slut Prolog no, dvs Prolog kan inte finna några ytterligare förslag till substitution av den logiska variablen som gör frågan sann.
5 Lyckad körning av ett predikat med regel: happy(jean) Byrd Box model för frågan happy(jean)?- happy(jean). 1 1 : happy(jean)? 2 2 : healthy(jean)? 2 2 : healthy(jean)? 3 2 : woman(jean)? 3 2 : woman(jean)?? 1 1 : happy(jean)? wealthy(p) avkortad bild Missyckad körning av ett predikat med regel: Byrd Box model för frågan happy(pat)?- happy(pat). 1 1 : happy(pat)? 2 2 : healthy(pat)? 2 2 : healthy(pat)? 3 2 : wealthy(pat)? 3 2 : wealthy(pat)? 4 2 : wise(pat)? 4 2 : wise(pat)? 1 1 : happy(pat)? no?- happy(pat) wealthy(p), wise(p), wise(jean)
6 Två körningar av ett predikat definierat med en regel. Frågor med logisk variabel : happy(p) Byrd Box model för frågan happy(p)?- happy(p). 1 1 : happy(_206)? 2 2 : healthy(_206)?? 2 2 : healthy(jim)? 3 2 : woman(jim)? 3 2 : woman(jim)? 2 2 : healthy(jim)?? 2 2 : healthy(jane)? 4 2 : woman(jane)? 4 2 : woman(jane)?? 1 1 : happy(jane)? P = jane? - - wealthy(p), - wise(p), wise(jean)?- happy(r). 1 1 : happy(_206)? 2 2 : healthy(_206)?... som ovan? 1 1 : happy(jane)? R = jane? ; 1 1 : happy(jane)? 2 2 : healthy(jane)? 2 2 : healthy(jean)? 5 2 : woman(jean)? 5 2 : woman(jean)?? 1 1 : happy(jean)? R = jane? happy(r) R = jean? ; 1 1 : happy(jean)? 6 2 : wealthy(_206)?? 6 2 : wealthy(jane)? 7 2 : woman(jane)? 7 2 : woman(jane)?? 1 1 : happy(jane)? Byrd Box model för frågan wealthy(p), wise(p), wise(jean) happy(p)
7 Prologs semantik (i procedurell syn) beskriven med Byrds boxmodell: 1. Anrop av procedure: Vi kommer in genom -porten (fungerar ungefär som vanliga programspråk): Vi finner ett faktum som unifierar. Vi finner ej någon klausul (regel eller faktum) med huvud som unifierar.... Vi finner en regel med huvud som unifierar. Vi gör ett anrop () på första delmål (subgoal) i koppen. 2. Förnyat försök att satisfiera en procedure: Vi kommer in genom -porten: Vi lämnade proceduren via ett faktum Vi finner ett nytt faktum som unifierar. (Vi kommer ihåg vilka vi redan testat) Vi lämnade proceduren via ett fakum Vi finner ej något ytterligarefaktum eller regel som unifierar. (Vi kommer ihåg vilka vi redan testat) Vi lämnade proceduren via ett fakum Vi finner en ny regel med huvud som unifierar. (Vi kommer ihåg regler/fakta vilka vi redan testat) Vi lämnade proceduren via en regel. 3. Kopplingar. Vi kommer ut genom -portar eller -portar : ( från frågan ger no)... =.... =..? Inga logiska Logiska variabler variabler i frågan. Förslag i frågan till substitution. Vi är nöjda. från procduren som är frågan.. =.... =..?; Logiska variabler i frågan. Förslag till substitution. Vi är ej nöjda.
8 talksabout(a, B) talksabout(a, B) Rekursion (Exemplet i Brna Chapter 4.2). talksabout(a, B):-. talksabout(a, B):- knows(a, C), talksabout(c,b). knows(bill, jane). knows(jane, pat). knows(jane, fred). knows(fred, bill). % Faktum. Ex på till-slut-på-raden-kommentar /* Körning?- talksabout(x, Y). Y = jane? ; X = jane, Y = pat? ; X = jane, Y = fred? ; X = fred, Y = bill? ; talksabout(a, B) talksabout(a, B) Y = pat? ; talksabout(a, B) Y = fred? ; Y = bill? ; Y = jane? ; Y = pat? ; */.
Föreläsning 8. newtype Chess = Chess [(Square, Chessman)] -- data ist f newtype OK -- data istället för newtype krävs om >1 konstruerare.
Föreläsning 8. Typer och programmeringsstil i Haskell. När vi definerade ett schack gjorde vi så här: newtype Chess = Chess [(Square, Chessman)] -- data ist f newtype OK deriving Show -- newtype effektivare
Läs merFöreläsning 9 i programmeringsparadigm. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1.
Föreläsning 9 i programmeringsparadigm. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1. Användning av Prolog. Prolog har framför allt används inom AI ( Articifial Intellegence),
Läs merFöreläsning 8. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1.
Föreläsning 8. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1. Användning av Prolog. Haskell kan i princip användas till mycket, men grafiska paket, kopplingar till färdiga
Läs merDD1361 Programmeringsparadigm HT15
DD1361 Programmeringsparadigm HT15 Logikprogrammering 1 Dilian Gurov, TCS Innehåll Logikprogrammering Kontrollflöde Unifiering Backtracking Negation Snitt Induktiva datatyper och rekursion Inbyggda datatyper:
Läs merNada Tentamensdag 2004 okt 18 Tentamen Programmeringsparadigm Skrivtid 5 h
Nada Tentamensdag 2004 okt 18 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 10p +(6p + 18p +6p+ 20p) + (10p +12p + 8p +10p) = 10p + 50p + 40 p
Läs merCentrala begrepp i prolog och logikprogrammering. Annamaris lista
Centrala begrepp i prolog och logikprogrammering Annamaris lista Databas med fakta och regler: Ett prolog-system består av en databas av fakta, och regler som gäller för dessa fakta. Fakta har formen av
Läs merDel : Funktionell programmering. I alla deluppgifterna, använd Haskell och skriv typen för de identifierare du definierar.
Nada Tentamensdag 2005 jan11 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 10p +(6p + 10p +14p+ 20p) + (9p +11p + 8p +12p) = 10p + 50p + 40 p
Läs merDD1361 Programmeringsparadigm HT17
DD1361 Programmeringsparadigm HT17 Logikprogrammering 1 Dilian Gurov, KTH Delkursinnehåll Logisk versus procedurell läsning Kontrollflöde: Unifiering, Backtracking, Snitt Induktiva datatyper och rekursion
Läs merNada KTH 2003 okt 23 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13
Nada KTH 2003 okt 23 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13 Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 9 10p +(14p + 12p +10p+ 14p) + (8p +12p + 12p +8p) = 10p + 50p
Läs merNada KTH 2004 jan 12 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13
Nada KTH 2004 jan 12 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13 Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 9 10p +( 5p + 14p +15p+ 16p) + (12p +10p + 10p +8p) = 10p + 50p
Läs merDD1361 Programmeringsparadigm HT16
DD1361 Programmeringsparadigm HT16 Logikprogrammering 1 Dilian Gurov, TCS Delkursinnehåll Logikprogrammering Logisk versus procedurell läsning Kontrollflöde Unifiering, Backtracking, Snitt Negation Induktiva
Läs merDel : Paradigmer allmänt.
Nada Tentamensdag 2003 jan 13 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 3 (Haskell) + 4 (Prolog) = 5p +(15p + 15p +20p) + (10p +12p + 15p +8p) = 5p + 50p + 45 p = 100p
Läs merDel : Funktionell programmering. I alla deluppgifterna, använd Haskell och skriv typen för de identifierare du definierar.
Nada Tentamensdag 2004 aug 23 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 10p +(5p + 20p +5p+ 20p) + (10p +12p + 8p +10p) = 10p + 50p + 40 p
Läs merInnehåll. Föreläsning 7. Satslogiken är för grov. Samma sak i predikatlogik: Första ordningens predikatlogik. Logik med tillämpningar
Innehåll Föreläsning 7 Logik med tillämpningar 99-03-01 Första ordningens predikatlogik Objekt, predikat, kvantifierare Funktioner, termer, wffs Bindning och räckvidd Tolkningar och värderingar Satisfiering,
Läs merLänkning av Prolog under C
Länkning av Prolog under C Kent Boortz Swedish Institute of Computer Science Box 1263, S-164 28 Kista, Sweden 1 september 1991 T91:14 Sammanfattning SICStus länkmoduler ger möjlighet att blanda Prolog-
Läs merLådmodellen....eller procedure box control flow model. Dynamisk bild av ett prologprogram Förklarar i detalj procedurell läsning av ett program.
Lådmodellen...eller procedure box control flow model. Dynamisk bild av ett prologprogram Förklarar i detalj procedurell läsning av ett program. Lådmodellen...eller procedure box control flow model. Dynamisk
Läs merDel : Paradigmer allmänt.
Nada Tentamensdag 2003 aug 25 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 5p +(12p + 15p +5p+ 20p) + (10p +14p + 8p +11p) = 5p + 52p + 43 p
Läs merKursanalys för Programmeringsparadigm 2D1361, läsperiod 1 och 2 läsåret 2005/2006
Leif Kusoffsky 2005 - dec - 07 Nada KTH Kursanalys för Programmeringsparadigm 2D1361, läsperiod 1 och 2 läsåret 2005/2006 Kursdata Momentindelning Kursen genomförd Kursledare Kurslitteratur Antal studenter
Läs merDD1361 Programmeringsparadigm. Carina Edlund
DD1361 Programmeringsparadigm Carina Edlund carina@nada.kth.se Funktionell programmering Grundidéen med funktionell programmering är att härma matematiken och dess funktionsbegrepp. Matematiskt funktionsbegrepp
Läs merTraditionell Programmering
Crash Course in Prolog Baran Çürüklü Introduktion till PROLOG, dvs. PROgramming in LOGic Prolog-programmen är deklarativa och består av egenskaper, relationer och regler. Lisp and Prolog är de vanligaste
Läs merDD1361 Programmeringsparadigm HT15
DD1361 Programmeringsparadigm HT15 Logikprogrammering 3 Dilian Gurov, TCS Idag Induktiva datatyper: Träd (inte inbyggd) Binära träd utan data Binära träd med data Prolog-specifika konstruktioner Negation,
Läs merProva på-laboration i Prolog
Prova på-laboration i Prolog Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2006-09-12 1. Introduktion till Prolog Programspråket Prolog konstruerades i början
Läs merNågra inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.
Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E Föreläsning 4: Villkor och rekursion Konverterar mellan de grundläggande typerna: >>> int("") >>> int(.999) >>> float().0
Läs merFöreläsning [ ] i programmeringsparadigm. Om multiparadigm-språket OZ och en tjock bok.
Föreläsning [14.. 15] i programmeringsparadigm. Jag har ju delat ut Lite grann om syntax, semantik och syntaxanalys. Några ex finns på Nadas kursexpedidition. Labben "Danska räkneord" ska göras med en
Läs merIntroduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion
Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)
Läs merTATM79: Föreläsning 1 Notation, ekvationer, polynom och summor
TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor Johan Thim 22 augusti 2018 1 Vanliga symboler Lite logik Implikation: P Q. Detta betyder att om P är sant så är Q sant. Utläses P medför Q
Läs merDD1361 Programmeringsparadigm HT15
DD1361 Programmeringsparadigm HT15 Logikprogrammering 3 Dilian Gurov, TCS Idag Induktiva datatyper: Träd (inte inbyggd) Binära träd utan data Binära träd med data Prolog-specifika konstruktioner Negation,
Läs merFörra gången: Primitiva data
Förra gången: Primitiva data > 30 30 > 45.56 45.56 Variabler: > (define telnr 6000) > telnr 6000 DA2001 (Föreläsning 3) Datalogi 1 Hösten 2013 1 / 24 Förra gången: Procedurapplikation: > (+ 7900000 telnr)
Läs merFöreläsning 7: Syntaxanalys
DD2458, Problemlösning och programmering under press Föreläsning 7: Syntaxanalys Datum: 2007-10-30 Skribent(er): Erik Hammar, Jesper Särnesjö Föreläsare: Mikael Goldmann Denna föreläsning behandlade syntaxanalys.
Läs merEtt Logikprogram. Logik och Programmering. Introduktion till PROLOG, dvs. PROgramming in LOGic. Viktiga begrepp/områden i Prolog. Framtiden?
Crash Course in Prolog Peter Funk FUKO HT2001 IDt, Computer Science and Engineering Mälardalen University Västerås, Sweden Peter.Funk@mdh.se Introduktion till PROLOG, dvs. PROgramming in LOGic Prolog-programmen
Läs merTATA42: Föreläsning 9 Linjära differentialekvationer av ännu högre ordning
TATA42: Föreläsning 9 Linjära differentialekvationer av ännu högre ordning Johan Thim 4 mars 2018 1 Linjära DE av godtycklig ordning med konstanta koefficienter Vi kommer nu att betrakta linjära differentialekvationer
Läs merDatorlingvistisk grammatik I Institutionen för lingvistik och filologi Oktober 2007 Mats Dahllöf
UPPSALA UNIVERSITET Datorlingvistisk grammatik I Institutionen för lingvistik och filologi Oktober 2007 Mats Dahllöf http://stp.ling.uu.se/ matsd/uv/uv07/dg1/ Logisk semantik II 1 Predikatlogik, generella
Läs merTDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12
TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt.
Läs merLogikprogrammering. Undervisningsmaterialet NYTT för 2013: Learn Prolog Now! SWI Prolog-tolk, startas under tuxedo/ pingvinerna med swipl!
Logikprogrammering Undervisningsmaterialet NYTT för 2013: Learn Prolog Now! SWI Prolog-tolk, startas under tuxedo/ pingvinerna med swipl! Learn Prolog Now! SWI Prolog Gratis Prolog-tolk Lesser GNU Public
Läs merProcedurer och villkor. Rekursiva procedurer. Exempel: n-fakultet
Procedurer och villkor Rekursiva procedurer (define lessorequal (lambda (x y) (or (< x y) (= x y)))) (define between (lambda (x y z) (and (lessorequal x y) (lessorequal y z)))) > (between 3 4 5) #t > (between
Läs merProcedurer och villkor
Procedurer och villkor (define lessorequal (lambda (x y) (or (< x y) (= x y)))) (define between (lambda (x y z) (and (lessorequal x y) (lessorequal y z)))) > (between 3 4 5) #t > (between 3 2 5) #f DA2001
Läs merI en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.
OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet
Läs merFÖRELÄSNING 2, TDDC74, VT2018 BEGREPP PROBLEMLÖSNING MED HJÄLP AV FALLANALYS PROBLEMLÖSNING MED HJÄLP AV REKURSION
FÖRELÄSNING 2, TDDC74, VT2018 Begrepp och definitioner (delvis från föreläsning 1) Fallanalys som problemlösningsmetod Rekursivt fallanalys Rekursiva beskrivningar och processer de kan skapa Rekursiva
Läs merFunktionell programmering. Haskell. Ge#ng started...
Funktionell programmering Haskell Ge#ng started... Installera Haskell För a/ installera Haskell på egen maskin, ladda ned Haskell Pla9orm från h/p://www.haskell.org/pla9orm/ Där finns instrukdoner, dokumentadon,
Läs merFöreläsning 10 i programmeringsparadigm. Boxmodellen för append.
Föreläsning 10 i programmeringsparadigm. Boxmodellen för append. Jag försöker förklara denna bild för en körning av append([1,2], [3, 4], Rs) närmare på föreläsningen. Principen är att vid anrop (Call)
Läs merDeklarativt programmeringsparadigm
Deklarativt programmeringsparadigm Det vi introducerade på förra föreläsningen var ett exempel på deklarativ programmering. Vi specificerade en fallanalys som innehöll fakta och regler för hur man skulle
Läs merGrundläggande logik och modellteori (5DV102)
Tentamen 2013-10-31 Grundläggande logik och modellteori (5DV102) M. Berglund och K. Markström Totalt antal uppgifter 11 Maximalt antal poäng 30 Krav för 3 i betyg 14 poäng Krav för 4 i betyg 19 poäng,
Läs merGrundläggande logik och modellteori
Grundläggande logik och modellteori Kapitel 8: Predikatlogik Henrik Björklund Umeå universitet 2. oktober, 2014 Första ordningens predikatlogik Signaturer och termer Första ordningens predikatlogik Formler
Läs merSemantik och pragmatik (Serie 4)
Semantik och pragmatik (Serie 4) Satser och logik. Mats Dahllöf Institutionen för lingvistik och filologi April 2015 1 / 30 Så här långt (satslogik) Konjunktion (p q): att två enklare satser båda är uppfyllda.
Läs merIntroduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner
Introduktion till programmering D0009E Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner
Läs merTommy Färnqvist, IDA, Linköpings universitet. 2 Strukturer 2 2.1 Domäner... 2 2.2 Tolkningar... 3
Föreläsning 2 Semantik 729G06 Logikdelen Föreläsningsanteckningar i Programmering och logik 27 januari 2014 Tommy Färnqvist, IDA, Linköpings universitet 2.1 Innehåll Innehåll 1 Lite mer syntax 1 2 Strukturer
Läs merÖversikt. Varför lära sig detta? Motivering Syntax och semantik Imperativa språkets byggstenar och Python. PL-boken Kap 1 (repetition):
Översikt Motivering Syntax och semantik Imperativa språkets byggstenar och Python Datatyper Tilldelning och uttryck Kontrollstrukturer (på satsnivå) Subprogram Relaterade avsnitt: PL 3.1-3.2, 5.1-5.3,
Läs merGrundläggande logik och modellteori
Grundläggande logik och modellteori Kapitel 7: SAT-lösare Henrik Björklund Umeå universitet 29. september, 2014 SAT En instans av SAT är en mängd av mängder av literaler. Exempel: {{p, q, r}, {p, q, s},
Läs merEDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.
EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade
Läs merFöreläsning 11 i programmeringsparadigm. Boxmodellen i Sicstus-manualen.
Föreläsning 11 i programmeringsparadigm. Boxmodellen i Sicstus-manualen. The Procedure Box Control Flow Model During debugging, the debugger prints out a sequence of goals in various states of instantiation
Läs merTATA42: Föreläsning 8 Linjära differentialekvationer av högre ordning
TATA42: Föreläsning 8 Linjära differentialekvationer av högre ordning Johan Thim 23 april 2018 1 Differentialoperatorer För att underlätta notation och visa på underliggande struktur introducerar vi begreppet
Läs merAvslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska kunnas?
Avslutning Anmärkningar inför tentan Vad ska kunnas? Avslutning 1 Vad? Anmärkningar inför tentan 1 Att ha en bra förståelse för det som behandlades på föreläsningarna och gruppövningarna räcker i princip.
Läs merIntroduktion till programmering SMD180. Föreläsning 5: Fruktbara funktioner
Introduktion till programmering Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner med
Läs merFöreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser
Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,
Läs merAvslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska ni kunna?
Avslutning Anmärkningar inför tentan Vad ska ni kunna? Avslutning 1 Vad? Anmärkningar inför tentan 1 Att ha en bra förståelse för det som behandlades på föreläsningarna, inlämningsuppgifterna och gruppövningarna
Läs merFöreläsning 5-6 Innehåll
Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]
Läs merK3 Om andra ordningens predikatlogik
KTH Matematik Bengt Ek Maj 2005 Kompletteringsmaterial till kursen 5B1928 Logik för D1: K3 Om andra ordningens predikatlogik Vi presenterar på dessa sidor kortfattat andra ordningens predikatlogik, vilket
Läs merI en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.
OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet
Läs merFöreläsning 3: rekursion
Föreläsning 3: rekursion Teori Introducera rekursiva definitioner i Prolog Fyra exempel Visa att det kan finnas diskrepanser mellan Prolog-programmets deklarativa och procedurala betydelse! Rekursiva definitioner
Läs merLambdas. (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017
Lambdas (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017 Funktioner En funktion (i programmeringstermer) är en operation som tar ett eller flera argument,
Läs merIdag: Par och listor. Scheme. DA2001 (Föreläsning 6) Datalogi 1 Hösten / 29
Idag: Par och listor DA2001 (Föreläsning 6) Datalogi 1 Hösten 2010 1 / 29 Idag: Par och listor Hur hanterar man icke-numeriska problem? DA2001 (Föreläsning 6) Datalogi 1 Hösten 2010 1 / 29 Idag: Par och
Läs merMultipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion
Introduktion till programmering D0009E Föreläsning 6: Iteration Multipel tilldelning Helt ok att tilldela en variabel flera gånger: bruce = bruce, bruce = 7 bruce Output: 7 Som tillståndsdiagram: bruce
Läs merFöreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18.
Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18.1 Delkapitlet introducerar en del terminologi och beteckningar som används.
Läs merTDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 19 oktober 2016, kl 14 18
TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 19 oktober 2016, kl 14 18 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt.
Läs merFÖRELÄSNING 3 ANDERS MÄRAK LEFFLER IDA/HCS
729G06 Logik FÖRELÄSNING 3 ANDERS MÄRAK LEFFLER IDA/HCS 160208 Idag C-regeln, informell (och formell) inledning till predikatlogik (Bevis kommer senare.) 2 3 Vår (Snöfritt Cykla) (Vår Snöfritt) Cykla Lätt
Läs merIdag: Par och listor. Symboler. Symboler används för att uttrycka icke-numeriska data såsom namn, adress, bilregisternummer, boktitel, osv.
Idag: Par och listor Symboler Hur hanterar man icke-numeriska problem? Hur hanterar man en samling av data? Hur konstruerar man sammansatta datastrukturer? Bra om du har läst följande avsnitt i AS: Pair
Läs merSats. Om t är en rätvinklig triangel så är summan av kvadraterna på kateterna i t lika med kvadraten på hypotenusan.
Lunds tekniska högskola Datavetenskap Lennart Andersson Föreläsningsanteckningar EDAF10 3 Predikatlogik 3.1 Motivering I satslogiken är de minsta beståndsdelarna satslogiska variabler som kan anta värdena
Läs merEn introduktion till predikatlogik
rasmus.blanck@gu.se FT1200, LC1510 och LGFI52 VT2017 (Premiss 1) (Premiss 2) (Slutsats) Alla människor är dödliga Sokrates är en människa Sokrates är dödlig Detta argument är intuitivt giltigt: Det finns
Läs merUniversitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2
Anders Haraldsson 1 Anders Haraldsson 2 Dagens föreläsning Programmering i Lisp Fö 5 - Funktioner - lambda-uttryck (avs 7.1) - funcall och function (avs 7.2) - Högre ordningens funktioner (avs 7.) - Iteratorer
Läs merDagens föreläsning Programmering i Lisp Fö 5
Anders Haraldsson 1 Dagens föreläsning Programmering i Lisp Fö 5 - Funktioner - lambda-uttryck (avs 7.1) - funcall och function (avs 7.2) - Högre ordningens funktioner (avs 7.3) - Iteratorer - Egenskaper
Läs merFöreläsning 9: NP-fullständighet
Föreläsning 9: NP-fullständighet Olika typer av problem: 1. Beslutsproblem: A(x) =Ja. 2. Optimeringsproblem: A(x) =m Vanligen max/min. 3. Konstruktionsproblem: A(x) =En struktur. Vanligen lösningen till
Läs merSubstitution och unifiering
Substitution och unifiering Exempel varför behövs substitution? Substitution Unifiering Den mest generella unifieraren Substitution och unifiering 1 Resolution kräver substitution ett enkelt exempel Gäller
Läs mer732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner
732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (
Läs merBEGREPP HITTILLS FÖRELÄSNING 2 SAMMANSATTA UTTRYCK - SCHEME DATORSPRÅK
FÖRELÄSNING 2 Viss repetition av Fö1 Rekursivt fallanalys Rekursiva beskrivningar BEGREPP HITTILLS Konstant, Namn, Procedur/Funktion, LAMBDA, Parameter, Argument, Kropp, Villkor/Rekursion, Funktionsanrop,
Läs merÖvningshäfte 2: Induktion och rekursion
GÖTEBORGS UNIVERSITET MATEMATIK 1, MMG200, HT2017 INLEDANDE ALGEBRA Övningshäfte 2: Induktion och rekursion Övning D Syftet är att öva förmågan att utgående från enkla samband, aritmetiska och geometriska,
Läs merInnehållsförtekning Sida. Inledning 3 Vad är fuzzy logic? 3 Mängder 3 Medlemsfunktioner 5 Operationer 6 Fuzzification 8 Litteraturförteckning 9
Fuzzy Logic Innehållsförtekning Sida Inledning 3 Vad är fuzzy logic? 3 Mängder 3 Medlemsfunktioner 5 Operationer 6 Fuzzification 8 Litteraturförteckning 9 2 Inledning Med detta fördjupningsarbete vill
Läs mer1 Funktioner och procedurell abstraktion
1 Funktioner och procedurell abstraktion Det som gör programkonstruktion hanterlig och övergripbar och överhuvudtaget genomförbar är möjligheten att dela upp program i olika avsnitt, i underprogram. Vår
Läs merFöreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod
Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer
Läs merGrundläggande logik och modellteori (5DV102)
Tentamen 2014-01-10 Grundläggande logik och modellteori (5DV102) M. Berglund och K. Markström Totalt antal uppgifter 10 Maximalt antal poäng 30 Krav för 3 i betyg 1 Krav för 4 i betyg 19 poäng, vara minst
Läs merTDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18
TDDC74 Programmering: Abstraktion och modellering Datortenta - 017-10-7, kl 14-18 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis
Läs mervarandra. Vi börjar med att behandla en linjes ekvation med hjälp av figur 7 och dess bildtext.
PASS 8 EKVATIONSSYSTEM OCH EN LINJES EKVATION 8 En linjes ekvation En linjes ekvation kan framställas i koordinatsystemet Koordinatsystemet består av x-axeln och yaxeln X-axeln är vågrät och y-axeln lodrät
Läs merProgrammering och Programspråk. 7,5 högskolepoäng. Namn: (Ifylles av student) Personnummer: (Ifylles av student)
Programmering och Programspråk Provmoment: Ladokkod: Tentamen ges för: Tentamen NPL011 Systemarkitektprogrammet 7,5 högskolepoäng Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum:
Läs merTypsystem. Typsystem... Typsystem... Typsystem... 2 *
Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och
Läs merFöreläsning 5 i programmeringsparadigm.
Föreläsning 5 i programmeringsparadigm. λ-notation (lamda-notation, anonyma funktioner). Hutton 4.5. (Fokker 2.3.4.) Vi kan om vi vill definiera hjälpkonstanter, t ex i denna funktiondefinition : kommunalskatt
Läs merTypsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19
Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och
Läs merUtsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section
Föreläsning 1 Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section 1.1-1.3 i kursboken Definition En utsaga (proposition) är ett
Läs merFöreläsning 3-4 Innehåll
Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå
Läs merBörja med att kopiera källkoden till din scheme-katalog (som du skapade i Laboration 1).
Laboration 3 Grafiska figurer I den här laborationen skall du konstruera ett schemeprogram som kan rita rektanglar, punkter, cirklar, linjer och bilder som består utav en eller flera av nyss nämnda figurer.
Läs merEnjoy Vattenfallsmodellen i funktionella språk
Föreläsning 2 i Programmeringsparadigm Funktionell programmering := variabler pekare sidoeffekter ;...; Fy, fy => bugfree förståeliga korta inga "satser", bara uttryck! Enjoy Vattenfallsmodellen i funktionella
Läs merTATM79: Föreläsning 1 Notation, ekvationer, polynom och olikheter
TATM79: Föreläsning 1 Notation, ekvationer, polynom och olikheter Johan Thim 15 augusti 2015 1 Vanliga symboler Lite logik Implikation: P Q. Detta betyder att om P är sant så är Q sant. Utläses P medför
Läs merLogisk semantik I. 1 Lite om satslogik. 1.1 Konjunktioner i grammatisk bemärkelse. 1.2 Sant och falskt. 1.3 Satssymboler. 1.
UPPSALA UNIVERSITET Datorlingvistisk grammatik I Institutionen för lingvistik och filologi Oktober 2007 Mats Dahllöf http://stp.ling.uu.se/ matsd/uv/uv07/dg1/ Logisk semantik I 1 Lite om satslogik 1.1
Läs merTexten är en omarbetning av en text skriven av Rikard Bögvad för kursen Matematik I (30 hp).
Introduktion Med hjälp av dator kan man utföra omfattande matematiska beräkningar, men också få datorn att producera lösningar på icke-triviala uppgifter. I det här momentet av kursen ska vi bekanta oss
Läs merSTRÄNGAR DATATYPEN. Om du vill baka in variabler eller escape-tecken måste du använda dubbla citattecken. strängar
STRÄNGAR En av de mest avancerade av de normala datatyperna är. Här skall vi grundläggande gå igenom hur den datatypen fungerar och vidare flertalet funktioner som hör till datatypen. Låt oss kasta oss
Läs merDatalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs
Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera först talet 37 med 2. Använd heltalsdivision. Det ger kvoten
Läs merTentamen i kurserna Beräkningsmodeller (TDA181/INN110) och Grundläggande Datalogi (TDA180)
Göteborgs Universitet och Chalmers Tekniska Högskola 19 januari 2005 Datavetenskap TDA180/TDA181/INN110 Tentamen i kurserna Beräkningsmodeller (TDA181/INN110) och Grundläggande Datalogi (TDA180) Onsdagen
Läs merFL 5: Aritmetik. Teori
FL 5: Aritmetik Teori Introducerar Prologs inbyggda operationer för aritmetik Tillämpar dessa på enkla listhanteringsproblem, mha ackumulatorer Ser på svansrekursiva predikat och förklarar varför de är
Läs merObjektorienterad programmering Föreläsning 5
Objektorienterad programmering Föreläsning 5 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda UML Övning Mer om metoder Standardklassen String Konstruktorer Överlagrade metoder Standardklassen
Läs merLaboration 1: Figurer i hierarki
Laboration 1: Figurer i hierarki Bakgrund Två grundläggande tekniker i objektorienterad konstruktion är arv och komposition. Mål Laborationen har flera avsikter: 1. Ge kunskaper i hur program kan organiseras
Läs merTATA42: Föreläsning 7 Differentialekvationer av första ordningen och integralekvationer
TATA42: Föreläsning 7 Differentialekvationer av första ordningen och integralekvationer Johan Thim 0 januari 207 Introduktion En differentialekvation (DE) i en variabel är en ekvation som innehåller både
Läs mer