INF4140 MODELLER FOR PARALLELLITET. PMA-gruppen. Institutt for informatikk Universitetet i Oslo.

Størrelse: px
Begynne med side:

Download "INF4140 MODELLER FOR PARALLELLITET. PMA-gruppen. Institutt for informatikk Universitetet i Oslo."

Transkript

1 INF4140 MODELLER FOR PARALLELLITET PMA-gruppen Institutt for informatikk Universitetet i Oslo (versjon ) INF 4140 H08 Uke 1, side 1.

2 Modeller for parallellitet Forelesere Joakim Bjørk (IFI) Olaf Owe (IFI) Marcel Kyas (IFI) Alle i 3. etg ForskningsParken, innenfor kantina, i PMA-gangen Hjemmeside for kurset Pensum Gregory R. Andrews: Foundations of Multithreaded, Parallel, and Distributed Programming Vi planlegger noe tilleggsstoff omkring distribuerte systemer. INF 4140 H08 Uke 1, side 2.

3 Vurderingsform Tre obliger som må godkjennes. Avsluttende eksamen. Forelesninger Onsdag kl. 14:15-16:00 Alfa/Omega NR, 4.etg i Informatikkbygget. Grupper Gruppelærer: Joakim Bjørk, stipendiat på PMA-gruppen Gruppe 1: Torsdag kl. 14:15-16:00, Foredragssalen, Veglaboratoriet Starter neste uke. NB: Vil muligens finne andre lokaler/andre tider etterhvert. INF 4140 H08 Uke 1, side 3.

4 Dagens plan Innledning innhold i kurset motivasjon: hvorfor er dette kurset viktig noen enkle eksempler og betraktninger Start litt om parallellprogrammering ved kritiske regioner og venting interferens await-språket INF 4140 H08 Uke 1, side 4.

5 Hva dette kurset handler om Fundamentale problemstillinger knyttet til samarbeidende parallelle prosesser Tenkemåter knyttet til utvikling av parallelle prosesser Ulike språklige mekanismer og paradigmer Dypere forståelse av parallelle prosesser: (uformell og litt formell) analyse, egenskaper INF 4140 H08 Uke 1, side 5.

6 Parallelle prosesser Sekvensielt program: én kontrolltråd Parallelt program: flere kontrolltråder Parallelle prosesser trenger å utveksle informasjon. Vi skal studere to ulike måter å organisere kommunikasjonen mellom prosesser: Lesing og skriving til felles variable (del I av kurset) Kommunikasjon ved meldinger mellom prosesser (del II av kurset) INF 4140 H08 Uke 1, side 6.

7 Oversikt over temaer i kurset Del I: Felles Variable atomiske operasjoner interferens vranglås (deadlock), livelock, liveness, fairness parallelle programmer med låser, kritiske regioner og (aktiv) venting semaforer og passiv venting monitorer formell analyse (Hoare logikk), invarianter Java: tråder og synkronisering INF 4140 H08 Uke 1, side 7.

8 Oversikt over temaer i kurset Del II: Kommunikasjon asynkron og synkron meldingsutveksling Basis-mekanismer: RPC (remote procedure call), rendevous, klient/tjener setting, kanaler Javas mekanismer analyse ved hjelp av historier asynkrone systemer standard eksempler INF 4140 H08 Uke 1, side 8.

9 Start Da starter vi med Del I: felles variable Språklige mekanismer og teori for prosesser som opererer på felles programvariable. Hvorfor bruke felles variable? virkeligheten er slik: Eks. flere CPU-er inne i en maskin. naturlig interaksjon for tett koblede systemer. brukes i mange viktige språk, som i Javas trådbegrep. late som om man har mange prosesser, for å få en naturlig oppdeling kan oppnå bedre effektivitet ved at flere ting kan skje samtidig. Eks. å ha flere aktive vinduer på en gang. INF 4140 H08 Uke 1, side 9.

10 Enkelt eksempel Vi har programvariable x, y og z. La oss se på følgende program: før bak {x er a og y er b} x := x + z; y := y + z; {x er her a+z og y er b+z} Hvis vi har operasjoner på data som kan gjøres uavhengig av hverandre, kan det være en fordel å gjøre disse samtidig. Betingelsene beskriver tilstanden til programvariablene før og etter programsetningene og kalles hhv. for- og bak-betingelse. Disse betingelsene er ment å gi forståelse av programmet, og er ikke del av den koden som eksekveres. Kunne man bruke parallellitet her? INF 4140 H08 Uke 1, side 10.

11 Parallell-operator Utvider språket med en konstruksjon for parallell komposisjon: co S 1 S 2... S n oc; Eksekvering av en parallell komposisjon skjer ved samtidig eksekvering av delprosessene S 1,..., S n og terminerer normalt hvis alle delprosessene terminerer normalt. Eksempel Dermed kan vi skrive eksempelet som: {x er a og y er b} co x := x + z y := y + z oc; {x er a+z og y er b+z} INF 4140 H08 Uke 1, side 11.

12 Interaksjon mellom prosesser Prosesser som lever i samme system, kan interagere med hverandre på to ulike måter: Samarbeid for å oppnå et resultat Konkurranse om felles ressurser Organiseringen av denne interaksjonen vil vi kalle synkronisering av prosessene. Gjensidig utelukking (Mutex). Vi innfører kritiske regioner av programinstruksjoner som ikke kan eksekveres samtidig. Betingelsessynkronisering. En prosess må vente på at en bestemt betingelse er oppfylt før eksekvering kan fortsette. INF 4140 H08 Uke 1, side 12.

13 Samtidige prosesser: Atomiske operasjoner Bokas definisjon: En operasjon er atomisk hvis den ikke kan deles inn i mindre enheter. Alternativ definisjon: En operasjon er atomisk hvis den kan forstås uten å deles inn i mindre enheter. Hva som er atomisk avhenger av språket man jobber i: fin-kornet og grov-kornet atomiskhet. F.eks.: Lesing og skiving av en programvariabel er gjerne atomært. Noen (høy-nivå) språk kan ha tilordning x := e som én atomisk operasjon, andre som flere: lesing av variable i uttrykket e, beregning av verdien e, etterfulgt av skriving til x. Merk: Vi kan late som om atomiske operasjoner ikke skjer samtidig! Merk: En setning med høyst én atomisk del-operasjon, i tillegg til operasjoner på lokale variable, kan anses som atomisk! INF 4140 H08 Uke 1, side 13.

14 Atomiske operasjoner: programvariable Behandlingen av programvariable er fundamental: Også kommunikasjon mellom prosesser kan representeres ved variable, f. eks. en kommunikasjonskanal som en variabel av type sekvens. Til hver programvariabel assosieres en mengde med atomære operasjoner, f. eks. lesing og skriving til vanlige programvariable, sending og mottak på kommunikasjonskanaler, etc. Atomære operasjoner på en variabel x kalles x-operasjoner. Gjensidig utelukking Atomære operasjoner på en variabel kan ikke skje samtidig. INF 4140 H08 Uke 1, side 14.

15 Eksempel Vi skal nå se på programmet Hva blir slutt-tilstanden her? P 1 P 2 int x = 0; co x := x + 1 x := x 1 oc; {?} Vi antar at hver prosess blir eksekvert på en egen prosessor, med eget register, og at x er del av et felles tilstandsrom med programvariable. Aritmetiske operasjoner i de to prosessene kan utføres samtidig, men lese- og skriveoperasjoner på x må gjøres sekvensielt. Rekkefølgen på disse operasjonene er avhengig av relativ prosessorhastighet. Utfallet av slike program blir dermed svært vanskelig å forutsi! INF 4140 H08 Uke 1, side 15.

16 Atomære lese- og skriveoperasjoner P 1 P 2 int x := 0; co x := x + 1 x := x 1 oc; {?} Det er 4 atomære x-operasjoner: P 1 leser (R1) verdien i x, P 1 skriver (W1) en verdi til x, P 2 leser (R2) verdien i x, og P 2 skriver (W2) en verdi til x. R1 må skje før W1 og R2 før W2, så disse operasjonene kan sekvenseres på 6 måter: R1 R1 R1 R2 R2 R2 W1 R2 R2 R1 R1 W2 R2 W1 W2 W1 W2 R1 W2 W2 W1 W2 W1 W Utfra tabellen kan vi angi slutt-tilstanden til programmet: x= 1 x=0 x=1. Programmet er altså ikke-deterministisk : resultatet kan variere fra eksekvering til eksekvering. int x := 0; co x := x + 1 x := x 1 oc; {x= 1 x=0 x=1} INF 4140 H08 Uke 1, side 16.

17 Antall mulige kjøringer Hvis vi har 3 prosesser, hver med et gitt antall atomiske operasjoner, vil vi få følgende antall mulige eksekveringer: prosess 1 prosess 2 prosess 3 antall kjøringer NB: Ulike eksekveringer kan gi opphav til ulike slutt-tilstander. Umulig, selv for ganske enkle systemer, å se på hver mulige eksekvering for seg! For n prosesser med m atomiske setninger hver, er formelen (n m)! m! n INF 4140 H08 Uke 1, side 17.

18 at-most-once -egenskapen Definisjon. Et uttrykk e oppfyller egenskapen hvis det inneholder høyst én atomisk operasjon på en delt variable som andre prosesser skriver til. En tilordning x := e oppfyller egenskapen hvis enten e oppfyller egenskapen og x ikke leses av andre, eller x er delt og e ikke snakker om delte variable. Slike uttrykk/setninger kan anses som atomiske! Eksempler: (la z være en lokal variabel): x := 0; y := 0;co x := x + 1 y := x + 1 oc x := 0; y := 0;co x := y + 1 y := x + 1 oc; {x og y er 1 eller 2} x := 0; y := 0;co x := y + 1 x := y + 3 y := 1 oc; {y=1 x= 1, 2, 3, 4} co z := y + 1 z := y 1 y := 5 oc z := x x... {er z nå 0?} x := x... {samme som skip?} if y > 0 then y := y 1 fi if y > 0 then y := y 1 fi INF 4140 H08 Uke 1, side 18.

19 Kursets første programmeringsspråk: await-språket vanlige sekvensielle, imperative konstruksjoner som tilordning, if-, for- og while-setninger cobegin-konstruksjonen for parallell aktivitet prosesser kritiske regioner await-setninger for (aktiv) venting og betingede kritiske regioner INF 4140 H08 Uke 1, side 19.

20 Programmeringsspråket: Syntaks Vi bruker følgende syntaks for basale konstruksjoner: Deklarasjoner int i := 3; int a[1:n]; int a[1:n] = ([n] 1); int a[n]; tilsvarerint a[0:n-1]; int a[n] = ([n] 0); Sekvensielle setninger Tilordning x:=e; a[n]:=e; a[n]++; tilsvarera[n]:= a[n]+1; sum +=i; tilsvarersum:=sum+i; Sammensatt setning { setninger } Kondisjonal if (betingelse) setning While-løkke while (betingelse)setning For-løkke for [i=0 to n-1] setning INF 4140 H08 Uke 1, side 20.

21 Parallelle setninger co S 1 S 2... S n oc; Hver arm S i inneholder en programsetning som blir utført i parallell med de øvrige armene. co-setningen terminerer når alle armene S i har terminert. Neste instruksjon etter co-setningen eksekveres etter at co-setningen har terminert. Parallelle prosesser process foo { Prosesser kjører i bakgrunnen int sum := 0; Prosesser evalueres i vilkårlig rekkefølge. for [i= 1 to 10] Prosesser deklareres (som metoder/funksjoner ) sum += i; x := sum; } INF 4140 H08 Uke 1, side 21.

22 Eksempel process bar1 { for [i = 1 to n] write(i);} Starter én prosess. Tallene skrives ut i stigende rekkefølge. process bar2[i=1 to n] { write(i); } Starter n prosesser. Tallene skrives ut i tilfeldig rekkefølge fordi eksekveringsrekkefølgen på prosessene er ikke-deterministisk. INF 4140 H08 Uke 1, side 22.

23 Lese- og skrivevariable La V : statement variable set være en syntaktisk funksjon som beregner mengden av programvariable som refereres i programmet. W : statement variable set er mengden av (skrive)variable som kan bli endret av programmet. V[v:=e] = V[e] {v} W[v:=e] = {v} V[S 1 ; S 2 ] = V[S 1 ] V[S 2 ] W[S 1 ; S 2 ] = W[S 1 ] W[S 2 ] V[if (b) S ] = V[b] V[S] W[if (b) S ] = W[S] V[while (b) S ] = V[b] V[S] W[while (b) S ] = W[S] der V[e] er mengden av variable i uttrykket e. NB: Vi antar her at += og ++ tilordninger skrives helt ut. INF 4140 H08 Uke 1, side 23.

24 Disjunkte prosesser Parallelle prosesser er uten interferens hvis de er disjunkte, dvs. uten felles programvariable: V[S 1 ] V[S 2 ] = Variable som bare leses, kan imidlertid ikke gi opphav til interferens. Det er derfor tilstrekkelig med følgende interferens kriterium: V[S 1 ] W[S 2 ] = W[S 1 ] V[S 2 ] = INF 4140 H08 Uke 1, side 24.

25 Semantiske begrep En tilstand i et parallelt program består av verdien til programvariablene på et gitt tidspunkt i eksekveringen. Hver prosess eksekverer uavhengig av de andre ved å modifisere programvariable vha. atomære operasjoner. En eksekvering av et parallelt program kan modelleres ved en historie, dvs. en sekvens av operasjoner på programvariablene, alt. som en sekvens av tilstander. For ikke-trivielle parallelle programmer finnes det veldig mange mulige historier. Synkronisering brukes til å begrense mulige historier. INF 4140 H08 Uke 1, side 25.

26 Egenskaper En egenskap ved et program er et predikat som er sann for alle mulige historier til programmet. To typer: Sikkerhetsegenskaper sier at programmet ikke vil komme til en uønsket tilstand. Progresjonsegenskaper sier at programmet vil komme til en ønsket tilstand (liveness). Partiell korrekthet : Programmet kommer til en ønsket slutt-tilstand hvis programmet terminerer (sikkerhetsegenskap). Terminering: Lengden på alle historier er endelige. Total korrekthet : Programmer terminerer og er partielt korrekt. INF 4140 H08 Uke 1, side 26.

27 Egenskaper: Invarianter Definisjon. En felles egenskap for alle tilstander som kan oppstå ved eksekvering, i.e. egenskap som holder til enhver tid. sikkerhetsegenskap hensiktsmessig for ikke-terminerende systemer (unngår å snakke om en sluttilstand) global invariant snakker om tilstanden til mange prosesser på én gang, gjerne total-systemet lokal invariant snakker om tilstanden til én prosess. man kan vise at en invariant er korrekt ved å vise at den gjelder initielt, og at hver atomisk setning vedlikeholder den. Merk: slipper å se på alle mulige eksekveringer! INF 4140 H08 Uke 1, side 27.

28 Hvordan sjekke egenskaper ved programmer? Testing eller debugging øker tilliten til programmet ved prøving, men gir ingen garanti for korrekthet. Operasjonell resonnering utprøver alle historiene til et program. Formell analyse : Metode for å regne på egenskaper ved et program uten å prøve historiene én og én. En test kan påvise feil, men aldri påvise korrekthet! INF 4140 H08 Uke 1, side 28.

29 Kritiske regioner Gjensidig utelukking: kombinerer sekvenser av operasjoner til kritiske regioner som oppfører seg som atomære operasjoner. Når interferenskravet til parallelle prosesser ikke holder, bruker vi synkronisering til å begrense de mulige historiene. Synkronisering gir grov-kornete atomære operasjoner. Notasjonen< S > betyr atsutføres atomært. Atomære operasjoner: Interne tilstander er ikke synlige for andre prosesser. Variable kan ikke endres av andre prosesser. Eksempel Eksemplet fra tidligere kan nå skrives som: int x := 0; co < x := x + 1 > < x := x 1 > oc; {x er her 0} INF 4140 H08 Uke 1, side 29.

30 Betingede kritiske regioner Innfører følgende uttrykk: < await (B) S; > Det boolske uttrykketbspesifiserer en ventebetingelse. Hakeparentesene antyder at kroppenseksekveres som en atomær operasjon. Eksempel < await (y > 0) y := y-1; > Variabelenyblir først minket når betingelseny > 0 holder. INF 4140 H08 Uke 1, side 30.

31 Betingede kritiske regioner (2) Mutex: < x := x+1 ; y := y+1 ; > Betingelsessynkronisering: < await (teller > 0) ; > Vi kan brukeawait til å spesifisere begge synkroniseringsmetodene: int teller = 1;... < await (teller > 0) teller := teller-1; > start region kritiske setninger; teller := teller+1; slutt region Invariant: 0 teller 1 INF 4140 H08 Uke 1, side 31.

32 Eksempel: produsent/konsument synkronisering LaProducer være en prosess som leverer data til en prosessconsumer. int buf, p := 0, c := 0; process Producer { process Consumer { int a[n];... int b[n];... while (p < n) { while (c < n) { < await (p == c) ; > < await (p > c) ; > buf := a[p] b[c] := buf p := p+1; c := c+1; } } } } Denne type synkronisering kalles for gjerne for busy waiting. INF 4140 H08 Uke 1, side 32.

33 Eksempel (forts) a: buf: p: c: n: b: Global Invariant : c <= p <= c+1 Lokal Invariant (Producer) : 0 <= p <= n En invariant holder i alle tilstander i historien til programmet. INF 4140 H08 Uke 1, side 33.

INF3140 / INF4140 MODELLER FOR PARALLELLITET. PMA-gruppen. Institutt for informatikk Universitetet i Oslo.

INF3140 / INF4140 MODELLER FOR PARALLELLITET. PMA-gruppen. Institutt for informatikk Universitetet i Oslo. INF3140 / INF4140 MODELLER FOR PARALLELLITET PMA-gruppen Institutt for informatikk Universitetet i Oslo http://www.ifi.uio.no/~pma Uke 1, side 1. Modeller for parallellitet Forelesere Johan Dovland (IFI)

Detaljer

INF3140 Modeller for parallellitet INF3140/4140: Programanalyse

INF3140 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

Detaljer

INF3140 Modeller for parallellitet INF3140/4140: Låser og Barrierer

INF3140 Modeller for parallellitet INF3140/4140: Låser og Barrierer INF3140/4140: Låser og Barrierer Uke 2, side 1. Praktisk Obligatorisk oppgave 1 Er nå lagt ut. Merk: Frist fredag 21. sept. Guppelærer Mohammad Ali Norozi mohammno@ifi.uio.no Merk: Kun gruppe 1 åpen! Forelesningssted

Detaljer

INF4140: Låser og Barrierer (Locks and Barriers)

INF4140: Låser og Barrierer (Locks and Barriers) INF4140: Låser og Barrierer (Locks and Barriers) Chapter 3 (version 3.9.09) H09, Uke 2, side 1. Practical Stuff Obligatory assignment 1 NB: Deadline Monday 21. Sept. See teaching plan. Group teacher Chris

Detaljer

Plan. Oppgaver og repetisjon Eksempler med fikspunkt og induksjon: 1. sortering 2. divisjon 3. Heis? IN 315: Foilsett 9: Unity: Arkitekturer

Plan. Oppgaver og repetisjon Eksempler med fikspunkt og induksjon: 1. sortering 2. divisjon 3. Heis? IN 315: Foilsett 9: Unity: Arkitekturer Plan Tema: Ulike arkitekturer og avbildninger 1. asynkron arkitektur med felles variable 2. synkron arkitektur med felles variable 3. distribuert arkitektur med kanal-kommunikasjon 4. program-skjemaer

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: December 16th. 2005 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 11 sider. Vedlegg: INF3140/4140 Models of Concurrency

Detaljer

Dagens plan INF3170 Logikk. Obliger og eksamen. Forelesning 1: Introduksjon, mengdelære og utsagnslogikk. Christian Mahesh Hansen og Roger Antonsen

Dagens plan INF3170 Logikk. Obliger og eksamen. Forelesning 1: Introduksjon, mengdelære og utsagnslogikk. Christian Mahesh Hansen og Roger Antonsen Dagens plan INF3170 Logikk Forelesning 1: Introduksjon, mengdelære og utsagnslogikk Christian Mahesh Hansen og Roger Antonsen Institutt for informatikk, Universitetet i Oslo 1 Praktisk informasjon 2 23.

Detaljer

Kodegenerering, del 2: Resten av Kap. 8 pluss tilleggsnotat (fra kap. 9 i ASU ) INF5110 V2007

Kodegenerering, del 2: Resten av Kap. 8 pluss tilleggsnotat (fra kap. 9 i ASU ) INF5110 V2007 Kodegenerering, del 2: Resten av Kap. 8 pluss tilleggsnotat (fra kap. 9 i ASU ) INF5110 V2007 Stein Krogdahl, Ifi UiO NB: Innfører noen begreper som først og fremst har mening om man skal gå videre med

Detaljer

Kort notat om parallellstyring IN147

Kort notat om parallellstyring IN147 Kort notat om parallellstyring IN147 Kristin Skar 18. mai 2001 1 Kommunikasjon mellom prosesser Mange problemer man kommer borti kan kreve en paralell løsning: Man kan ha behov for økt hastighet, og dermed

Detaljer

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse Innhold Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer Prinsipper for synkronisering av felles hukommelse Multiprosessorer koblet sammen av én buss 02.05 2001 Parallelle

Detaljer

GetMutex(lock) { while(testandset(lock)) {} } En context switch kan ikke ødelegge siden testen og endringen av lock skjer i samme instruksjon.

GetMutex(lock) { while(testandset(lock)) {} } En context switch kan ikke ødelegge siden testen og endringen av lock skjer i samme instruksjon. Hardware-støttet Semafor og Implementasjon av semafor i OS til å synkronisere Hardware-støttet alle softwareløsninger innebærer mange instruksjoner i tillegg til busy-waiting, som koster CPU-tid. I praksis

Detaljer

Concurrency. Lars Vidar Magnusson. September 20, Lars Vidar Magnusson () Forelesning i Operativsystemer September 20, / 17

Concurrency. Lars Vidar Magnusson. September 20, Lars Vidar Magnusson () Forelesning i Operativsystemer September 20, / 17 Concurrency Lars Vidar Magnusson September 20, 2011 Lars Vidar Magnusson () Forelesning i Operativsystemer 20.09.2011 September 20, 2011 1 / 17 Oversikt Concurrency 1 Concurrency Beskrivelse Prinsipper

Detaljer

INF1000 undervisningen INF 1000 høsten 2011 Uke september

INF1000 undervisningen INF 1000 høsten 2011 Uke september INF1000 undervisningen INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Forelesningene: Første

Detaljer

INF 1000 høsten 2011 Uke september

INF 1000 høsten 2011 Uke september INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus 1 INF1000 undervisningen Forelesningene: Første

Detaljer

Bakgrunnen for INF2100. Velkommen til INF2100. Prosjektet. Hva gjør en kompilator?

Bakgrunnen for INF2100. Velkommen til INF2100. Prosjektet. Hva gjør en kompilator? Kursopplegg Velkommen til INF2100 Bakgrunnen Bakgrunnen for INF2100 Jeg er Dag Langmyhr (dag@ifi.uio.no). Dagens tema: Hva går kurset ut på? Bakgrunn for kurset Hvordan gjennomføres kurset? Hvordan får

Detaljer

13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER

13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER .9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,

Detaljer

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

TDT4110 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

Detaljer

Velkommen til INF2100

Velkommen til INF2100 Kursopplegg Velkommen til INF2100 Jeg er Dag Langmyhr (dag@ifi.uio.no). Dagens tema: Hva går kurset ut på? Bakgrunn for kurset Hvordan gjennomføres kurset? Hvordan får man det godkjent? Pause (med registrering

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF2810 Eksamensdag: Fredag 5. juni 2015 Tid for eksamen: 14:30 (4 timer) Oppgavesettet er på 4 sider (ikke medregnet denne siden)

Detaljer

Velkommen til INF2100 Jeg er Dag Langmyhr

Velkommen til INF2100 Jeg er Dag Langmyhr Velkommen til Jeg er Dag Langmyhr (dag@ifi.uio.no). Bakgrunn for I INF1000 20 har dere lært å rammere, men bare små rammer (< 1000 linjer). Hensikten med er å gi mer rammeringstrening Dagens tema: Hva

Detaljer

Ark 1 av 18. programmeringsspråkenes. Velkommen til IN 211. verden. IN 211 Programmeringsspråk

Ark 1 av 18. programmeringsspråkenes. Velkommen til IN 211. verden. IN 211 Programmeringsspråk Ark 1 av 18 IN 211 Programmeringsspråk Velkommen til programmeringsspråkenes verden IN 211 Forelesning 20.8.2001 Foreleser Ragnhild Kobro Runde E-post: ragnhilk@ifi.uio.no Kontor: 3345 Treffetid: torsdager

Detaljer

Hjemmeeksamen 2 i INF3110/4110

Hjemmeeksamen 2 i INF3110/4110 Hjemmeeksamen 2 i INF3110/4110 Innleveringsfrist: onsdag 19. november kl. 1400 Innlevering Besvarelsen av oppgave 2,3,4 og 5 skal leveres skriftlig på papir i IFI-ekspedisjonen. Merk denne med navn, kurskode,

Detaljer

Velkommen til. INF våren 2017

Velkommen til. INF våren 2017 Velkommen til INF1010 - våren 2017 Idag: 1. time: Om INF1010 2.time: Om Objekter i Java 1 Stein Gjessing og Stein Michael Storleer Universitetet i Oslo 1 INF1010 Objektorientert programmering I INF1010

Detaljer

Oppsummering av digitalteknikkdelen

Oppsummering av digitalteknikkdelen Oppsummering av digitalteknikkdelen! Følgende hovedtemaer er gjennomgått! Boolsk Algebra! von Neuman-arkitektur! Oppbygging av CPU! Pipelining! Cache! Virtuelt minne! Interne busser 09.05. INF 1070 1 Boolsk

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF2440 Praktisk parallell programmering Prøveeksamensdag : 26. mai 2014 Tidspunkter: 11.00 Utdeling av prøveeksamen 15:15

Detaljer

Mer kodegenerering: Tilleggsnotat fra AHU Om Javas Byte-kode INF april 2009

Mer kodegenerering: Tilleggsnotat fra AHU Om Javas Byte-kode INF april 2009 Mer kodegenerering: Tilleggsnotat fra AHU Om Javas Byte-kode INF5110 30. april 2009 Stein Krogdahl, Ifi UiO Tirsdag 5. mai: Forelesning Torsdag 7. mai: Forelesning Tirsdag 12. mai: FRI Torsdag 14. mai:

Detaljer

Tråder Repetisjon. 9. og 13. mai Tråder

Tråder Repetisjon. 9. og 13. mai Tråder Tråder Repetisjon 9. og 13. mai Tråder Hva er tråder? 2 Hva er tråder? I utgangspunktet uavhengige aktiviteter som konkurrerer om å få bruke prosessoren. 2 Hvorfor tråder? 3 Hvorfor tråder? Flere oppgaver

Detaljer

Kodegenerering del 3: Tilleggsnotat fra AHU Samt litt om class-filer og byte-kode INF5110 V2007. Stein Krogdahl, Ifi UiO

Kodegenerering del 3: Tilleggsnotat fra AHU Samt litt om class-filer og byte-kode INF5110 V2007. Stein Krogdahl, Ifi UiO Kodegenerering del 3: Tilleggsnotat fra AHU Samt litt om class-filer og byte-kode INF5110 V2007 Stein Krogdahl, Ifi UiO ASU, kap 9.5: Vi generer kode for én og én basal blokk Da er det lett å holde orden

Detaljer

Betinget eksekvering og logiske tester i shell

Betinget eksekvering og logiske tester i shell Betinget eksekvering og logiske tester i shell Betinget eksekvering *? Programmet utfører operasjon(er) bare hvis en logisk betingelse er sann Bash tilbyr to kontrollstrukturer for å kunne gjøre betinget

Detaljer

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015 Beskrivelse av programmeringsspråket Compila15 INF5110 - Kompilatorteknikk Våren 2015 Her beskrives syntaksen og den statiske semantikken (hva som skal sjekkes av kompilatoren) til språket Compila15. Den

Detaljer

Velkommen til INF Kompilatorteknikk

Velkommen til INF Kompilatorteknikk Velkommen til INF5110 - Kompilatorteknikk Kursansvarlige: Stein Krogdahl [steink@ifi.uio.no] Birger Møller-Pedersen [birger@ifi.uio.no] Eivind Gard Lund (hjelpelærer) [eivindgl@student.matnat.uio.no] Kursområdet:

Detaljer

INF1010 Tråder II 6. april 2016

INF1010 Tråder II 6. april 2016 INF1010 Tråder II 6. april 2016 Stein Gjessing Universitetet i Oslo 1 Tråder i Java tråden minrunp class MinRun implements Runable { MinRun(... ) {... } public void run( ) {...... } } //end

Detaljer

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2 INF2810: Funksjonell programmering INF2810: Funksjonell Programmering En Scheme-evaluator i Scheme, del 2 Erik Velldal Universitetet i Oslo 7. mai 2015 Tema Forrige uke SICP 4.1. Structure and interpretation

Detaljer

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2 INF2810: Funksjonell Programmering En Scheme-evaluator i Scheme, del 2 Erik Velldal Universitetet i Oslo 4. mai 2017 Tema 2 Forrige uke SICP 4.1. Structure and interpretation of computer programs Metacircular

Detaljer

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2 INF2810: Funksjonell Programmering En Scheme-evaluator i Scheme, del 2 Erik Velldal Universitetet i Oslo 4. mai 2017 Tema 2 Forrige uke SICP 4.1. Structure and interpretation of computer programs Metacircular

Detaljer

Forelesning inf Java 1

Forelesning inf Java 1 Forelesning inf1000 - Java 1 Tema: Javas historie Bestanddelene i et Java-program Programvariabler Ole Christian Lingjærde, 22. august 2012 Litt Java-historikk The Green Team I 1991 opprettet Sun Microsystems

Detaljer

INF3110 Programmeringsspråk. Velkommen til kurset INF 3110/4110. Programmeringsspråk 1/24

INF3110 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

Detaljer

INF 3110/4110. Velkommen til kurset. Programmeringsspråk. Først det praktiske

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

Detaljer

Dagens plan. INF3170 Logikk. Obliger og eksamen. Forelesning 1: Introduksjon. Utsagnslogikk og sekventkalkyle. Arild Waaler. 21.

Dagens plan. INF3170 Logikk. Obliger og eksamen. Forelesning 1: Introduksjon. Utsagnslogikk og sekventkalkyle. Arild Waaler. 21. INF3170 Logikk Dagens plan Forelesning 1: Introduksjon. og sekventkalkyle Arild Waaler Institutt for informatikk, Universitetet i Oslo 1 Praktisk informasjon 2 21. januar 2008 3 Institutt for informatikk

Detaljer

INF2810: Funksjonell Programmering

INF2810: Funksjonell Programmering INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Erik Velldal Universitetet i Oslo 9. februar 2017 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens prosedyrer

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

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

Detaljer

Dagens plan. INF3170 Logikk

Dagens plan. INF3170 Logikk INF3170 Logikk Dagens plan Forelesning 1: Introduksjon og mengdelære Christian Mahesh Hansen Institutt for informatikk, Universitetet i Oslo 1 Praktisk informasjon 2 Hva skal vi lære? 22. januar 2007 3

Detaljer

INF2810: Funksjonell Programmering

INF2810: Funksjonell Programmering INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Erik Velldal Universitetet i Oslo 9. februar 2017 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens prosedyrer

Detaljer

Stein Gjessing. Institutt for informatikk. Universitetet i Oslo. Institutt for informatikk

Stein Gjessing. Institutt for informatikk. Universitetet i Oslo. Institutt for informatikk INF1010 11. mai 2017 Monitorer med kritiske regioner og passive venting innbygget i Java - Kommunikasjon mellom prosesser i Java (Ikke pensum i INF1010) Stein Gjessing Universitetet i Oslo 1 Repetisjon:

Detaljer

Forelesning inf1000 - Java 1

Forelesning inf1000 - Java 1 Litt Java-historikk Forelesning inf1000 - Java 1 Tema: Javas historie Bestanddelene i et Java-program Programvariabler Ole Christian Lingjærde, 22. august 2012 The Green Team I 1991 opprettet Sun Microsystems

Detaljer

Velkommen til. IN1010 Objektorientert programmering Våren 2018

Velkommen til. IN1010 Objektorientert programmering Våren 2018 Velkommen til IN1010 Objektorientert programmering Våren 2018 Idag: 1. time: Om IN1010 2. time (+ i morgen og neste uke): Om Java og objekter i Java 1 Stein Gjessing, Siri Jensen og Dag Langmyhr Universitetet

Detaljer

INF1800 LOGIKK OG BEREGNBARHET

INF1800 LOGIKK OG BEREGNBARHET INF1800 LOGIKK OG BEREGNBARHET FORELESNING 4: UTSAGNSLOGIKK Roger Antonsen Institutt for informatikk Universitetet i Oslo 27. august 2008 (Sist oppdatert: 2008-09-03 12:39) Før vi begynner Praktiske opplysninger

Detaljer

INF Oblig 2 semantikksjekk og kodegenerering

INF Oblig 2 semantikksjekk og kodegenerering INF5110 - Oblig 2 semantikksjekk og kodegenerering Magnus Haugom Christensen Instituttet for Informatikk Universitetet i Oslo 27. Mars - 2012 Oversikt Informasjon Oppgaven Semantikksjekk Kodegenerering

Detaljer

Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015

Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015 Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015 Oppgave 1: Vi skal se på koden generert av TA-instruksjonene til høyre i figur 9.10 i det utdelte notatet, side 539 a) (repetisjon fra forelesningene)

Detaljer

INF2810: Funksjonell Programmering. En metasirkulær evaluator, del 2

INF2810: Funksjonell Programmering. En metasirkulær evaluator, del 2 INF2810: Funksjonell Programmering En metasirkulær evaluator, del 2 Stephan Oepen & Erik Velldal Universitetet i Oslo 03. mai 2013 Tema 2 Forrige uke SICP 4.1. Structure and interpretation of computer

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

INF2810: Funksjonell Programmering. En metasirkulær evaluator, del 2

INF2810: Funksjonell Programmering. En metasirkulær evaluator, del 2 INF2810: Funksjonell Programmering En metasirkulær evaluator, del 2 Stephan Oepen & Erik Velldal Universitetet i Oslo 03. mai 2013 Tema 2 Forrige uke SICP 4.1. Structure and interpretation of computer

Detaljer

Oppgaver til kodegenerering etc. INF-5110, 16. mai, 2014

Oppgaver til kodegenerering etc. INF-5110, 16. mai, 2014 Oppgaver til kodegenerering etc. INF-5110, 16. mai, 2014 Oppgave 1: Vi skal se på koden generert av TA-instruksjonene til høyre i figur 9.10 i det utdelte notatet, side 539 a) Se på detaljene i hvorfor

Detaljer

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:

Detaljer

var y :{x :T R}; S endvar y

var y :{x :T R}; S endvar y uttrykk av formen some x : T R selekterer ikke-deterministisk Et T -verdi som tilfredsstiller R, det vil si en verdi av subtypen en skal regnes med i den applikative delen av programmeringsspråket, some-uttrykk

Detaljer

INF3140 Modeller for parallellitet INF3140/4140: Monitorer

INF3140 Modeller for parallellitet INF3140/4140: Monitorer INF3140/4140: Monitorer Uke 6, side 1. Monitor Programmoduler med mer struktur enn semaforer Monitorer er en mekanisme for data-abstraksjon Data i monitor er innkapslet og manipuleres vha. monitorprosedyrer

Detaljer

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon Kort om meg INF1000 Uke 2 Variable, enkle datatyper og tilordning Fredrik Sørensen Kontor: Rom 4311-NR, Informatikkbygget Brukernavn/e-post: fredrso@ifi.uio.no Utdanning: Dataingeniør, 2000 Cand.Scient,

Detaljer

Models of Concurrency

Models of Concurrency Models of Concurrency Martin Steffen 1 University of Oslo, Norway INF3140 Høst 2007 Dagens program Mer asynkron meldingsutveksling Interagerende prosesser med ulike kommunikasjonsmønstre Oppsummering av

Detaljer

INF1000: noen avsluttende ord

INF1000: noen avsluttende ord Pensum INF1000: noen avsluttende ord Arne og Ole Christian Det som er gjennomgått på forelesningene Stoff som er behandlet i oppgaver/obliger Notat om Informasjonsteknologi, vitenskap og samfunnsmessige

Detaljer

Repetisjon: operatorene ++ og -- Java 5. Nøtt. Oppgave 1 (fra forrige gang) 0 udefinert udefinert. Alternativ 1 Prefiks-operator

Repetisjon: operatorene ++ og -- Java 5. Nøtt. Oppgave 1 (fra forrige gang) 0 udefinert udefinert. Alternativ 1 Prefiks-operator Litt mer om løkker Arrayer le Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i slo Java Repetisjon: operatorene ++ og -- Instruksjon i = i + i = i - Alternativ Prefiks-operator

Detaljer

INF2810: Funksjonell Programmering

INF2810: Funksjonell Programmering INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Stephan Oepen Universitetet i Oslo 9. februar 2015 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens

Detaljer

INF2810: Funksjonell Programmering

INF2810: Funksjonell Programmering INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Stephan Oepen Universitetet i Oslo 9. februar 2015 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens

Detaljer

Oppsummering av IN147 siste del Operativsystemer Parallellisering Veien videre

Oppsummering av IN147 siste del Operativsystemer Parallellisering Veien videre Oppsummering av IN147 siste del Operativsystemer Parallellisering Veien videre Ark 1 av 12 Forelesning 12.5.1999 Operativsystemer I kurset har vi fokusert på UNIX, men prinsippene gjelder i større eller

Detaljer

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale. Høgskolen i Telemark Fakultet for allmennvitenskapelige fag EKSAMEN I 6108/6108N PROGRAMMERING I JAVA 21. 12. 2015 Tid: 4 timer Sidetall: Hjelpemiddel: Merknader: Framside + 5 sider Alt trykt og skriftlig

Detaljer

Side 1 av 11, prosesser, tråder, synkronisering, V. Holmstedt, HiO 2006

Side 1 av 11, prosesser, tråder, synkronisering, V. Holmstedt, HiO 2006 Side 1 av 11, prosesser, tråder, synkronisering, V. Holmstedt, HiO 2006 Prosesser og tråder Datamaskinen lager prosesser. En prosess organiserer arbeidet i et program ved å administrere tråder. Det er

Detaljer

Velkommen til MAT1030!

Velkommen til MAT1030! MAT1030 Diskret Matematikk Forelesning 1: Algoritmer, pseudokoder, kontrollstrukturer Roger Antonsen Institutt for informatikk, Universitetet i Oslo Velkommen til MAT1030! 13. januar 2009 (Sist oppdatert:

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 1: Algoritmer, pseudokoder, kontrollstrukturer Roger Antonsen Institutt for informatikk, Universitetet i Oslo 13. januar 2009 (Sist oppdatert: 2009-01-14 16:44) Velkommen

Detaljer

Kapittel 6: Funksjoner

Kapittel 6: Funksjoner MAT1030 Diskret Matematikk Forelesning 14: Mer om funksjoner Roger Antonsen Institutt for informatikk, Universitetet i Oslo Kapittel 6: Funksjoner 10. mars 2009 (Sist oppdatert: 2009-03-10 11:34) MAT1030

Detaljer

Beskrivelse av programmeringsspråket Simpila INF5110 - Kompilatorteknikk Våren 2012

Beskrivelse av programmeringsspråket Simpila INF5110 - Kompilatorteknikk Våren 2012 Beskrivelse av programmeringsspråket Simpila INF5110 - Kompilatorteknikk Våren 2012 Her beskrives syntaksen og den statiske semantikken (hva som skal sjekkes av kompilatoren) til språket Simpila. Den dynamiske

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 11: Relasjoner Roger Antonsen Institutt for informatikk, Universitetet i Oslo 25. februar 2009 (Sist oppdatert: 2009-03-03 11:37) Kapittel 5: Relasjoner MAT1030 Diskret

Detaljer

Kapittel 5: Relasjoner

Kapittel 5: Relasjoner MAT1030 Diskret Matematikk Forelesning 11: Relasjoner Roger Antonsen Institutt for informatikk, Universitetet i Oslo Kapittel 5: Relasjoner 25. februar 2009 (Sist oppdatert: 2009-03-03 11:37) MAT1030 Diskret

Detaljer

IN1010 Objektorientert programmering Våren 2019

IN1010 Objektorientert programmering Våren 2019 IN1010 Objektorientert programmering IN1010 Objektorientert programmering Våren 2019 Stein Gjessing Hva skjer de første to ukene? Forelesninger de to første ukene i dag 1. time: Info om IN1010 i dag 2.

Detaljer

Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2)

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

Detaljer

Velkommen til INF5110 Kompilatorteknikk

Velkommen til INF5110 Kompilatorteknikk Velkommen til INF5110 Kompilatorteknikk 15. januar 2013 Kursansvarlige: Stein Krogdahl [steink@ifi.uio.no] Ragnhild Kobro Runde [ragnhilk@ifi.uio.no] Henning Berg (oblig-ansvarlig) [hennb@ifi.uio.no] Kursområdet:

Detaljer

Plan: Parameter-overføring Alias Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) IN 211 Programmeringsspråk

Plan: Parameter-overføring Alias Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) IN 211 Programmeringsspråk Plan: Parameter-overføring Alias Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) Funksjonelle språk (Ghezzi&Jazayeri kap.7 frem til 7.4) Neste uke: ML Ark 1 av 16 Forelesning 16.10.2000 Parameteroverføring

Detaljer

Læringsmål og pensum. Oversikt

Læringsmål og pensum. Oversikt 1 2 Læringsmål og pensum TDT4105 Informasjonsteknologi grunnkurs: Uke 39 Betingede løkker og vektorisering Læringsmål Skal kunne forstå og programmere betingede løkker med while Skal kunne utnytte plassallokering

Detaljer

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

Detaljer

MAT1030 Diskret matematikk

MAT1030 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

Detaljer

Innledning. MAT1030 Diskret matematikk. Kapittel 11. Kapittel 11. Forelesning 33: Repetisjon

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

Detaljer

Feilmeldinger, brukerinput og kontrollflyt

Feilmeldinger, brukerinput og kontrollflyt Feilmeldinger, brukerinput og kontrollflyt Skjønne hvordan et program presist utføres og forberede seg på håndtering av feil INF1000, uke2 Ragnhild Kobro Runde Programmeringskrøll Programmet vil ikke kjøre

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

INF1800 LOGIKK OG BEREGNBARHET

INF1800 LOGIKK OG BEREGNBARHET INF1800 LOGIKK OG BEREGNBARHET FORELESNING 1: INTRODUKSJON Roger Antonsen Institutt for informatikk Universitetet i Oslo 19. august 2008 (Sist oppdatert: 2008-09-03 12:35) Velkommen til INF1800! Introduksjon

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

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

Java PRP brukermanual

Java PRP brukermanual Java PRP brukermanual 1.1 Introduksjon 1.1.1 Hva er Java PRP Java PRP (Parallel Recursive Procedure) gir oss muligheten til automatisk parallellisering av programmer, som baserer seg på noen rekursive

Detaljer

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og

Detaljer

Obligatorisk oppgave 6 i INF1010: Dekryptering

Obligatorisk oppgave 6 i INF1010: Dekryptering Obligatorisk oppgave 6 i INF1010: Dekryptering INF1010 Frist: mandag 8. mai 2017 kl. 12:00 Versjon 1.0 (8cb4fee ) Innhold 1 Innledning 1 2 Modell 2 3 Pakke for lytting på kanaler og dekryptering 2 4 Implementasjon

Detaljer

Velkommen til. INF våren 2016

Velkommen til. INF våren 2016 Velkommen til INF1010 - våren 2016 Denne uken (onsdag og torsdag): Om INF1010 Java datastrukturer Klasser med parametre i Java Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 1 INF1010

Detaljer

INF 4130. 8. oktober 2009. Dagens tema: Uavgjørbarhet. Neste uke: NP-kompletthet

INF 4130. 8. oktober 2009. Dagens tema: Uavgjørbarhet. Neste uke: NP-kompletthet INF 4130 8. oktober 2009 Stein Krogdahl Dagens tema: Uavgjørbarhet Dette har blitt framstilt litt annerledes tidligere år Se Dinos forelesninger fra i fjor. I år: Vi tenker mer i programmer enn i Turing-maskiner

Detaljer

Intel Core i7. Omid Mirmotahari 4

Intel Core i7. Omid Mirmotahari 4 INF2270 Pipeline Hovedpunkter Oppsummering av én-sykel implementasjon Forbedring av én-sykel designet Introduksjon til pipelining Oppbygning av datapath med pipelining Intel Core i7 Omid Mirmotahari 4

Detaljer

INF2810: Funksjonell Programmering. En metasirkulær evaluator

INF2810: Funksjonell Programmering. En metasirkulær evaluator INF2810: Funksjonell Programmering En metasirkulær evaluator Stephan Oepen & Erik Velldal Universitetet i Oslo 26. april 2013 Tema 2 Forrige uke Strømmer og utsatt evaluering Memoisering Kort om makroer

Detaljer

Mer kodegenerering: Tilleggsnotat fra AHU. INF mai Stein Krogdahl,

Mer kodegenerering: Tilleggsnotat fra AHU. INF mai Stein Krogdahl, Mer kodegenerering: Tilleggsnotat fra AHU Om Javas Byte-kode INF5110 4. mai 2010 Stein Krogdahl, Ifi UiO Avsluttende om kodegenerering g Avsluttende pensum: En del fra utdelt kap 9 fra Aho, Sethi og Ullmann

Detaljer

Dagens tema: 12 gode råd for en kompilatorskriver

Dagens tema: 12 gode råd for en kompilatorskriver Dagens tema: 12 gode råd for en kompilatorskriver Hvordan sjekke navn? Testutskrifter 12 gode råd Hva skal gjøres med navn? Sjekking av navn En kompilator må også sjekke riktig navnebruk: Det må ikke forekomme

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

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Eksamensdato: 21. desember 2005 Varighet: 3 timer ( 9:00 12:00 ) Avdeling for informatikk og e-læring Fagnummer: Fagnavn: LO249D Operativsystemer med Linux Klasser: FU (1. ING)

Detaljer

Løkker og arrayer. Løse problemer med programmering. INF1000, uke3 Geir Kjetil Sandve

Løkker og arrayer. Løse problemer med programmering. INF1000, uke3 Geir Kjetil Sandve Løkker og arrayer Løse problemer med programmering INF1000, uke3 Geir Kjetil Sandve Hva vi har lært så langt Variabler og uttrykk Beslutninger Kontrollflyt og feilmeldinger Metoder og parametre Fokus i

Detaljer

Kompleksitetsanalyse Helge Hafting 25.1.2005 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder

Kompleksitetsanalyse Helge Hafting 25.1.2005 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder Helge Hafting 25.1.2005 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder Innhold 1 1 1.1 Hva er en algoritme?............................... 1 1.2

Detaljer

INF2810: Funksjonell Programmering. En metasirkulær evaluator

INF2810: Funksjonell Programmering. En metasirkulær evaluator INF2810: Funksjonell Programmering En metasirkulær evaluator Stephan Oepen & Erik Velldal Universitetet i Oslo 26. april 2013 Tema 2 Forrige uke Strømmer og utsatt evaluering Memoisering Kort om makroer

Detaljer

INF3140 Modeller for parallellitet INF3140/4140: Semaforer

INF3140 Modeller for parallellitet INF3140/4140: Semaforer INF3140/4140: Semaforer Uke 3, side 1. I dag Symmetriske barrierer Semaforer Verktøy for synkroniseringsprotokoller Skal se flere klassiske problemstillinger Uke 3, side 2. Symmetriske barrierer Alle nodene

Detaljer