INF2820 Datalingvistikk V2012. Jan Tore Lønning

Save this PDF as:
 WORD  PNG  TXT  JPG

Størrelse: px
Begynne med side:

Download "INF2820 Datalingvistikk V2012. Jan Tore Lønning"

Transkript

1 INF2820 Datalingvistikk V2012 Jan Tore Lønning

2 LITT PYTHON 2

3 Hvorfor Pyhton NLTK Natural Language Tool Kit: Omgivelser for å eksperimentere med datalingvistikk Diverse datalingvistiske algoritmer Inkluderte språkdata, korpora Vekt på læring Python var først scripting language: Styre andre programmer, inkludert NLTK rutiner Gode redskaper for behandling av tekst string, list Intuitiv og lesbar syntaks som en pseudokode Read-eval-print -løkke for rask utvikling 3

4 Python syntaks def f(i): for j in [2,3,4]: i=j+i print i def g(i): for j in [2,3,4]: i=j+i print i Tilordning: a = 5 Python bruker indent som blokkavgrenser: Andre språk: begin-end, ( ) Hva tror du blir resultatet av kallene f(8) g(8) 4

5 Python datatyper integer float string: Hello world lister: [3, 4, 5] [ Hello, world ] [3, 4, c] Aksesseres med indekser mutable >>> a = "Hello world" >>> a 'Hello world' >>> len(a) 11 >>> a[0] 'H' >>> a[-1] 'd' >>> b = a[3:7] >>> b 'lo w' >>> type(b) <type 'str'> >>>c = 10 >>>e = [3,4,c,c+c,5*c] >>>e [3,4,10,20,50] >>>e[3] = 19 >>>e [3,4,10,19,50] >>>f = e[1:] >>>f [4,10,19,50] >>>e[3]=f >>>e [3,4,10,[4,10,19,50],50] >>>f[2]=0 >>>e? 5

6 Python er objektorientert Alt er objekter Har sine metoder Eksempler med strenger: Hello world,.split() world,.strip(, ) 6

7 DFA i Python if state in fa.finals: return True: else: return False def recognize(fa, streng): state = fa.start samme som while True: if len(streng)==0: return state in fa.finals elif (state,streng[0]) not in \ fa.edge.keys(): return False else: state = fa.edge[(state,streng[0])] streng = streng[1:] Jurafsky & Martin, fig Enkel Python 7

8 DFA i Python - datastruktur class DFA: def init (self): self.edge = {} self.finals = [] f = DFA() Denne strukturen for visning på skjerm f.start Bedre = 0 praksis (mer tekst): f.finals.append(4) Rutiner i klassen som leser inn data og f.edge[(0,'b')] konstruerer = objektet 1 Legg funksjonen som metode i klassen f.edge[(1,'a')] = 2 f.edge[(2,'a')] = 3 f.edge[(3,'a')] = 3 f.edge[(3,'!')] = 4 Datastruktur def recognize(fa, streng): state = fa.start while True: if len(streng)==0: return state in fa.finals elif (state,streng[0]) not in \ fa.edge.keys(): return False else: state = fa.edge[(state,streng[0])] streng = streng[1:] Enkel Python 8

9 Rekursjon iterasjon def recognize3(fa, streng, trace=0): state = fa.start return rec(fa, state, streng, trace) def rec(fa, state, streng, trace): if trace > 0: print streng, state if len(streng)==0: return state in fa.finals elif (state, streng[0]) not in \ fa.edge.keys(): return False else: state = fa.edge[(state,streng[0])] return rec(fa, state, streng[1:], trace) def recognize(fa, streng): state = fa.start while True: if len(streng)==0: return state in fa.finals elif (state,streng[0]) not in \ fa.edge.keys(): return False else: state = fa.edge[(state,streng[0])] streng = streng[1:] Rekursiv Iterativ 9

10 PROSESSERING MED NFA 10

11 Søkerom 11

12 Breddeførst søk JFLAP Parallellsøk er noe tilsvarende 12

13 Dybdeførst søk m/ Backtracking Jurafsky og Martin 13

14 Husk: rekursiv DFA def recognize3(fa, streng, trace=0): state = fa.start return rec(fa, state, streng, trace) def rec(fa, state, streng, trace): if trace > 0: print streng, state if len(streng)==0: return state in fa.finals elif (state, streng[0]) not in \ fa.edge.keys(): return False else: state = fa.edge[(state,streng[0])] return rec(fa, state, streng[1:], trace) def recognize(fa, streng): state = fa.start while True: if len(streng)==0: return state in fa.finals elif (state,streng[0]) not in \ fa.edge.keys(): return False else: state = fa.edge[(state,streng[0])] streng = streng[1:] Rekursiv Iterativ 14

15 NFA i Python - Backtracking def recognize3(fa, streng, trace=0): state = fa.start return rec(fa, state, streng, trace) def recognize4(fa, streng, trace=0): state = fa.start return rec(fa, state, streng, trace) def rec(fa, state, streng, trace): if trace > 0: print streng, state if len(streng)==0: return state in fa.finals elif (state, streng[0]) not in \ fa.edge.keys(): return False else: state = fa.edge[(state,streng[0])] return rec(fa, state, streng[1:], trace) def rec(fa, state, streng, trace): if trace > 0: print streng, state if len(streng) == 0: return state in fa.finals else: states = [e[2] for e in fa.edges if state == e[0] and streng[0] == e[1] ] for state in states: if rec(fa,state, streng[1:], trace): return True return False DFA NFA uten ε-transisjoner 15

16 NFA i Python - Datastruktur class NFA: def init (self): self.edges = [] self.finals = [] f = NFA( ) f.start = 0 f.finals.append(4) f.edges= [ (0,'b',1), (1,'a',2), (2,'a',3), (3,'a',3), (3,'!',4) ] g=nfafromfile('template.nfa') def recognize4(fa, streng, trace=0): state = fa.start return rec(fa, state, streng, trace) def rec(fa, state, streng, trace): if trace > 0: print streng, state if len(streng) == 0: return state in fa.finals else: states = [e[2] for e in fa.edges if state == e[0] and streng[0] == e[1] ] for state in states: if rec(fa,state, streng[1:], trace): return True return False NFA uten ε-transisjoner 16

17 Python: list comprehension edges = [e for e in fa.edges if state == e[0] and streng[0] == e[1] ] { e fa. edges e[0] = state e[1] streng[0] } E = = edges = [] for e in fa.edges: if state == e[0] and streng[0] ==e[1]: edges.append(e) 17

18 Python: list comprehension states = [e[2] for e in fa.edges if state == e[0] and streng[0] == e[1] ] states = [e[2] for e in fa.edges if state==e[0] and streng[0]==e[1] ] states = [] for e in fa.edges: if state==e[0] and streng[0]==e[1]: states.append(e[2]) S { e[2] e E} = { e[ 2] e { e fa. edges e[0] = state e[1] streng[0] } S = = 18

19 Jurafsky og Martins algoritme Strengt tatt: nøytral mht. Dybde-først vs bredde-først Bruker løkke+agenda i stedet for rekursjon 19

20 Egenskaper ved algoritmene Både dybde-først m/backtracking breddeførst vil i verste fall ha eksponentielt tidsforbruk proporsjonalt med k n, der n= w, lengden av input k 2 er maks antall kanter fra en node merket med samme symbol Med epsilontransisjoner Kan risikere ikke terminerer! Men vi vet jo at hvis vi først lager DFA får vi linjært tidsforbruk! 20

21 En raskere algoritme En konfigurasjon består av: En mengde tilstander Resten av strengen Start: Q0 = E({q0}) (E er epsillontillukning) Oppdatering Gitt konfigurasjon: w_n = s w Qn={q1,, qk} La ny konfigurasjon være w_n+1 = w Qn+1=E(δN(q1,s) δn(q2,s) δn(qk,s)) Akseptering Konfigurasjonen w_n = ε Qn={q1,, qk} Aksepterer hvis minst en av q1,, qk er en sluttilstand. 21

22 NFA-anerkjenning i Python (uten ε) def recognize(fa, streng): state = fa.start while True: if len(streng)==0: return state in fa.finals elif (state,streng[0]) not in \ fa.edge.keys(): return False else: state = fa.edge[(state,streng[0])] streng = streng[1:] def recognize5(self, streng, trace=0): states = [self.start] while True: if trace > 0: print streng, list(states) if len(streng)==0: successtates = [s for s in states if s in self.finals] return len(successtates)> 0 elif len(states) == 0: return False else: states = set([e[2] for e in self.edges if e[0] in states and streng[0] == e[1] ]) streng = streng[1:] Deterministisk Ikke-deterministisk 22

23 Egenskaper Svarer til underveis å bygge de delene vi trenger av DFA-ene som svarer til denne NFA-en. Algoritmen er linjær i w =n. Men kvadratisk i antall tilstander: m O(n m**2) Terminerer 23

24 Implementasjonon av NFA-er Oppsummering: 1. DFA-algoritmen: Konstruer en ekvivalent DFA (Minimaliser denne) Bruk DFA-en 2. NFA-algoritmen: Som simulerer DFA underveis For 1: Teoretisk raskere Mot 1: DFA-en kan få 2 n tilstander der n er tilstander i NFA-en: Tar mye plass Kan i praksis ta lengre tid å slå opp i DFA-en Hvilken algoritme som er best: Er et empirisk spørsmål Avhenger av oppgaven 24

25 REGULÆRE UTTRYKK I PRAKSIS 25

26 Regulære uttrykk to tilnærminger Teoretisk Sett på så langt Oprinnelig (1950-tallet) J&M seksj 2.3 Tilstreber: Minst mulig notasjon for å definere klassen Formelt meget veldefinert Praktisk RegEx Unix (grep/egrep), Perl, Emacs, Tilstreber effektiv i bruk Spesialsymboler, div. forkortelser. MEN: kan inneholde muligheter som går ut over de regulære språkene! 26

27 Forskjeller til teoretiske RE Vi beskriver ikke et språk men søker etter substrenger av et språk Ankere ^ begynnelsen av linjen $ slutten av linjen Går ut over rene RE Muligheten til å referere tilbake til hele grupper: Går utover regulære språk Kan ikke uten videre bruke DFA som algoritme 27

28 Implementasjon av regex 3. Backtracking: En prøver å matche regex direkte mot (et segment av) strengen Leser regex fra venstre mot høyre (tilpasset for * + ) Ser om en kan utvide strengsegmentet til å matche neste symbol i regex Hvis ikke: backtrack gå tilbake på tidligere valg SØK: finn et delsegment av strengen som matcher OBS: Regex går også utover kontekstfrie språk 28

29 Implementasjon av regex Hvis ekte regulært uttrykk: Gjør om til NFA Bruk algoritme 1 eller 2 Hvis regex går utover regulære uttrykk er det vanlige Bruk algoritme av type 3 29

30 Ta med hjem: Gitt en NFA: N som beskriver et språk L=L(N) Da finnes det en DFA: D som beskriver samme språk, L=L(D) Skal vi implementere N, kan vi enten konstruere D (forrige gang) Eller prosessere direkte med N (som om det var D) Uansett er prosedyren Ikke flertydig Deterministisk Tidsforbruket er linjært i input 30

1/26/2012 LITT PYTHON. INF2820 Datalingvistikk V2012. Hvorfor Pyhton. Python syntaks. Python er objektorientert. Python datatyper.

1/26/2012 LITT PYTHON. INF2820 Datalingvistikk V2012. Hvorfor Pyhton. Python syntaks. Python er objektorientert. Python datatyper. INF2820 Datalingvistikk V2012 Jan Tore Lønning LITT PYTHON 2 Hvorfor Pyhton Python syntaks NLTK Natural Language Tool Kit: Omgivelser for å eksperimentere med datalingvistikk Diverse datalingvistiske algoritmer

Detaljer

INF2820 Datalingvistikk V forelesning, 30.1 Jan Tore Lønning

INF2820 Datalingvistikk V forelesning, 30.1 Jan Tore Lønning INF2820 Datalingvistikk V2014 3. forelesning, 30.1 Jan Tore Lønning Idag Noen ord om Python Implementasjon av DFA J&Ms algoritme Oversatt til Python Rekursiv vs. Iterativ implementasjon Naiv NFA-algoritme

Detaljer

INF2820 Datalingvistikk V2016. Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning INF2820 Datalingvistikk V2016 Jan Tore Lønning I dag Automater og regulære uttrykk Litt Python Implementasjon av DFA i Python Naiv NFA-algoritme Smart NFA-algoritme Pythonimplementasjon av smart NFA 1.

Detaljer

INF2820 Datalingvistikk V2015. Jan Tore Lønning

INF2820 Datalingvistikk V2015. Jan Tore Lønning INF2820 Datalingvistikk V2015 Jan Tore Lønning Idag Automater og regulære uttrykk Litt Python Implementasjon av DFA i Python Naiv NFA-algoritme Smart NFA-algoritme Pythonimplementasjon 30. januar 2015

Detaljer

INF2820 Datalingvistikk V2017 Forelesning 3, 30.1 Jan Tore Lønning

INF2820 Datalingvistikk V2017 Forelesning 3, 30.1 Jan Tore Lønning INF2820 Datalingvistikk V2017 Forelesning 3, 30.1 Jan Tore Lønning I dag Regulære språk og endelige tilstandsmaskiner oppsummering Reg.ex. i praksis, særlig i Python Litt Python Algoritme for DFA med Python-implementasjon

Detaljer

1/31/2011 SAMMENHENGER FSA OG REGULÆRE UTTRYKK. Regulære språk. Fra FSA til RE. Fra regulært uttrykk til NFA REGULÆRE UTTRYKK I DATALINGVISTIKK DEL 2

1/31/2011 SAMMENHENGER FSA OG REGULÆRE UTTRYKK. Regulære språk. Fra FSA til RE. Fra regulært uttrykk til NFA REGULÆRE UTTRYKK I DATALINGVISTIKK DEL 2 INF2820 Datalingvistikk V2011 Jan Tore Lønning & Stephan Oepen ENDELIGE TILSTANDSTEKNIKKER OG REGULÆRE UTTRYKK I DATALINGVISTIKK DEL 2 31. januar 2011 2 Regulære språk Følgende er ekvivalente: a) L kan

Detaljer

INF2820 Datalingvistikk V2015. Forelesning 4, 9.2 Jan Tore Lønning

INF2820 Datalingvistikk V2015. Forelesning 4, 9.2 Jan Tore Lønning INF2820 Datalingvistikk V2015 Forelesning 4, 9.2 Jan Tore Lønning I dag Oppsummering av endelige tilstandsteknikker Begrensninger ved regulære språk Regulære uttrykk: teoretiske og praktiske Noen egenskaper

Detaljer

INF2820 Datalingvistikk V2014. Forelesning 4, 6.2 Jan Tore Lønning

INF2820 Datalingvistikk V2014. Forelesning 4, 6.2 Jan Tore Lønning INF2820 Datalingvistikk V2014 Forelesning 4, 6.2 Jan Tore Lønning I dag Oppsummering av endelige tilstandsteknikker Regulære uttrykk: teoretiske og praktiske Begrensninger ved regulære språk Noen egenskaper

Detaljer

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning INF2820 Datalingvistikk V2012 Jan Tore Lønning ENDELIGE TILSTANDSTEKNIKKER OG REGULÆRE UTTRYKK I DATALINGVISTIKK DEL 2 20. januar 2012 2 Non-Determinism Speech and Language Processing - Jurafsky and Martin

Detaljer

INF2820 Datalingvistikk V2017 Forelesning 2, 23.1 Jan Tore Lønning

INF2820 Datalingvistikk V2017 Forelesning 2, 23.1 Jan Tore Lønning INF2820 Datalingvistikk V2017 Forelesning 2, 23.1 Jan Tore Lønning ENDELIGE TILSTANDSMASKINER OG REGULÆRE SPRÅK, DEL 2 19. januar 2017 2 Sist uke: FSA Brukes om hverandre: Finite state automaton - FSA

Detaljer

INF2820 Datalingvistikk V2014. Jan Tore Lønning

INF2820 Datalingvistikk V2014. Jan Tore Lønning INF2820 Datalingvistikk V2014 Jan Tore Lønning ENDELIGE TILSTANDSTEKNIKKER OG REGULÆRE UTTRYKK I DATALINGVISTIKK DEL 2 22. januar 2014 2 DFA deterministisk endelig maskin Q = {q0, q1, q2,, qn-1} Strengt

Detaljer

INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning

INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning ENDELIGE TILSTANDSMASKINER OG REGULÆRE SPRÅK 19. januar 2017 2 Fysisk modell En tape delt opp i ruter. I hver rute står det et symbol. En

Detaljer

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning INF2820 Datalingvistikk V2012 Jan Tore Lønning KONTEKSTFRIE GRAMMATIKKER OG PARSING 23. februar 2012 2 I dag Kontekstfrie grammatikker, avledninger og trær (delvis repetisjon) Parsing: ovenifra og ned

Detaljer

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning INF2820 Datalingvistikk V2015 6. Gang - 23.2 Jan Tore Lønning PARSING DEL 1 2 I dag Høyre- og venstreavledninger Recursive-descent parser (top-down) Begynne Shift-reduce parser (bottom-up) 25. februar

Detaljer

INF2820 Datalingvistikk V2012

INF2820 Datalingvistikk V2012 INF2820 Datalingvistikk V2012 Jan Tore Lønning KONTEKSTFRIE GRAMMATIKKER OG PARSING 24. februar 2012 2 1 I dag Kontekstfrie grammatikker, avledninger og trær (delvis repetisjon) Parsing: ovenifra og ned

Detaljer

INF2820 Datalingvistikk V Gang 13.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 13.3 Jan Tore Lønning INF2820 Datalingvistikk V2017 9. Gang 13.3 Jan Tore Lønning I dag chart-parsing Fortsatt fra sist: Chart-parsing: hovedideer BU chart-parsing: algoritmen NLTKs ChartParser Enkel Python-implementasjon av

Detaljer

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen INF2820 Datalingvistikk V2011 Jan Tore Lønning & Stephan Oepen ENDELIGE TILSTANDSTEKNIKKER OG REGULÆRE UTTRYKK I DATALINGVISTIKK 26. januar 2011 2 Naturlige språk En mann kjøpte en bil av en mann som hadde

Detaljer

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF2820 Datalingvistikk V gang, Jan Tore Lønning INF2820 Datalingvistikk V2014 8. gang, 6.3.2014 Jan Tore Lønning I dag Chart parsing Implementasjon CKY og Chart: Parsing vs anerkjenning 2 Chart alternativ datastruktur (S, [0, 1]) (VP, [0,1]) (Det, [1,2])

Detaljer

2/24/2012. Context-Free Grammars. I dag. Avledning. Eksempel: grammar1 PARSING. Jan Tore Lønning

2/24/2012. Context-Free Grammars. I dag. Avledning. Eksempel: grammar1 PARSING. Jan Tore Lønning INF2820 Datalingvistikk V2012 Jan Tore Lønning KONTEKSTFRIE GRAMMATIKKER OG PARSING 24. februar 2012 2 Context-Free Grammars Det mest sentrale verktøyet i datalingvistikk 24. februar 2012 3 2/24/2012 Speech

Detaljer

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning INF2820 Datalingvistikk V2016 8. Gang 9.3 Jan Tore Lønning CHART-PARSING 2 I dag Bakgrunn Svakheter med andre parsere CKY og Chart Chart-parsing: hovedideer BU chart-parsing algoritmen Algoritmen uttrykt

Detaljer

Følger Sipsers bok tett både i stoff og oppgaver.

Følger Sipsers bok tett både i stoff og oppgaver. 1 - hrj 1 Følger Sipsers bok tett både i stoff og oppgaver. Tirsdag forelesninger, nytt stoff Onsdag eksempler og utfyllende stoff Torsdag oppgaver fra uka før Start: kapittel 1 (2uker), 2 (2uker),3 (2uker),4

Detaljer

INF2820 Datalingvistikk V Gang 4.5 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 4.5 Jan Tore Lønning INF2820 Datalingvistikk V2015 14. Gang 4.5 Jan Tore Lønning CHART PARSING 2 I dag Svakheter ved tidligere parsere RD og SR: ineffektivitet CKY: CNF Chart parsing,,dotted items og fundamentalregelen Algoritmer:

Detaljer

3/5/2012. Chart alternativ datastruktur. Fundamentalregelen. Chart-parsing. Bottom-up FORMELL SPRÅKTEORI. Jan Tore Lønning

3/5/2012. Chart alternativ datastruktur. Fundamentalregelen. Chart-parsing. Bottom-up FORMELL SPRÅKTEORI. Jan Tore Lønning INF2820 Datalingvistikk V2012 Jan Tore Lønning CHART-PARSING FORMELL SPRÅKTEORI 5. mars 2012 2 Chart alternativ datastruktur NP Det Nom Fundamentalregelen NP Det Nom Nom Nom PP Nom Nom PP NP PP P NP Det

Detaljer

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning INF2820 Datalingvistikk V2015 7. Gang 2.3 Jan Tore Lønning PARSING DEL 2 2 I dag Recursive-descent parser, kort repetisjon Shift-reduce parser (bottom-up) Algoritme for anerkjenning Eksempelimplementasjon

Detaljer

Dagens tema Grundig repetisjon og utdyping: Syntaks kontra semantikk

Dagens tema Grundig repetisjon og utdyping: Syntaks kontra semantikk Dagens tema Grundig repetisjon og utdyping: Syntaks kontra semantikk Regulære uttrykk og automataer Ulike typer språk Ulike representasjoner av regulære språk Endelige tilstandsmaskiner (FSM-er) Deterministiske

Detaljer

Magnus Moan (Undertegnede) Enkle datastrukturer, trær, traversering og rekursjon

Magnus Moan (Undertegnede) Enkle datastrukturer, trær, traversering og rekursjon 1 Enkle datastrukturer, trær, traversering og rekursjon Magnus Moan (Undertegnede) algdat@idi.ntnu.no Enkle datastrukturer, trær, traversering og rekursjon 2 Dagens plan Praktisk Enkle datastrukturer Stack

Detaljer

Dagens tema: Regulære språk og uttrykk

Dagens tema: Regulære språk og uttrykk IN 2 Programmeringsspråk Dagens tema: Regulære språk og uttrykk Ulike typer språk (Kompendium 47: 23) Hvorfor er regulære uttrykk så interessante? Ulike representasjoner av regulære språk (Kompendium 47:

Detaljer

Skanning del I INF /01/15 1

Skanning 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.

Detaljer

AlgDat - Øvingsforelesning 1 Introduksjon til Python, lenkede lister og øving 1

AlgDat - Øvingsforelesning 1 Introduksjon til Python, lenkede lister og øving 1 AlgDat - Øvingsforelesning 1 Introduksjon til Python, lenkede lister og øving 1 Ole Kristian Pedersen, Høst 2016 Agenda Introduksjon til Python for begynnere Intro til øving 1 Litt om lenkede lister Øvingssystemet

Detaljer

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning INF2820 Datalingvistikk V2016 8. Gang 9.3 Jan Tore Lønning CHART-PARSING 2 I dag Bakgrunn Svakheter med andre parsere CKY og Chart Chart-parsing: hovedideer BU chart-parsingalgoritmen Algoritmen uttrykt

Detaljer

Hva er syntaks? En overskrift i en norsk avis: Dagens tema Grundig repetisjon og utdyping:

Hva er syntaks? En overskrift i en norsk avis: Dagens tema Grundig repetisjon og utdyping: Hva er syntaks? En overskrift i en norsk avis: Fanger krabber så lenge de orker Dagens tema Grundig repetisjon og utdyping: Er det i C lov å skrive for (;;) { while () { Syntaks kontra semantikk for å

Detaljer

INF2820 Datalingvistikk V2016. Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning INF2820 Datalingvistikk V2016 Jan Tore Lønning INF2820 Datalingvistikk 20. januar 2016 2 I dag: 1. Time: Datalingvistikk: motivasjon og eksempler Praktisk informasjon 2. Time: Regulære språk OBS: Lov å

Detaljer

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning INF2820 Datalingvistikk V2016 6. Gang - 24.2 Jan Tore Lønning PARSING DEL 1 2 I dag Hva er parsing? Høyre- og venstreavledninger Recursive-Descent parser (top-down) Shift-Reduce parser (bottom-up) Pythonimplementasjon:

Detaljer

INF 2820 V2016: Obligatorisk innleverinsoppgave 1

INF 2820 V2016: Obligatorisk innleverinsoppgave 1 INF 2820 V2016: Obligatorisk innleverinsoppgave 1 OBS Korrigert eksemplene oppgave 2, 8.2 Besvarelsene skal leveres i devilry innen torsdag 18.2 kl 18.00 Filene det vises til finner du på /projects/nlp/inf2820/fsa

Detaljer

INF 2820 V2018: Innleveringsoppgave 1

INF 2820 V2018: Innleveringsoppgave 1 INF 2820 V2018: Innleveringsoppgave 1 Besvarelsene skal leveres i devilry innen fredag 9.2 kl 18.00 Det blir 5 sett med innleveringsoppgaver. Hvert sett gir inntil 100 poeng. Til sammen kan en få inntil

Detaljer

Syntax/semantics - I INF 3110/ /29/2005 1

Syntax/semantics - I INF 3110/ /29/2005 1 Syntax/semantics - I Program program execution Compiling/interpretation Syntax Classes of langauges Regular langauges Context-free langauges Scanning/Parsing Meta models INF 3/4-25 8/29/25 Program

Detaljer

TDT4110 IT Grunnkurs Høst 2015

TDT4110 IT Grunnkurs Høst 2015 TDT4110 IT Grunnkurs Høst 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforlag Auditorieøving 1 1 Teori Løsning er skrevet med uthevet tekst

Detaljer

Skanning del I. Kapittel 2 INF 3110/ INF

Skanning del I. Kapittel 2 INF 3110/ INF Skanning del I Kapittel 2 18.01.2013 1 Skanning: innhold (begge forelesningene) Hva gjør en skanner? Input: programteksten. Output: Ett og ett token fra programteksten (sekvensielt). Regulære uttrykk/definisjoner.

Detaljer

Øvingsforelesning 2 - TDT4120. Grafer og hashing. Benjamin Bjørnseth

Øvingsforelesning 2 - TDT4120. Grafer og hashing. Benjamin Bjørnseth Øvingsforelesning 2 - TDT4120 Grafer og hashing Benjamin Bjørnseth Informasjon Studasser algdat@idi.ntnu.no Program Presentasjon av øving 2 Grafer og traverseringsalgoritmer BFS, DFS Hashing Gjennomgang

Detaljer

INF2820 Datalingvistikk V2016. Forelesning 4, 10.2 Jan Tore Lønning

INF2820 Datalingvistikk V2016. Forelesning 4, 10.2 Jan Tore Lønning INF2820 Datalingvistikk V2016 Forelesning 4, 10.2 Jan Tore Lønning I dag Ord Begrensninger med regulære språk Regulære uttrykk i praksis Utvidete regulære uttrykk Frasestruktur og kontekstfrie grammatikker

Detaljer

Etter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner

Etter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner Etter uke 9 skal du Introduksjon til objektorientert programmering INF1001 Høst 2016 Uke 9 Kunne designe og implementere en programstruktur med flere klasser Kunne etablere og manipulere objekter i (sammensatte)

Detaljer

INF2820 Datalingvistikk V2014. Jan Tore Lønning

INF2820 Datalingvistikk V2014. Jan Tore Lønning INF2820 Datalingvistikk V2014 Jan Tore Lønning INF2820 Datalingvistikk 19. januar 2014 2 I dag: 1. Time: Datalingvistikk: motivasjon og eksempler Praktisk informasjon 2. Time: Endelige tilstandsteknikker

Detaljer

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel ) INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel 4.1-4.3 + 4.6) PRAKTISK INFORMASJON 2 Praktisk informasjon Kursansvarlige Ragnhild Kobro Runde (ragnhilk@ifi.uio.no)

Detaljer

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning INF2820 Datalingvistikk V2017 6. Gang - 20.2 Jan Tore Lønning I dag Kontekstfrie grammatikker og naturlige språk (fortsatt fra sist) Kontekstfrie grammatikker og regulære språk Grammatikker og trær i NLTK

Detaljer

INF2820 Datalingvistikk V Gang 27.2 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 27.2 Jan Tore Lønning INF2820 Datalingvistikk V2017 7. Gang 27.2 Jan Tore Lønning I dag Fra sist: Høyre- og venstreavledninger Recursive-descent parser (top-down) Shift-reduce parser (bottom-up) Pythonimplementasjon: Shift-Reduce

Detaljer

INF2820 Datalingvistikk V2017 Forelesning 1.1, 16.1 Jan Tore Lønning

INF2820 Datalingvistikk V2017 Forelesning 1.1, 16.1 Jan Tore Lønning INF2820 Datalingvistikk V2017 Forelesning 1.1, 16.1 Jan Tore Lønning INF2820 Datalingvistikk 16. januar 2017 2 I dag: 1. Time: Datalingvistikk: motivasjon og eksempler Praktisk informasjon 2. Time: Regulære

Detaljer

INF2820 Datalingvistikk V2015. Jan Tore Lønning

INF2820 Datalingvistikk V2015. Jan Tore Lønning INF2820 Datalingvistikk V2015 Jan Tore Lønning INF2820 Datalingvistikk 21. januar 2015 2 I dag: 1. Time: Datalingvistikk: motivasjon og eksempler Praktisk informasjon 2. Time: Endelige tilstandsteknikker

Detaljer

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver - LF. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python.

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver - LF. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python. Algoritmer og datastrukturer Kondisjonstest Python-oppgaver - LF 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

Detaljer

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning INF2820 Datalingvistikk V2015 5. Gang - 16.2 Jan Tore Lønning I dag Kontekstfrie grammatikker, avledninger og trær (delvis repetisjon) Kontekstfrie grammatikker og regulære språk Kontekstfrie grammatikker

Detaljer

INF2820 Datalingvistikk V2012. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V2012. Jan Tore Lønning & Stephan Oepen INF2820 Datalingvistikk V2012 Jan Tore Lønning & Stephan Oepen ENDELIGE TILSTANDSTEKNIKKER OG REGULÆRE UTTRYKK I DATALINGVISTIKK 17. januar 2012 2 Naturlige språk En mann kjøpte en bil av en mann som hadde

Detaljer

INF2820 Datalingvistikk V2014. Jan Tore Lønning

INF2820 Datalingvistikk V2014. Jan Tore Lønning INF2820 Datalingvistikk V2014 Jan Tore Lønning ENDELIGE TILSTANDSTEKNIKKER OG REGULÆRE UTTRYKK I DATALINGVISTIKK 19. januar 2014 2 Naturlige språk En mann kjøpte en bil av en mann som hadde eid bilen i

Detaljer

Typisk: Kan det være både nøkkelord og navn, så skal det ansees som nøkkelord

Typisk: 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

Detaljer

Algoritmer og Datastrukturer IAI 21899

Algoritmer og Datastrukturer IAI 21899 Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 30. november 2000, kl. 09.00-14.00 LØSNINGSFORSLAG 1 Del 1, Binære søketrær Totalt

Detaljer

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python.

Kondisjonstest. 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

Detaljer

Øvingsforelesning 1 Python (TDT4110)

Ø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

Detaljer

EKSAMEN med løsningsforslag

EKSAMEN med løsningsforslag EKSAMEN med løsningsforslag Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2009 kl 09.00 til kl 13.00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Kalkulator Faglærer:

Detaljer

INF3110 Programmeringsspråk

INF3110 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

Detaljer

Oppgave 1. Sekvenser (20%)

Oppgave 1. Sekvenser (20%) Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I BERGEN Eksamen i emnet I 20 - Algoritmer, datastrukturer og programmering Mandag 2.Mai 200, kl. 09-5. Ingen hjelpemidler tillatt. Oppgavesettet

Detaljer

Læringsmål uke 7. Introduksjon til objektorientert programmering. Paradigmet objektorientering. Objektreferanser. INF1001 Høst 2016 Uke 7

Læringsmål uke 7. Introduksjon til objektorientert programmering. Paradigmet objektorientering. Objektreferanser. INF1001 Høst 2016 Uke 7 Læringsmål uke 7 Introduksjon til objektorientert programmering INF1001 Høst 2016 Uke 7 Forstå (mer av) hva som skjer bak kulissene når vi oppretter og bruker objekter Kunne manipulere referanser og vite

Detaljer

Kap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/ Legger ut en oppgave til kap. 4 (se beskjed).

Kap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/ Legger ut en oppgave til kap. 4 (se beskjed). Kap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/2-2008 Legger ut en oppgave til kap. 4 (se beskjed). tein Krogdahl Ifi, UiO Merk: Av de foilene som ble delt ut på papir på

Detaljer

INF2820 Datalingvistikk V2016. Forelesning 4, 10.2 Jan Tore Lønning

INF2820 Datalingvistikk V2016. Forelesning 4, 10.2 Jan Tore Lønning INF2820 Datalingvistikk V2016 Forelesning 4, 10.2 Jan Tore Lønning I dag Ord Begrensninger med regulære språk Regulære uttrykk i praksis Utvidete regulære uttrykk Frasestruktur og kontekstfrie grammatikker

Detaljer

Scanning - I Kap. 2. Hva scanneren gjør

Scanning - 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

Detaljer

INF2820 Datalingvistikk V Gang 6.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 6.3 Jan Tore Lønning INF2820 Datalingvistikk V2017 8. Gang 6.3 Jan Tore Lønning I dag CKY-algoritmen fortsatt fra sist Python-implementasjon av CKY Chomsky Normal Form (CNF) Chart-parsing BU-algoritme for chart-parsing 3.

Detaljer

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning INF2820 Datalingvistikk V2016 5. Gang - 17.2 Jan Tore Lønning I dag Kontekstfrie grammatikker, avledninger og trær Kontekstfrie grammatikker og regulære språk Kontekstfrie grammatikker for naturlige språk

Detaljer

IN1000 Obligatorisk innlevering 7

IN1000 Obligatorisk innlevering 7 IN1000 Obligatorisk innlevering 7 Frist for innlevering: 23.10. kl 12:00 Introduksjon I denne innleveringen skal du lage et program som simulerer cellers liv og død. Dette skal du gjøre ved hjelp av en

Detaljer

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning INF2820 Datalingvistikk V2016 7. Gang 2.3 Jan Tore Lønning I dag CKY-algoritmen Python-implementasjon Chomsky Normal Form (CNF) 1. mars 2016 2 Dynamisk programmering I en beregning kan det inngå delberegninger

Detaljer

MAT1030 Plenumsregning 1

MAT1030 Plenumsregning 1 MAT1030 Plenumsregning 1 Kapittel 1 Mathias Barra - 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 Velkommen til plenumsregning for MAT1030 Fredager 12:15 14:00 Vi vil gjennomgå utvalgte

Detaljer

Løsnings forslag i java In115, Våren 1996

Løsnings forslag i java In115, Våren 1996 Løsnings forslag i java In115, Våren 1996 Oppgave 1a For å kunne kjøre Warshall-algoritmen, må man ha grafen på nabomatriseform, altså en boolsk matrise B, slik at B[i][j]=true hvis det går en kant fra

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 MAT1030 Diskret Matematikk

Detaljer

Anatomien til en kompilator - I

Anatomien til en kompilator - I Anatomien til en kompilator - I program Symboltabell tekst tokens syntaks-tre beriket syntaks-tre Finne struktur i programmet OK i henhold til grammatikk? Preprocessor Makroer Betinget kompilering Filer

Detaljer

Repetisjon. 1 binærtall. INF3110 Programmeringsspråk. Sist så vi ulike notasjoner for syntaks: Jernbanediagrammer. BNF-grammatikker.

Repetisjon. 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

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF2820 Datalingvistikk Eksamensdag: 6. juni 2014 Tid for eksamen: 1430-1830 Oppgavesettet er på 5 side(r) Vedlegg: 0

Detaljer

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 11.2 Korteste vei i en graf 11.2.1 Dijkstras metode En graf er et system med noder og kanter mellom noder. Grafen kalles rettet Notasjon Verdien

Detaljer

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema

Hva 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

Detaljer

INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer

INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer Praktiske opplysninger INF2220 - Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo Tid og sted: Mandag kl. 12:15-14:00 Store auditorium, Informatikkbygningen Kursansvarlige

Detaljer

"behrozm" Oppsummering - programskisse for traversering av en graf (dybde først) Forelesning i INF februar 2009

behrozm Oppsummering - programskisse for traversering av en graf (dybde først) Forelesning i INF februar 2009 Rekursiv programmering BTeksempel Datastruktur I klassen Persontre (rotperson==) Rekursjon Noen oppgaver/problemer er rekursive «av natur» Eksempel på en rekursiv definisjon Fakultetsfunksjonen

Detaljer

Anatomien til en kompilator - I

Anatomien til en kompilator - I Anatomien til en kompilator - I 5/22/2006 1 Framgangsmåte for automatisk å lage en scanner Beskriv de forskjellige token-klassene som regulære uttrykk Eller litt mer fleksibelt, som regulære definisjoner

Detaljer

Hvordan løse problemer med programmering?

Hvordan løse problemer med programmering? Start screencast!! (tidlig..) Ha klar glass med linser Lukk programmer, untatt Atom, Keynote, Terminal Hvordan løse problemer med programmering? Problemløsning, løkker, og funksjoner med parametre IN1000,

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 3. november 2, kl. 9. - 14. Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.

Detaljer

INF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon.

INF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon. INF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon. Stephan Oepen & Erik Velldal Universitetet i Oslo 25. januar, 2013 På blokka 2 Forrige uke Introduksjon og oversikt Funksjonell

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF2220 Algoritmer og datastrukturer Eksamensdag: 16. desember 2013 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider.

Detaljer

INF2220: Forelesning 1

INF2220: Forelesning 1 INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel 4.1-4.3 + 4.6) Praktisk informasjon 2 Praktisk informasjon Kursansvarlige Ingrid Chieh Yu de Vibe (ingridcy@ifi.uio.no)

Detaljer

INF2820 V2017 Oppgavesett 5 arbeidsoppgaver

INF2820 V2017 Oppgavesett 5 arbeidsoppgaver INF2820 V2017 Oppgavesett 5 arbeidsoppgaver Dette er oppgaver du kan arbeide med på egen hånd. Du kan også arbeide med dem i gruppa 28.2 (hvis du har innleveringsoppgave 2 under kontroll) og spørre gruppelæreren

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2016 Institutt for informatikk, Universitetet i Oslo Forelesning 6: Grafer II Ingrid Chieh Yu (Ifi, UiO) INF2220 28.09.2016 1 / 30 Dagens plan: Dijkstra fort.

Detaljer

Øvingsforelesning 5 Python (TDT4110)

Øvingsforelesning 5 Python (TDT4110) Øvingsforelesning 5 Python (TDT4110) Repetisjon av løkker og funksjoner Ole-Magnus Pedersen Oversikt Praktisk Info Gjennomgang av Øving 3 Repetisjon 2 Praktisk info Prosjekter i PyCharm må startes med

Detaljer

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø rodsjo@stud.ntnu.no

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø rodsjo@stud.ntnu.no Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Børge Rødsjø rodsjo@stud.ntnu.no Dagens tema Grafer Terminologi Representasjon av grafer Bredde først søk (BFS) Dybde først søk (DFS) Hashing Hashfunksjoner,

Detaljer

3/8/2011. I dag. Dynamic Programming. Example. Example FORMELLE EGENSKAPER VED SPRÅK (KAP. 16) Jan Tore Lønning & Stephan Oepen

3/8/2011. I dag. Dynamic Programming. Example. Example FORMELLE EGENSKAPER VED SPRÅK (KAP. 16) Jan Tore Lønning & Stephan Oepen INF2820 Datalingvistikk V2011 Jan Tore Lønning & Stephan Oepen CHARTPARSING (SEKSJ 13.4) FORMELLE EGENSKAPER VED SPRÅK (KAP. 16) 8. mars 2011 2 I dag Oppsummering fra sist: Dynamisk programmering CKY-algoritmen

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET 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:

Detaljer

Løsnings forslag i java In115, Våren 1999

Løsnings forslag i java In115, Våren 1999 Løsnings forslag i java In115, Våren 1999 Oppgave 1a Input sekvensen er: 9, 3, 1, 3, 4, 5, 1, 6, 4, 1, 2 Etter sortering av det første, midterste og siste elementet, har vi følgende: 2, 3, 1, 3, 4, 1,

Detaljer

TDT4120 Øvingsforelesning 1 Introduksjon til Python

TDT4120 Øvingsforelesning 1 Introduksjon til Python TDT4120 Øvingsforelesning 1 Introduksjon til Python Basert på foiler av Åsmund Eldhuset Presentert av Martin Gammelsæter Python! A C program is like a fast dance on a newly waxed dance floor by people

Detaljer

Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode

Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode Plenumsregning 1 Kapittel 1 Roger Antonsen - 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang av ukeoppgaver Gjennomgang av eksempler fra boka Litt repetisjon

Detaljer

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen INF2820 Datalingvistikk V2011 Jan Tore Lønning & Stephan Oepen FORMELLE OG NATURLIGE SPRÅK KONTEKSTFRIE GRAMMATIKKER 7. februar 2011 2 Naturlige språk som formelle språk Et formelt språk består av: En

Detaljer

Øvingsforelesning 5 Python (TDT4110)

Øvingsforelesning 5 Python (TDT4110) Øvingsforelesning 5 Python (TDT4110) Repetisjon av løkker og funksjoner Ole-Magnus Pedersen Oversikt Praktisk Info Gjennomgang av Øving 3 Repetisjon 2 Praktisk info Prosjekter i PyCharm må startes med

Detaljer

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen? OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.

Detaljer

Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030

Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030 MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo Plenumsregning 1 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) MAT1030 Diskret Matematikk

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 20102 Høgskolen i Østfold Avdeling for informatikk og automatisering Lødag 5. juni 2004, kl. 09.00-13.00 LØSNINGSFORSLAG 1 Del 1 60% Oppgave 1.1-10% Forklar kort

Detaljer

INF2220: Forelesning 1

INF2220: Forelesning 1 INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) Rekursjon (kapittel 1.3) (Binær)trær (kapittel 4.1-4.3 + 4.6) Praktisk informasjon 2 Praktisk informasjon Kursansvarlige Ingrid

Detaljer

INF3110 Programmeringsspråk. Dagens tema. Typer (Kapittel 3 frem til ) Innføring i ML (Kapittel & ML-kompendiet.) 1/19

INF3110 Programmeringsspråk. Dagens tema. Typer (Kapittel 3 frem til ) Innføring i ML (Kapittel & ML-kompendiet.) 1/19 Dagens tema Typer (Kapittel 3 frem til 3.3.1.) Innføring i ML (Kapittel 7.4.3 & ML-kompendiet.) 1/19 Forelesning 2 27.8.2003 Typer En (data-)type består av: en mengde verdier en mengde operasjoner man

Detaljer

Typer. 1 Type: boolean. 2 Verdimengde: {true, false} 3 Operatorer: NOT, AND, OR... 1/19. Forelesning Forelesning

Typer. 1 Type: boolean. 2 Verdimengde: {true, false} 3 Operatorer: NOT, AND, OR... 1/19. Forelesning Forelesning Dagens tema Typer (Kapittel 3 frem til 331) Innføring i ML (Kapittel 743 & ML-kompendiet) Typer En (data-)type består av: en mengde verdier en mengde operasjoner man kan anvende på disse verdiene Eksempel:

Detaljer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Eksamensdato 3. desember 2012 Eksamenstid 0900 1300 Sensurdato 3. januar 2013 Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.

Detaljer