Logisk Programmering. Relasjoner vz. funksjoner. Funksjon: inn og ut, en verdi. Relasjon: ingen retning, null eller flere verdier
|
|
- Brynjar Amundsen
- 8 år siden
- Visninger:
Transkript
1 1 Logisk Programmering Relasjoner vz. funksjoner Funksjon: inn og ut, en verdi Relasjon: ingen retning, null eller flere verdier LP slagord: algoritme = logikk + kontroll Logikk ( hva ): logisk program Kontroll ( hvordan ): innebygd i tolkeren
2 2 Horn klausuler Logisk program: liste Horn klausuler Horn klausul: spesiell logisk setning x. P 1 P n C for alle x: C hvis P 1 og... og P n operasjonelt: beregn C gjennom beregning av P 1,..., P n Kan være betinget (n > 0) eller ubetinget (n = 0) Query (spørsmål): x. P 1 P n
3 3 Fakta, regler og spørsmål Horn klausuler i LP: c :- p1,...,pn. Logiske atomer c,p1,...,pn kan inneholde variabler Faktum (ubetinget), eksempel: foreleser(bezem,inf121). Regel (betinget), eksempel: eksaminator(x,y) :- foreleser(x,y). Spørsmål, eksempel:?- eksaminator(x,inf121). Predikater, variabler og konstanter
4 4 Lister i Prolog Ikke head : tail men [head tail] Samme [] Notasjon [1,2,3] som i ML I tillegg [1,2 Rest] for 1:2:Rest Prolog er utypet: [1,2, abc ] er OK
5 5 LP anvendelser Søkealgoritmer Kunstig intelligens Språkteknologi (parsing og oversetting) Spørrespråk for relasjonelle databaser (Datalog) Prototyping
6 6 Relasjoner Relasjon R formelt: R D n n-tupler: (d 1,..., d n ) D n Eksempel: {(ams, bgo), (ams, bcn), (bgo, osl), (osl, ams), (osl, cph), (bcn, cph)} Eksempel: {(0, 0, 0), (0, 1, 1), (1, 0, 1), (1, 1, 2),...} Eksempel: {([], [], []), ([a], [], [a]), ([], [a], [a]), ([a], [b], [a, b]),...} Hvordan spesifiseres relasjoner? (endelig/uendelig)
7 7 Relasjoner, spesifikasjon Direkte flyforbindelser: opplisting av fakta Addisjon: beregning av sum Konkatenering av lister (append): logisk program: append([],l,l). append([h T],L,[H TogL]) :- append(t,l,togl).
8 8 Eksempler på spørsmål (svar fra Prolog) append([a,b],[c],[a,b,c]). append([a,b],[c],l). append([a,b],l,[a,b,c]). append([a,b],[d],[a,b,c]). append([a,b],[d],[a,b,c]). append(l1,l2,[a,b,c]). append(l,[b,c],[a,b,c]). append(l,[b],[a,b,c]).
9 9 Prolog-syntaks Som i predikatlogikk, med noe særpreg Atom (språkatom): begynner med liten bokstav eller Enkel term: tall, variabel (begynner med stor bokstav), atom, eksempler: -1, 1.23E4, Liste, X, inf121, p, f Term (= sammensatt term), BNF syntaks: <term> ::= <enkel_term> <atom>(<terms>) <terms> ::= <term> <terms>,<term> <fact> ::= <term>. <rule> ::= <term> :- <terms>. <query> ::= <terms>. Obs: språkatomer versus predikatlogiske atomer
10 10 Eksempler Faktum: foreleser(bezem,inf121). Regel: eksaminator(x,y) :- foreleser(x,y). Spørsmål: eksaminator(x,inf121),foreleser(x,inf170). Øvelse: gi grammatiske avledniger Laste program: consult( Prosjekter/Prolog/flyforbindelser ). Liste program: listing.
11 11 Prolog program append([],l,l). append([h T],L,[H TogL]) :- append(t,l,togl). prefix(x,z) :- append(x,_,z). %% obs: _ suffix(y,z) :- append(_,y,z). %% obs: _ infix(y,z) :- prefix(x,z), suffix(y,x). %% obs: X % eksempel query: infix(l,[a,b,c])
12 12 Flyforbindelser direkte(bgo,ams). direkte(ams,bcn). direkte(bgo,osl). direkte(osl,ams). direkte(osl,cph). direkte(cph,bcn). forbindelse(x,x). forbindelse(x,z):- direkte(x,y),forbindelse(y,z).
13 13 Queries Er det en direkte flyforbindelse fra Bergen til Barcelona? Er det en flyforbindelse fra Bergen til Barcelona? Er det en flere flyforbindelser fra Bergen til Barcelona? Til hvilke byer kan vi fly fra Bergen? Fra hvilke byer kan vi fly til Amsterdam? Er det en flyforbindelse fra Bergen til Fantoft?
14 14 Viktige begrep Unifikasjon, = er syntaktisk likhet Eksempel: f(a,x)=f(y,b), 2=1+1 Dypde-først søk (depth-first search) Negasjon-ved-å-feile (negation as failure) Aritmetikk i Prolog: is Eksempel: X is 1+1, Y is Z+1
15 15 Kap. 3 Datastrukturer i Prolog Lister: [Head Tail] =.(Head,Tail) Eksempel:.(a,.(b,.(c,[]))) member i ML og i Prolog: % member _ [] = False % member e (h:t) = e==t member e t member(elt,[elt _]). member(elt,[_ Tail]):- member(elt,tail). LP: det positive eksplisitt, det negative ved å feile LP: member(b,[a,b,c,b]) lykkes to ganger!
16 16 Termer som datastrukturer Eksempel: binære søketrær Betingelse i hver node: tallene i deltreet til venstre skal være mindre enn tallet i selve noden, som i sin tur skal være mindre enn tallene i deltreet til høyre Eksempel: node(2,node(1,e,e),node(3,e,e)) Søk-algoritme: % jf. type Btree = Loev Node Int Btree Btree tmember(key,node(key,_,_)). %% obs: _ tmember(key,node(n,left,_)):- Key < N, tmember(key,left). tmember(key,node(n,_,right)):- Key > N, tmember(key,right).
17 17 Programmeringsteknikker Akkumulatorer Halerekursjon (tail recursion) Gjett og verifiser (guess and verify) Forskjellslister (difference lists) Åpne datastrukturer
18 18 Akkumulatorer Lengde i unær representasjon length([],0). length([_ Tail],N+1):- length(tail,n). Lengde i normal representasjon length([],0). length([_ Tail],Nplus1):- length(tail,n), Nplus1 is N+1. Ikke hale-rekursivt!
19 19 Tail recursion Lengde i normal representasjon, hale-rekursivt! length([],out,out). length([_ Tail],Accu,Out):- New is Accu+1, length(tail,new,out). length(l,n):- length(l,0,n). Obs: length/2 og length/3 Annet eksempel: snu en liste rev([],out,out). rev([h Tail],Accu,Out):- rev(tail,[h Accu],Out). rev(l,lrev):- rev(l,[],lrev). Obs: rev/2 og rev/3
20 20 Guess and verify Kalles også: generate and test Problemstilling: finn i en gitt mengde, et element som... Eksempel: overlapp mellom to lister Løsning: overlap(l1,l2):- member(e,l1),member(e,l2). deklarativt: det finnes et felles element i L1,L2 operasjonelt: generer alle E i L1, sjekk om E i L2 Pragmatikk: mengden skal være endelig, ellers skal du vite at det finnes et element som har egenskapen man ønsker
21 21 Difference lists Problemstilling: for treg konkatenering av lister IP løsning ifm. dynamiske lister: peker til siste element IP eksempel på tavla LP løsning: forskell-lister Representasjon, eksempel: dl([a,b,c X],X) Konkatenering: concat(dl(x,y),dl(y,z),dl(x,z)). (!) Eksempel: concat(dl([a,b L],L),dl([c M],M),dl(P,Q)).
22 22 Åpne datastrukturer Endemarkører ( endmarkers ): f.eks. [], Loev 1 Åpne datastrukturer: variabler som endmarkers Eksempel: [a,b,c []] vs. [a,b,c X] Variabelen gir tilgang til siste element Prolog variabel: peker til en datastruktur Kan utvides på konstant tid
23 23 Boblesortering i Prolog b([max],[],max). b([h1,h2 T],[H2 L],X) :- H1 >H2, b([h1 T],L,X). b([h1,h2 T],[H1 L],X) :- H1=<H2, b([h2 T],L,X). bs([],l,l). bs([h T],L,O) :- b([h T],Lred,Max), bs(lred,[max L],O). :- bs([12,-1,10,100,-3,0,0,-100,8,4,2,6,1],[],o).
LOGISK PROGRAMMERING. Prolog (kapittel 8): Fakta Regler Spørsmål Variable Hvordan finne svar? Unifikasjon Lister
LOGISK PROGRAMMERING Prolog (kapittel 8): Fakta Regler Spørsmål Variable Hvordan finne svar? Unifikasjon Lister Hoved-prinsipp: Hva istedenfor Hvordan! 1/16 Forelesning 13 18.11.2003 Logisk programmering
DetaljerINF3110 Programmeringsspråk
INF3 Programmeringsspråk Dagens tema Syntaks (Komp 47, kap 3 (og noe 4)) Repetisjon Regulære språk i klassisk BNF Regulære språk i utvidet BNF Regulære språk i jerbanediagrammer Regulære språk og automater
DetaljerFOL: syntaks og representasjon. 15. og 16. forelesning
FOL: syntaks og representasjon 15. og 16. forelesning Førsteordens logikk Førsteordens logikk: et formelt system som man bruker til å representere og studere argumenter. Som utsagnslogikk, men mer uttrykkskraftig,
DetaljerTDT4165 PROGRAMMING LANGUAGES. Exercise 01 Introduksjon til Oz
TDT4165 PROGRAMMING LANGUAGES Fall 2012 Exercise 01 Introduksjon til Oz Denne øvingen vil gjøre deg kjent med Emacs og Mozart. Du må kunne bruke disse verktøyene for å gjøre resten av øvingene. Mozart
DetaljerØvingsforelesning 1 Python (TDT4110)
Øvingsforelesning 1 Python (TDT4110) Introduksjon, Kalkulasjoner Ole-Magnus Pedersen Oversikt Praktisk Info Repetisjon fra sist Oppgaver for øving 2 2 Praktisk Info Last opp øvinger på Blackboard før godkjenning
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF3110/4110 Programmeringsspråk Eksamensdag: 2. desember 2003 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 7 sider. Vedlegg:
DetaljerRepetisjon. 1 binærtall. INF3110 Programmeringsspråk. Sist så vi ulike notasjoner for syntaks: Jernbanediagrammer. BNF-grammatikker.
INF3 Programmeringsspråk INF3 Programmeringsspråk Dagens tema Syntaks (Komp 47, kap 3 (og noe 4)) Repetisjon Regulære språk i klassisk NF Regulære språk i utvidet NF Regulære språk i jerbanediagrammer
DetaljerMAT1030 Plenumsregning 3
MAT1030 Plenumsregning 3 Ukeoppgaver Mathias Barra - 30. januar 2009 (Sist oppdatert: 2009-02-02 14:26) Plenumsregning 3 Oppgave 2.7 - Horners metode (a) 7216 8 : 7 8+2 58 8+1 465 8+6 3726. Svar: 3726
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2017 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2017, forelesning
DetaljerKap.4 del I Top Down Parsering INF5110 v2005. Arne Maus Ifi, UiO
Kap.4 del I Top Down Parsering INF5110 v2005 Arne Maus Ifi, UiO Innhold Motivering Boka gir først parsering uten First/Follow-mengder og så innfører dem. Vi tar teorien først First og Follow-mengder Fjerning
DetaljerKondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python.
Algoritmer og datastrukturer Kondisjonstest Python-oppgaver Onsdag 6. oktober 2004 Her er noen repetisjonsoppgaver i Python. Som alltid er den beste måten å lære å programmere på å sette seg ned og programmere
DetaljerStack. En enkel, lineær datastruktur
Stack En enkel, lineær datastruktur Hva er en stack? En datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Et nytt element legges alltid på toppen av stakken Skal vi
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2015 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2015, forelesning
DetaljerNorsk informatikkolympiade runde
Norsk informatikkolympiade 2017 2018 1. runde Sponset av Uke 46, 2017 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerDagens plan: INF Algoritmer og datastrukturer. Eksempel. Binære Relasjoner
Dagens plan: INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 10: Disjunkte Mengder Definisjon av binær relasjon Definisjon av ekvivalens
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2015 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2015, forelesning
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF3110/4110 Programmeringsspråk Eksamensdag: 3. desember 2004 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 8 sider. Vedlegg:
DetaljerKap. 4 del I Top Down Parsering INF5110 v2006. Stein Krogdahl Ifi, UiO
Kap. 4 del I Top Down Parsering INF5110 v2006 Stein Krogdahl Ifi, UiO 1 Innhold First og Follow-mengder Boka ser på én parseringsmetode først, uten å se på First/Follow-mengder. Vi tar teorien først To
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 10: Disjunkte Mengder Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 10 1 / 27
DetaljerOppgaver Prolog. Bok. Kapittel 11. Oppgave 11.1. Definer relasjoner
Oppgaver Prolog Bok Kapittel 11 Oppgave 11.1. Definer relasjoner /* Database */ /* mammas famile */ father( nicolai, edny ). father( nicolai, harald ). /* min famile */ father( rasmus, eva ). father( rasmus,
DetaljerINF5110, onsdag 19. februar, Dagens tema: Parsering ovenfra-ned (top-down)
INF5110, onsdag 19. februar, 2014 Dagens tema: Kapittel 4 Parsering ovenfra-ned (top-down) Vi har med alle foilene til kap. 4 her, også de som ble gjennomgått mot slutten av forelesning 7. februar Pensum
DetaljerINF1010 Binære søketrær ++
INF1010 Binære søketrær ++ Programeksempler med insetting, gjenfinning av noder i et binært søketre samt eksempler på hvordan lage en liste av et binærtre. Hva må du kunne om binære søketrær i INF1010
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.
DetaljerHjemmeeksamen 1 i INF3110/4110
Hjemmeeksamen i INF30/40 Innleveringsfrist: fredag 24. oktober kl. 500 Innlevering Hele besvarelsen skal leveres skriftlig på papir i IFI-ekspedisjonen innen fredag 24. oktober kl. 500. Merk besvarelsen
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2016 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2016, forelesning
DetaljerTDT4102 Prosedyreog objektorientert programmering Vår 2016
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyreog objektorientert programmering Vår 2016 Øving 4 Frist: 2016-02-12 Mål for denne øvingen:
DetaljerDel 4 Noen spesielle C-elementer
Del 4 Noen spesielle C-elementer 1 RR 2016 Header-filer inneholder Prototypene til funksjonene i standard biblioteket Verdier og definisjoner som disse funksjonene bruker #include #include
DetaljerKap.4 Funksjoner. Tre viktig ting ifm. funksjoner: parameter (input) oppskrift (body) for å beregne resultat (output)
1 Kap.4 Funksjoner Tre viktig ting ifm. funksjoner: navn parameter (input) oppskrift (body) for å beregne resultat (output) Syntaks: = Deklarerte funksjoner kan brukes i uttrykk
DetaljerINF januar 2015 Stein Michael Storleer (michael) Lenkelister
INF1010 29. januar 2015 Stein Michael Storleer (michael) Lenkelister Lenke + lister = lenkelister Vi starter med lenkeobjektene Lager en kjede av objekter ved hjelp av pekere class { ; Legger Jl data innholdet
DetaljerLøsningsforslag for Obligatorisk Oppgave 3. Algoritmer og Datastrukturer ITF20006
Løsningsforslag for Obligatorisk Oppgave 3 Algoritmer og Datastrukturer ITF20006 Lars Vidar Magnusson Frist 28.03.14 Den tredje obligatoriske oppgaven tar for seg forelesning 9 til 13, som dreier seg om
DetaljerINF1010 Rekursive metoder, binære søketrær. Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre
INF1010 Rekursive metoder, binære søketrær Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre public void skrivutmeg ( ) { System. out. println (navn + " er venn med " + minbestevennheter
DetaljerForelesning 33. Repetisjon. Dag Normann mai Innledning. Kapittel 11
Forelesning 33 Repetisjon Dag Normann - 26. mai 2008 Innledning Onsdag 21/5 gjorde vi oss ferdige med det meste av den systematiske repetisjonen av MAT1030. Det som gjensto var kapitlene 11 om trær og
DetaljerINF3110 Programmeringsspråk. Velkommen til kurset INF 3110/4110. Programmeringsspråk 1/24
Velkommen til kurset INF 3110/4110 Programmeringsspråk 1/24 Forelesning 1 20.8.2003 Først det praktiske Foreleser: Roger Antonsen E-post: rantonse@ifi.uio.no Kontor: rom 3403 Treffetid: etter avtale Undervisning
DetaljerINF 3110/4110. Velkommen til kurset. Programmeringsspråk. Først det praktiske
Velkommen til kurset INF 3110/4110 Programmeringsspråk 1/24 Først det praktiske Foreleser: Roger Antonsen E-post: rantonse@ifi.uio.no Kontor: rom 3403 Treffetid: etter avtale Undervisning Forelesninger:
DetaljerNorsk informatikkolympiade 2014 2015 1. runde
Norsk informatikkolympiade 2014 2015 1. runde Sponset av Uke 46, 2014 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerTuringmaskiner.
Turingmaskiner http://www.youtube.com/watch?v=e3kelemwfhy http://www.youtube.com/watch?v=cyw2ewoo6c4 Søking i strenger Vanlige søkealgoritmer (on-line-søk) Prefiks-søking Naiv algoritme Knuth-Morris-Pratt-algoritmen
DetaljerPG4200 Algoritmer og datastrukturer Forelesning 7
PG4200 Algoritmer og datastrukturer Forelesning 7 Lars Sydnes, NITH 19. mars 2014 I. TERMINOLOGI FOR TRÆR TRÆR Lister: Lineære Trær: Hierarkiske Modell / Språk: Bestanddeler: Noder, forbindelser. Forbindelse
DetaljerUNIVERSITETET I OSLO
Eksamen i INF3110/INF4110, 1. desember 2005 Side 1 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF3110/4110 - Programmeringsspråk Eksamensdag: 1. desember 2005 Tid for eksamen:
DetaljerMAT1030 Diskret matematikk
MAT1030 Diskret matematikk Forelesning 33: Repetisjon Dag Normann Matematisk Institutt, Universitetet i Oslo 26. mai 2008 Innledning Onsdag 21/5 gjorde vi oss ferdige med det meste av den systematiske
DetaljerInnledning. MAT1030 Diskret matematikk. Kapittel 11. Kapittel 11. Forelesning 33: Repetisjon
Innledning MAT1030 Diskret matematikk Forelesning 33: Repetisjon Dag Normann Matematisk Institutt, Universitetet i Oslo 26. mai 2008 Onsdag 21/5 gjorde vi oss ferdige med det meste av den systematiske
DetaljerUNIVERSITETET I OSLO SQL. Structured Query Language. (The intergalactic dataspeak) Institutt for Informatikk. INF Ragnar Normann 1
UNIVERSITETET I OSLO SQL Structured Query Language (The intergalactic dataspeak) Institutt for Informatikk INF3100 1.2.2005 Ragnar Normann 1 SQL SQL Structured Query Language er et deklarativt språk for
DetaljerRekursjon og lister. Stephan Oepen & Erik Velldal. 1. februar, Universitetet i Oslo
INF2810: Funksjonell programmering Rekursjon og lister Stephan Oepen & Erik Velldal Universitetet i Oslo 1. februar, 2013 Agenda 2 Forrige uke Scheme Substitusjonsmodellen Blokkstruktur Predikater Kondisjonale
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 5: Prioritetskø og Heap Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 5 1 /
DetaljerIN Algoritmer og datastrukturer
IN2010 - Algoritmer og datastrukturer HØSTEN 2018 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 3: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning
DetaljerNorsk informatikkolympiade runde
Norsk informatikkolympiade 2016 2017 1. runde Sponset av Uke 46, 2016 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerINF3140 Modeller for parallellitet INF3140/4140: Programanalyse
INF3140/4140: Programanalyse Uke 4, side 1. Hvordan sjekke egenskaper ved programmer? Testing eller debugging øker tilliten til programmet ved prøving, men gir ingen garanti for korrekthet Operasjonell
DetaljerEksamen i SLI 5 høsten 1993
1 Eksamen i SLI 5 høsten 1993 Tid: Mandag 29.november 1993 kl. 9-15 (6 timer). Det er ikke tillatt med trykte eller skrevne hjelpemidler. Som siste ark i dette eksamenssettet er det lagt ved en liste over
DetaljerINF4170 Logikk. Forelesning 12: Automatisk bevissøk IV matriser og koblingskalkyle. Bjarne Holen. Institutt for informatikk, Universitetet i Oslo
INF4170 Logikk Forelesning 12: matriser og koblingskalkyle Bjarne Holen Institutt for informatikk, Universitetet i Oslo 11. mai 2010 Dagens plan 1 Institutt for informatikk (UiO) INF4170 Logikk 11.05.2010
DetaljerKap. 4: Ovenfra-ned (top-down) parsering
Kap. 4: Ovenfra-ned (top-down) parsering Dette bør leses om igjen etter kapittelet: First og Follow-mengder Boka tar det et stykke uti kap 4, vi tok det først (forrige foilbunke) LL(1)-parsering og boka
DetaljerNorsk informatikkolympiade runde. Sponset av. Uke 46, 2017
Norsk informatikkolympiade 2017 2018 1. runde Sponset av Uke 46, 2017 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerTDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python
TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python Professor Guttorm Sindre Institutt for datateknikk og informasjonsvitenskap Læringsmål og pensum Mål Vite hva et
DetaljerINF5110 V2012 Kapittel 4: Parsering ovenfra-ned
INF5110 V2012 Kapittel 4: Parsering ovenfra-ned (top-down) Tirsdag 7. februar Stein Krogdahl, Ifi, UiO Oppgaver som gjennomgås i morgen, onsdag: -Spørsmålene på de to siste foilene fra onsdag 1/2 (Bl.a.
DetaljerHvor er vi nå - kap. 3 (+4,5)? Forenklet skisse av hva en parser gjør PARSER. Kontekstfrie grammatikker og syntaksanalyse (parsering)
Hvor er vi nå - kap. 3 (+4,5)? Kontekstfrie grammatikker og syntaksanalyse (parsering) INF5110 - kap.3 i Louden + hjelpenotat (se hjemmesida) Arne Maus Ifi, UiO v2006 program Pre - processor Makroer Betinget
DetaljerSøking i strenger. Prefiks-søking Naiv algoritme Knuth-Morris-Pratt-algoritmen Suffiks-søking Boyer-Moore-algoritmen Hash-basert Karp-Rabin-algoritmen
Søking i strenger Vanlige søkealgoritmer (on-line-søk) Prefiks-søking Naiv algoritme Knuth-Morris-Pratt-algoritmen Suffiks-søking Boyer-Moore-algoritmen Hash-basert Karp-Rabin-algoritmen Indeksering av
DetaljerHva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist
Stack Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Et nytt element legges alltid på toppen av stakken Skal vi ta ut et element, tar
DetaljerHva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist
Stack Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Et nytt element legges alltid på toppen av stakken Skal vi ta ut et element, tar
DetaljerScanning - I Kap. 2. Hva scanneren gjør
Scanning - I Kap. 2!! Hovedmål! Gå ut fra en beskrivelse av de enkelte tokens, og hvordan de skal deles opp i klasser! Lage et program (funksjon, prosedyre, metode) som leverer ett og ett token, med all
DetaljerDagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2)
Dagens tema Syntaks (kapittel 2.1 + Komp. 47, kap. 1 og 2) 1/19 Forelesning 6 1.10.2003 Litt om kompilering og interpretering En kompilator oversetter et program til et annet språk, for eksempel maskinspråk.
DetaljerNotater til INF2220 Eksamen
Notater til INF2220 Eksamen Lars Bjørlykke Kristiansen December 13, 2011 Stor O notasjon Funksjon Navn 1 Konstant log n Logaritmisk n Lineær n log n n 2 Kvadratisk n 3 Kubisk 2 n Eksponensiell n! Trær
DetaljerLeksjon 2. Setninger og uttrykk
6108 Programmering i Java Leksjon 2 Setninger og uttrykk Del 1 Roy M. Istad 2015 Variabel Verdi Datatype Navnsatt lagringsplass. (Tenk: Oppbevaringsboks). Innholdet i en variabel. (Tenk: Klosse). Hvor
DetaljerLeksjon 2. Setninger og uttrykk
6108 Programmering i Java Leksjon 2 Setninger og uttrykk Del 1 Roy M. Istad 2015 Variabel Verdi Datatype Navnsatt lagringsplass. (Tenk: Oppbevaringsboks). Innholdet i en variabel. (Tenk: Klosse). Hvor
DetaljerUNIVERSITETET I OSLO
Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 13. desember 2011 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 7 sider. Vedlegg: INF2220 lgoritmer og datastrukturer
DetaljerLitt om kompilering og interpretering. Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2) Syntaks og semantikk
Litt om kompilering og interpretering Dagens tema Syntaks (kapittel 2. + Komp. 47, kap. og 2) En kompilator oversetter et program til et annet språk, for eksempel maskinspråk. Et program interpreteres
DetaljerAlgoritmer og datastrukturer Vedlegg A.2 BitOutputStream
Vedlegg A.2 BitOutputStream Side 1 av 6 Algoritmer og datastrukturer Vedlegg A.2 BitOutputStream A.2 BitOutputStream A.2.1 Instansiering og skriving BitOutputStream har fire konstruktører og to konstruksjonsmetoder
DetaljerINF2810: Funksjonell Programmering. Mer om strømmer
INF2810: Funksjonell Programmering Mer om strømmer Stephan Oepen & Erik Velldal Universitetet i Oslo 19. april 2013 Tema 2 Forrige uke Repetisjon: parallelitet Noe helt nytt: strømmer Noe quizzaktivitet
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF 110 Algoritmer og datastrukturer Eksamensdag : Lørdag 8. desember 2001 Tid for eksamen : 09.00-15.00 Oppgavesettet er på
DetaljerINF2080 Logikk og beregninger
INF2080 Logikk og beregninger Forelesning 9: Endelige kjeder Sist oppdatert: 2012-02-15 11:22 9.1 Beskrivelse endelige kjeder Fargelegging av kjeder 9.1 Beskrivelse endelige kjeder Fargelegging av kjeder
DetaljerKap.4 del 2 Top Down Parsering INF5110 v2005. Arne Maus Ifi, UiO
Kap.4 del 2 Top Down Parsering INF5110 v2005 Arne Maus Ifi, UiO LL(1) tabell for uttrykks-grammatikk Har fjernet venstrerekursjon: Har fjernet venstre-rekursjon: Alternativ def. av LL(1) grammatikker Sier
DetaljerAlle hele tall g > 1 kan være grunntall i et tallsystem.
Tallsystemer Heltall oppgis vanligvis i det desimale tallsystemet, også kalt 10-tallssystemet. Eksempel. Gitt tallet 3794. Dette kan skrives slik: 3 1000 + 7 100 + 9 10 + 4 = 3 10 3 + 7 10 2 + 9 10 1 +
DetaljerDatatyper og typesjekking
Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem i kompilatoren? Gjennomgang av noen typer Grunntyper Type-konstruktører
DetaljerTypisk: Kan det være både nøkkelord og navn, så skal det ansees som nøkkelord
Scanning-I Kap. 2 Hovedmål Gå ut fra en beskrivelse av de enkelte leksemer (tokens), og hvordan de skal deles opp i klasser Lage et program (funksjon, prosedyre, metode) som leverer ett og ett token, med
DetaljerDatatyper og typesjekking
Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem i kompilatoren? Gjennomgang av noen typer Grunntyper Type-konstruktører
DetaljerBinære trær: Noen algoritmer og anvendelser
Binære trær: Noen algoritmer og anvendelser Algoritmer / anvendelser: Søking i usortert binært tre Telling av antall noder og nivåer i treet Traversering av binære trær Binære uttrykkstrær Kunstig intelligens(?):
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 10. juni 2009 Tid for eksamen: 9.00 12.00 Oppgavesettet
DetaljerINF2810: Funksjonell Programmering. Utsatt evaluering og strømmer
INF2810: Funksjonell Programmering Utsatt evaluering og strømmer Stephan oepen Universitetet i Oslo 6. april 2017 Tema 2 Forrige gang Ny datastruktur, ny teknikk: Strømmer Utsatt evaluering I dag Uendelige
DetaljerTypisk: Kan det være både nøkkelord og navn, så skal det ansees som nøkkelord
Scanning - I Kap. 2 Hovedmål Gå ut fra en beskrivelse av de enkelte tokens, og hvordan de skal deles opp i klasser Lage et program (funksjon, prosedyre, metode) som leverer ett og ett token, med all nødvendig
DetaljerSkanning del I INF /01/15 1
Skanning del I INF 5110-2015 21/01/15 1 Skanning: innhold (begge forelesningene) Hva gjør en skanner? Input: Programteksten. Output: Ett og ett token fra programteksten (sekvensielt). Regulære uttrykk/definisjoner.
DetaljerINF1010 siste begreper før oblig 2
INF1010 siste begreper før oblig 2 Sammenligning. Mer lenkede lister. Forskjellige listeimplementasjoner. Binære trær. Bittelitt om grensesnitt (interface). Dagens forelesning Flere temaer på grunn av
DetaljerINF2810: Funksjonell Programmering. Utsatt evaluering og strømmer
INF2810: Funksjonell Programmering Utsatt evaluering og strømmer Stephan oepen Universitetet i Oslo 6. april 2017 Tema 2 Forrige gang Ny datastruktur, ny teknikk: Strømmer Utsatt evaluering I dag Uendelige
DetaljerHva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema
va er en algoritme? Vanlig sammenligning: Oppskrift. nput lgoritme NF1020 - ØSTEN 2006 Kursansvarlige Ragnar Normann E-post: ragnarn@ifi.uio.no Output Knuth : tillegg til å være et endelig sett med regler
DetaljerINF2810: Funksjonell Programmering. Mer om strømmer
INF2810: Funksjonell Programmering Mer om strømmer Stephan Oepen & Erik Velldal Universitetet i Oslo 19. april 2013 Tema 2 Forrige uke Repetisjon: parallelitet Noe helt nytt: strømmer Noe quizzaktivitet
Detaljerpublic static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
DetaljerINF1800 LOGIKK OG BEREGNBARHET
INF1800 LOGIKK OG BEREGNBARHET FORELESNING 6: UTSAGNSLOGIKK Roger Antonsen Institutt for informatikk Universitetet i Oslo 3. september 2008 (Sist oppdatert: 2008-09-03 12:49) Mer om bruk av utsagnslogikk
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 1. desember 2010 Tid for eksamen: 14.00 18.00
DetaljerINF april, 2015 Stein Krogdahl Ifi, UiO. Svar på oppgaver til kap. 8. Ble lagt ut 24. april
INF5110 28. april, 2015 Stein Krogdahl Ifi, UiO Svar på oppgaver til kap. 8 Ble lagt ut 24. april 1 SVAR: Oppgave 8.1.c (fra boka) Lag for hånd TA-kode for følgende uttrykk: a * b + a * b * c Du skal ikke
DetaljerNybegynnerkurs i C. Øyvind Grønnesby. 14. oktober Introduksjon Typer Operatorer Kontrollstrukturer Pekere Makroer Lenker
Nybegynnerkurs i C Øyvind Grønnesby 14. oktober 2004 Introduksjon pass-by-value svakt typet portabel assembler siste ISO-standard er C99 Hello world #i n c l u d e < s t d l i b. h> #i n c l u d e
DetaljerINF3170 / INF4171. Intuisjonistisk logikk: Kripke-modeller, sunnhet, kompletthet. Andreas Nakkerud. 15. september 2015
INF3170 / INF4171 Intuisjonistisk logikk: Kripke-modeller, sunnhet, kompletthet Andreas Nakkerud 15. september 2015 Kripke-modeller Vi ser på modeller for et språk L. Definisjon En Kripke-modell er et
DetaljerIntroduksjon til objektorientert programmering
Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes
DetaljerMAT1030 Diskret matematikk
MAT1030 Diskret matematikk Forelesning 27: Trær Dag Normann Matematisk Institutt, Universitetet i Oslo 30. april 2008 Oppsummering Mandag så vi på hvordan vi kan finne uttrykk og termer på infiks form,
DetaljerSyntaksanalyse. Skanner (repetisjon) Parsering top-down bottom-up LL(1)-parsering Recursive descent Forutsetninger. IN 211 Programmeringsspråk
Syntaksanalyse Skanner (repetisjon) Parsering top-down bottom-up LL(1)-parsering Recursive descent Forutsetninger Ark 1 av 26 Forelesning 15.10.2001 Syntaksanalyse En parser er et program som analyserer
DetaljerDatatyper og typesjekking
Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem i kompilatoren? Gjennomgang av noen typer Grunntyper Type-konstruktører
DetaljerDatastrukturer. Stakker (Stacks) Hva er en datastruktur? Fordeler / Ulemper. Generelt om Datastrukturer. Stakker (Stacks) Elementære Datastrukturer
Hva er en datastruktur? Datastrukturer Elementære Datastrukturer En datastruktur er en systematisk måte å lagre og organisere data på, slik at det er lett å aksessere og modifisere dataene Eksempler på
Detaljer156C. Algoritmer og maskinspråk. IT1101 Informatikk basisfag. Maskinspråk: det maskinen forstår. Assembler / assemblerspråk
IT1101 Informatikk basisfag I dag Programmeringsspråk Problemer med maskinspråk I dag: 5.1-5.3 Fra lavnivå til høynivå programmeringsspråk - utvikling Kompilator / tolker Programmeringsparadigmer Tradisjonelle
DetaljerLars Vidar Magnusson Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting
Rød-Svarte Trær Lars Vidar Magnusson 21.2.2014 Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting Rød-Svarte Trær Rød-Svarte trær (red-black trees) er en variasjon binære søketrær som
DetaljerAlgoritmer og Datastrukturer
Eksamen i Algoritmer og Datastrukturer IAI 20102 Høgskolen i Østfold Avdeling for informatikk og automatisering Tirsdag 3. desember 2002, kl. 09.00-14.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler.
DetaljerINF Repetisjon: Hvordan bygge treet og analysere? 8. september Typisk situasjon. De problematiske syntaks-diagrammene
Dagens tema: INF 2100 8. september 2004 Mer om strukturen i treet og hvordan bygge det Testing av at navn er deklarert og brukt riktig Arbeid i gruppene neste uke: Oppgaver relevant for dette stadiet i
DetaljerKøbenhavn 20 Stockholm
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 Algoritmer og datastrukturer Eksamensdag: 26. mai 2001 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 7 sider. Vedlegg:
DetaljerMAT1030 Forelesning 2
MAT1030 Forelesning 2 Kontrollstrukturer, tallsystemer, basis Dag Normann - 20. januar 2010 (Sist oppdatert: 2010-01-20 12:31) Kapittel 1: Algoritmer (fortsettelse) Kontrollstrukturer I går innførte vi
DetaljerINF våren 2017
INF1010 - våren 2017 Om Java Objekter og klasser Både for deg som kan og for deg som ikke kan Java Stein Gjessing Universitetet i Oslo Ny versjon etter forlesningen der tre meningsløse private modifikatorer
DetaljerINF 2820 V2016: Obligatorisk innleveringsoppgave 3
INF 2820 V2016: Obligatorisk innleveringsoppgave 3 Besvarelsene skal leveres i devilry innen torsdag 21.4 kl 18.00 Filene det vises til finner du i o /projects/nlp/inf2820/cfg Oppgave 1: Shift-reduce-effektivisering
Detaljer