INF 3232/4232 Forelesning 1: Introduksjon; signaturer; grunntermer

Størrelse: px
Begynne med side:

Download "INF 3232/4232 Forelesning 1: Introduksjon; signaturer; grunntermer"

Transkript

1 INF 3232/4232 Forelesning 1: Introduksjon; signaturer; grunntermer Peter Ölveczky Universitetet i Oslo 16. januar 2017 Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

2 Dagens Tema 1 Praktiske ting 2 Om kurset Motivasjon Modellering 3 Signaturer 4 Grunntermer Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

3 Innhold 1 Praktiske ting 2 Om kurset Motivasjon Modellering 3 Signaturer 4 Grunntermer Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

4 Lærere Foreleser/kursansvarlig: Peter Ölveczky Professor, Ifi Kontor Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

5 Lærere Foreleser/kursansvarlig: Peter Ölveczky Professor, Ifi Kontor Gruppelærer: Antonio Gonzalez Burgueño Doktorstipendiat, Ifi Kontorlandskap 9. etg Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

6 Pensum Pensum: bok, forelesninger, oppgaver, løsningsforslag, obliger,... Pensumbok: Formal Modeling and Analysis of Distributed Systems: An Introduction Based on Executable Modeling in Maude på kursets hjemmeside skal utgis på Springer ASAP feedback ønskes! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

7 Kursplan etc. Må følge med på kursets hjemmeside index.html og Schedule foiler, oppgaver, obligatoriske oppgaver, etc! 3 obligatoriske oppgaver den første har frist 7. februar! Ha med skrevne/trykte hjelpemidler til eksamen! Samme emne som INF3230/4231 Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

8 INF 4232 INF 4232: Samme forelesninger, oppgaver, obligatoriske oppgaver som INF 3232 I tillegg: temporallogikk for definisjon av kravspesifikasjoner ekstra forelesning(er) på slutten av kurset Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

9 Forhåndskunnskaper Rekursiv programmering, a la INF 1010 Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

10 Forhåndskunnskaper Ingen matematiske kunnskaper strengt nødvendig, men fordel med noe basal kjennskap til relasjoner, funksjoner, etc. Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

11 Forhåndskunnskaper Ingen forhåndskunnskaper om nettverk, operativsystem, Java, datamaskinarkitektur, sikkerhetsprotokoller, databaser, etc Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

12 Innhold 1 Praktiske ting 2 Om kurset Motivasjon Modellering 3 Signaturer 4 Grunntermer Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

13 Emnenavn Logikk for modellering og analyse av distribuerte systemer mer dekkende emnenavn Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

14 Distribuerte systemer De fleste datasystemer er distribuerte systemer hvor flere datamaskiner kommuniserer for å oppnå noe web services nettbank flybillettkjøp databasesystemer fly biler moderne krigføring Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

15 Motivasjon Samfunnet totalt avhengig av avanserte datasystemer Store komplekse men kritiske systemer... som er meget vanskelig å forstå Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

16 Motivasjon Samfunnet totalt avhengig av avanserte datasystemer Store komplekse men kritiske systemer... som er meget vanskelig å forstå Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

17 Motivasjon Samfunnet totalt avhengig av avanserte datasystemer Store komplekse men kritiske systemer... som er meget vanskelig å forstå Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

18 Motivasjon Samfunnet totalt avhengig av avanserte datasystemer Store komplekse men kritiske systemer... som er meget vanskelig å forstå Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

19 Motivasjon Samfunnet totalt avhengig av avanserte datasystemer Store komplekse men kritiske systemer... som er meget vanskelig å forstå Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

20 Motivasjon Samfunnet totalt avhengig av avanserte datasystemer ( 80 ECUs in cars (Wikipedia)) Store komplekse men kritiske systemer... som er meget vanskelig å forstå Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

21 Eksempel Åpent nettverk: enkelt å avlytte kommunikasjon og sende falske meldinger Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

22 Eksempel Åpent nettverk: enkelt å avlytte kommunikasjon og sende falske meldinger Hvordan kan nettbanken vite at den snakker med Skrue og ikke med B-gjengen? Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

23 Eksempel (II) NSPK : Protokoll for gjensidig autentisering i nettverk: Message 1. A B : {N a.a} PK(B) Message 2. B A : {N a.n b } PK(A) Message 3. A B : {N b } PK(B) klassisk protokoll fra 1978 knekt 1995 ved bruk av INF 3232-metoder Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

24 Motivasjon (forts.) Størrelse + kompleksitet + kostnad/betydelse: Forstå problemet meget godt før implementering kan ikke teste et software i en Airbus A380, eller en electronic commerce protocol på Internet Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

25 Motivasjon (forts.) Størrelse + kompleksitet + kostnad/betydelse: Forstå problemet meget godt før implementering kan ikke teste et software i en Airbus A380, eller en electronic commerce protocol på Internet også nyttig å analysere ikke-kritiske systemer før implementering Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

26 Motivasjon (forts.) Størrelse + kompleksitet + kostnad/betydelse: Forstå problemet meget godt før implementering kan ikke teste et software i en Airbus A380, eller en electronic commerce protocol på Internet også nyttig å analysere ikke-kritiske systemer før implementering billigere å rette opp feil jo tidligere de oppdages! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

27 Modellering Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

28 Modellering Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

29 Modellering Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

30 Modellering Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

31 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

32 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

33 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

34 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

35 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

36 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

37 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

38 Modellering (forts.) Lag modeller av bygninger før bygging! (i vindtunnel) Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

39 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

40 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

41 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

42 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

43 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

44 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

45 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

46 Modellering (forts.) Lag modeller av bygninger før bygging! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

47 Modellering av bygninger: Fordeler Kjapt og enkelt å lage modell Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

48 Modellering av bygninger: Fordeler Kjapt og enkelt å lage modell Kan enkelt eksperimentere med ulike design Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

49 Modellering av bygninger: Fordeler Kjapt og enkelt å lage modell Kan enkelt eksperimentere med ulike design Analysere designen estetisk verdi planløsning funksjonalitet: stabil?, vind, jordskjelv, strømmer,... Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

50 Modellering av bygninger: Fordeler (II) Enkelt å bygge bygning fra god modell/plantegninger Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

51 Modellering av bygninger: Fordeler (II) Enkelt a bygge bygning fra god modell/plantegninger Peter O lveczky (Universitetet i Oslo) Introduksjon januar / 50

52 Modellering av bygninger: Fordeler (II) Enkelt å bygge bygning fra god modell/plantegninger Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

53 Modellering av bygninger: Fordeler (II) Enkelt å bygge bygning fra god modell/plantegninger bare engineering Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

54 Modellering av bygninger: Fordeler (II) Enkelt å bygge bygning fra god modell/plantegninger bare engineering alle kjenner Gehry, Niemeyer, Calatrava, Ando, ingen aner hvem som bygde Guggenheim! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

55 Modellere datasystemer Ønsker modell av et datasystem! Kjapt og enkelt å lage modell: abstrahere fra detaljer som ikke har med design å gjøre: Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

56 Modellere datasystemer Ønsker modell av et datasystem! Kjapt og enkelt å lage modell: abstrahere fra detaljer som ikke har med design å gjøre: eksempel: hva gjør protokollen hvis en melding forsvinner? innholdet av meldingen irrelevant for protokollen implementasjon av hvordan en melding transporteres mellom to maskiner irrelevant for protokollen... modellen bør se bort fra slike detaljer Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

57 Modellere datasystemer Ønsker modell av et datasystem! Kjapt og enkelt å lage modell: abstrahere fra detaljer som ikke har med design å gjøre: eksempel: hva gjør protokollen hvis en melding forsvinner? innholdet av meldingen irrelevant for protokollen implementasjon av hvordan en melding transporteres mellom to maskiner irrelevant for protokollen... modellen bør se bort fra slike detaljer Analysere design! stirre på modellen (UML) datamaskin analyserer modellen! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

58 Fra modell til system? (forts.) Enkelt å implementere et system fra god spesifikasjon/design! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

59 Fra modell til system? (forts.) Enkelt å implementere et system fra god spesifikasjon/design! Eksempel: Voyager og Galileo spacecrafts 197 kritiske feil funnet TRE av disse var kodingsfeil... resten spesifikasjon/designfeil! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

60 Formell Modellering Formell modell definerer et matematisk objekt presis, éntydig kan analysere modellen matematisk for hånd med datamaskin Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

61 Tema for kurset Høynivå modellering av distribuerte systemer høynivå funksjonell programmering Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

62 Tema for kurset Høynivå modellering av distribuerte systemer høynivå funksjonell programmering Analyse av modellen ved ulike slags kjøringer Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

63 Tema for kurset Høynivå modellering av distribuerte systemer høynivå funksjonell programmering Analyse av modellen ved ulike slags kjøringer Forståelse av distribuerte systemer kommunikasjonsprotokoller distribuerte databaser distribuerte algoritmer (inspirert av cloud computing og mobile ad-hoc network systemer) sikkerhetsprotokoller Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

64 Tema for kurset Høynivå modellering av distribuerte systemer høynivå funksjonell programmering Analyse av modellen ved ulike slags kjøringer Forståelse av distribuerte systemer kommunikasjonsprotokoller distribuerte databaser distribuerte algoritmer (inspirert av cloud computing og mobile ad-hoc network systemer) sikkerhetsprotokoller Høynivå forståelse av ulike former for kommunikasjon: synkron ( handshake ) vs. asynkron unicast/multicast/broadcast ordnet vs uordnet meldingsutveksling tap/duplisering av meldinger... Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

65 Tema for kurset Høynivå modellering av distribuerte systemer høynivå funksjonell programmering Analyse av modellen ved ulike slags kjøringer Forståelse av distribuerte systemer kommunikasjonsprotokoller distribuerte databaser distribuerte algoritmer (inspirert av cloud computing og mobile ad-hoc network systemer) sikkerhetsprotokoller Høynivå forståelse av ulike former for kommunikasjon: synkron ( handshake ) vs. asynkron unicast/multicast/broadcast ordnet vs uordnet meldingsutveksling tap/duplisering av meldinger... Ikke implementasjon og lavnivå-fikling! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

66 Tema for kurset (forts.) Ulike måter å analysere et (distribuert) system på: datamaskinen gjør jobben Logisk/matematisk resonnering bevise at et program alltid vil terminere (bevise semantiske egenskaper ved bruk av likhetslogikk) Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

67 Logikker i kurset Likhetslogikk for data typer (funksjoner, etc.) Omskrivningslogikk definere/resonnere dynamisk oppførsel Temporallogikk (kun INF 4232) kravspesifikasjon Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

68 Maude Vi bruker et kraftfullt men intuitivt modellerings- og programmeringsspråk: Maude state-of-the-art funksjonelt språk Maude 2.6 på Ifi s linux-maskiner Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

69 Kurs-oppbygning Et distribuert system består av to deler : 1 Statisk del: datatyper som definerer tilstandsrommet og nyttige funksjoner stakker, trær, lister, multisett, etc. Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

70 Kurs-oppbygning Et distribuert system består av to deler : 1 Statisk del: datatyper som definerer tilstandsrommet og nyttige funksjoner stakker, trær, lister, multisett, etc. 2 Dynamisk del: hvordan systemet fremskrider Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

71 Del 1: innhold Lære å programmere i Maude Logisk/matematisk resonnering om programmer: bevise at et program aldri vil gå i evig løkke tankegang/teknikk kan brukes på vanlige programmer selv små programmer kan være vriene å forstå: formelle metoder hjelpe i analysen! ingen klarte å avgjøre hvorvidt kaffebønnespillet (4 linjer) terminerer, selv for en flaske whiskey! Likhetslogikk: holder reverse(reverse(t )) = T for alle binære trær T? Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

72 Del 2: innhold Analyse ved simulering og søk Enkle eksempler spill, Super Bowl, menneskets livsløp, separasjonsproblemet, etc. spisende filosofer Modellering av ulike kommunikasjonsformer Distribuerte algoritmer Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

73 Del 2: innhold (forts.) Større eksempler: alternating bit protocol for meldingsutveksling i upålitelige nettverk sliding window protokollen (mest brukte protokoll i komm. syst.?) klassiske distribuerte algoritmer to-fase commit i distribuerte/replikerte databaser distribuert mutual exclusion distribuert leader election consensus NSPK sikkerhetsprotokoll Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

74 Kursinnhold: tillegg for 4231 Definere mer komplekse kravspesifikasjoner vha temporallogikk Sjekke v/maude at en spec tilfredsstiller sin kravspec Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

75 Dette avslutter kursets introduksjon/oversikt Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

76 Innhold 1 Praktiske ting 2 Om kurset Motivasjon Modellering 3 Signaturer 4 Grunntermer Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

77 Signaturer Datatyper I: Fler-sortede signaturer bok Innhold: datatyper kjøre Maude sorter, funksjonssymboler grunntermer Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

78 Datatyper Datatyper: Int, lister, Bool, stack, binære trær,... En datatype har gjerne et domene/verdimengde/ elementer og en mengde funksjoner/operasjoner på disse. Datatypen Int har elementer heltall, og operasjoner +,, max,,... på domenet Datatypen Bool har verdiene true og false og operasjoner som not og and, etc Datatypen liste har operasjoner settinn bak, ta ut, fjern element, etc. Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

79 Deklarativ programmering Java : int, bool, char innebyggede typer Alle andre datatyper (lister, trær, mengder, grafer,... ) må defineres vha klasser; bruk av pekere etc. Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

80 Deklarativ programmering Java : int, bool, char innebyggede typer Alle andre datatyper (lister, trær, mengder, grafer,... ) må defineres vha klasser; bruk av pekere etc. Maude : flexibelt; alle datatyper defineres direkte for effektivitet og praktiske hensyn er basale datatyper som heltall og strenger innebygget Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

81 Deklarativ spes. i Maude Alle verdier / uttrykk bygges opp av funksjonssymboler! Funksjoner defineres rekursivt ved en mengde ligninger Variable er matematiske variable og refererer ikke til minnelokasjoner kan ikke tilordne en verdi til en variabel! Høynivå: ingen pekere ingen sideeffekter ingen aliasing ingen programkontroll Maude gjør slavearbeidet for deg! Enkelt å resonnere om korrekthet til hver ligning Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

82 Maude-eksempel 1 En funksjonell modul spesifiserer en likhets-spesifikasjon: fmod NAT-ADD is sort Nat. op 0 : -> Nat [ctor]. op s : Nat -> Nat [ctor]. op _+_ : Nat Nat -> Nat. vars M N : Nat. --- Dette er en kommentar eq 0 + M = M. eq s(m) + N = s(m + N). endfm En Maude spesifikasjon er en mengde, ikke liste, av deklarasjoner (dvs. rekkefølgen av deklarasjoner spiller ingen rolle)! Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

83 Maude-eksempel II Definerer en type/sort Nat Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

84 Maude-eksempel II Definerer en type/sort Nat Konstruktør-funksjoner (her 0 og s) bygger opp verdimengden til Nat: 0 representerer tallet 0 s(0) representerer tallet 1 s(s(0)) representerer tallet 2, osv. Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

85 Maude-eksempel II Definerer en type/sort Nat Konstruktør-funksjoner (her 0 og s) bygger opp verdimengden til Nat: 0 representerer tallet 0 s(0) representerer tallet 1 s(s(0)) representerer tallet 2, osv. Andre funksjoner som + er vanlige funksjoner og defineres vha ligninger _+_ betyr mix-fix notasjon Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

86 Maude-eksempel II Definerer en type/sort Nat Konstruktør-funksjoner (her 0 og s) bygger opp verdimengden til Nat: 0 representerer tallet 0 s(0) representerer tallet 1 s(s(0)) representerer tallet 2, osv. Andre funksjoner som + er vanlige funksjoner og defineres vha ligninger _+_ betyr mix-fix notasjon Beregne / forenkle et uttrykk ved å erstatte like med like ved bruk av ligninger fra venstre mot høyre: s(0) + s(0) s(0 + s(0)) s(s(0)) Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

87 Kjøring i Maude 1 Skriv Maude-modulen til en fil ved bruk av emacs eller lign. 2 Start Maude med kommandoen maude 3 Les inn fil i Maude: Maude> in nat-add.maude 4 Kjør Maude: Maude> red s(s(0)) + s(0). Resultat: result Nat: s(s(s(0))) 5 Kjør igjen, og igjen,... 6 Avslutt med q (eller quit) Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

88 Inklusjon Inkludere tidligere innleste moduler: including eller protecting: fmod NAT-MULT is protecting NAT-ADD. op _*_ : Nat Nat -> Nat. vars M N : Nat. eq 0 * M = 0. eq s(m) * N = N + (M * N). endfm Maude-verktøyet gjør ingen forskjell på including og protecting (selv om det er en matematisk forskjell) Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

89 Sorter/Typer En sort tilsvarer en type. Deklareres sort Nat. Flere sorter deklareres: sorts Nat Boolean List. Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

90 Matematikk: strenger Repetisjon: Dersom Σ er en mengde, så er Σ mengden av endelige strenger over Σ Den tomme strengen skrives ofte ɛ Sammensatte strenger skrives for eksempel a b c b Eksempel: {a, b} = {ɛ, a, b, a a, a b, b a, b b, a a a,...} Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

91 Funksjonssymboler Funksjon(symbol)(er) f, g, h deklareres op f : s1 s2 s3 s4 -> s. ops g h : s1 s2 -> s. der s1, s2,..., s er sorter Strengen s1 s2 kalles ariteten til g, og s kalles (verdi-) sorten til g En funksjon med tom aritet kalles en konstant (hvorfor?): op 0 : -> Nat. Prefiks notasjon hvis ikke _: s(s(0)), g(a,b) Mix-fix notasjon: op _+_ : Nat Nat -> Nat. Kan nå skrive termer som s(0) + 0 Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

92 Definisjoner Definisjoner kan se skumle ut, men er ofte greie: Definition (Signature) A many-sorted signature (S, Σ) consists of a set S, whose elements are called sorts, and an S S-sorted family Σ = {Σ w,s w S, s S} of function symbols. (Σ w,s is the set of function symbols with arity w and value sort s.) We often write f : w s Σ for f Σ w,s. Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

93 Definisjoner (forts.) En fler-sortet signatur (S, Σ): S en mengde av sorter Σ en mengde funksjoner (mer korrekt: funksjonsymbol-deklarasjoner) Σ s1...s n,s er mengden av funksjonssymboler med aritet s 1... s n og sort s Σ ɛ,s er mengden av konstanter av sort s Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

94 Definisjoner (forts.) En fler-sortet signatur (S, Σ): S en mengde av sorter Σ en mengde funksjoner (mer korrekt: funksjonsymbol-deklarasjoner) Σ s1...s n,s er mengden av funksjonssymboler med aritet s 1... s n og sort s Σ ɛ,s er mengden av konstanter av sort s En definisjon skal være til hjelp. Kan vi f. eks. ha følgende? sorts Nat Boolean. op _+_ : Nat Nat -> Nat. op _+_ : Boolean Boolean -> Boolean. Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

95 Innhold 1 Praktiske ting 2 Om kurset Motivasjon Modellering 3 Signaturer 4 Grunntermer Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

96 Grunntermer En grunnterm bygges opp av funksjonssymbolene på en sort-korrekt måte: 0, s(0), s(s(0)), s(0) + 0 og s(0) + (0 + 0) er grunntermer av sort Nat i NAT-ADD Definition (Ground terms) Given a many-sorted signature (S, Σ), we can define the S-sorted set T Σ = {T Σ,s s S} of ground terms inductively as follows: 1 Σ ɛ,s T Σ,s ; 2 If f Σ s1...s n,s, and t 1 T Σ,s1,..., t n T Σ,sn, and n 1, then f (t 1,..., t n ) T Σ,s. 3 In addition, each set T Σ,s is the smallest set satisfying the above conditions. Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

97 Grunntermer: eksempler Gitt signatur sorts s s. ops a b : -> s. op f : s -> s. op g : s s -> s. Hvilke av følgende a b f(a) f(a,b) f(f(a)) g(b,f(a)) g(a,b) f() XV(a) er grunntermer? grunntermer av sort s? grunntermer av sort s? Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

98 Husk! Dere kan/bør nå gjøre Oppgavesett 1 Forelesning også på torsdag Peter Ölveczky (Universitetet i Oslo) Introduksjon januar / 50

INF 3230: Videregående kurs i formell modellering

INF 3230: Videregående kurs i formell modellering INF 3230: Videregående kurs i formell modellering Peter Ølveczky Universitetet i Oslo 9. mai 2012 Eksekverbar Formell Modellering Modellering: lage en modell av systemdesign før implementasjon Formell:

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 4. juni 2010 Tid for eksamen: 9.00 12.00 Oppgavesettet

Detaljer

INF 3230/4230 Forelesning 9: Omskrivningslogikk

INF 3230/4230 Forelesning 9: Omskrivningslogikk 27.3.2006 INF 3230 9 1 INF 3230/4230 Forelesning 9: Omskrivningslogikk Peter Ølveczky/Ingrid Yu Kapittel 5 og 6 Omskrivningslogikk Parallelle steg Formatering 27.3.2006 INF 3230 9 2 Midterm eksamen Midterm

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 4. april 2008 Tid for eksamen: 9.00 12.00 Oppgavesettet

Detaljer

Mulige Master-oppgaver hos Peter C. Ölveczky

Mulige Master-oppgaver hos Peter C. Ölveczky 11.1.2006 Masteroppgaver 1 Mulige Master-oppgaver hos Peter C. Ölveczky http://heim.ifi.uio.no/ peterol 11.1.2006 Masteroppgaver 2 Peter C. Ölveczky 1. amanuensis ved PMA-gruppen Email: peterol@ifi.uio.no

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230/4230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 18. mars 2005 Tid for eksamen: 13.30 16.30

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

AlgDat 12. Forelesning 2. Gunnar Misund

AlgDat 12. Forelesning 2. Gunnar Misund AlgDat 12 Forelesning 2 Forrige forelesning Følg med på hiof.no/algdat, ikke minst beskjedsida! Algdat: Fundamentalt, klassisk, morsomt,...krevende :) Pensum: Forelesningene, oppgavene (pluss deler av

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

Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt Siri Moe Jensen Inst. for informatikk, UiO

Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt Siri Moe Jensen Inst. for informatikk, UiO Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier 11. okt. 2011 Siri Moe Jensen Inst. for informatikk, UiO 1 Innhold Eksamen INF1000 Høst 2011: Oppgave 4-7 Tekstmanipulering Metoder med og uten

Detaljer

Semantisk Analyse del I

Semantisk Analyse del I Semantisk Analyse del I Attributtgrammatikker Kapittel 6.1-6.2 26.02.2013 1 Statisk semantisk analyse kapittel 6: Innhold Generelt om statisk semantisk analyse Attributt-grammatikker (kapittel 6.1-6.2)

Detaljer

Introduksjon til objektorientert programmering

Introduksjon til objektorientert programmering Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230/4230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 24. mars 2006 Tid for eksamen: 13.30 16.30

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

INF 3230/4230 Forelesning 4: Assosiativitet og kommutativitet; operasjonell semantikk

INF 3230/4230 Forelesning 4: Assosiativitet og kommutativitet; operasjonell semantikk 13.2.2006 INF 3230 4 1 INF 3230/4230 Forelesning 4: Assosiativitet og kommutativitet; operasjonell semantikk Peter Ølveczky Forelest av Ingrid C. Yu Innhold: attributter i Maude (særlig assoc og comm)

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 15. desember 2010 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider. Vedlegg: Tillatte hjelpemidler: INF2220

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

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program Oversikt INF1000 Uke 1 time 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning

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

MAT-INF 1100: Obligatorisk oppgave 1

MAT-INF 1100: Obligatorisk oppgave 1 8. september, 2005 MAT-INF 1100: Obligatorisk oppgave 1 Innleveringsfrist: 23/9-2005, kl. 14:30 Informasjon Den skriftlige besvarelsen skal leveres på ekspedisjonskontoret i 7. etg. i Niels Henrik Abels

Detaljer

Velkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel

Velkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel Velkommen til plenumsregning for MAT1030 MAT1030 Diskret matematikk Plenumsregning 1: Kapittel 1 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 17. januar 2008 Torsdager 10:15 12:00 Gjennomgang

Detaljer

Introduksjon til programmering og programmeringsspråk

Introduksjon til programmering og programmeringsspråk Introduksjon til programmering og programmeringsspråk Henrik Lieng Høgskolen i Oslo og Akershus https://code.org/ Veldig høy-nivå programmering med Scratch End-user programming Overtone, Tidal, etc., bygger

Detaljer

Innhold. INF1000 Høst Unified Modeling Language (UML) Unified Modeling Language (UML)

Innhold. INF1000 Høst Unified Modeling Language (UML) Unified Modeling Language (UML) Innhold Unified Modelling Language UML INF1000 Høst 2015 Uke 8: Mer objektorientert programmering Siri Moe Jensen En ny type for-løkke Organisering av mengder av objekter HashMap Valg av representasjon

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 Eksamensdag : Tirsdag 5. juni 2007 Tid for eksamen : 14.30-17.30 Oppgavesettet er på : 6 sider (pluss vedlegg) Vedlegg

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

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 1. desember 2010 Tid for eksamen: 14.00 18.00

Detaljer

AlgDat 10. Forelesning 2. Gunnar Misund

AlgDat 10. Forelesning 2. Gunnar Misund AlgDat 10 Forelesning 2 Oversikt Java repetisjon IDE eller teksteditor + kommandolinje? Java Collections and Generics Programvareutvikling En mengde mer eller mindre veldefinerte metoder (software engineering):

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

Anbefalt litteratur: Pensum-bøker: Forelesere: Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

Anbefalt litteratur: Pensum-bøker: Forelesere: Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon Forelesere: Velkommen til INF-1060 Introduksjon til operativsystemer og datakommunikasjon Pål Halvorsen (paalh@ifi.uio.no) Nettverk og Distribuerte systemer (ND) (ved Simula) Kjell Åge Bringsrud (kjellb@ifi.uio.no)

Detaljer

MAT-INF 1100: Obligatorisk oppgave 1

MAT-INF 1100: Obligatorisk oppgave 1 3. september, 2004 MAT-INF 1100: Obligatorisk oppgave 1 Innleveringsfrist: 17/9-2004, kl. 14:30 Informasjon Den skriftlige besvarelsen skal leveres på ekspedisjonskontoret i 7. etg. i Niels Henrik Abels

Detaljer

Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon Velkommen til INF-1060 Introduksjon til operativsystemer og datakommunikasjon 21.08.2007 INF1060 1 Forelesere: Pål Halvorsen (paalh@ifi.uio.no) Nettverk og Distribuerte systemer (ND) (ved Simula) Kjell

Detaljer

Innhold uke 10. Objektorientert programmering i Python. Oblig 7 og 8. IN1000 Seminar! IN1000 Høst 2018 uke 10 Siri Moe Jensen

Innhold uke 10. Objektorientert programmering i Python. Oblig 7 og 8. IN1000 Seminar! IN1000 Høst 2018 uke 10 Siri Moe Jensen Innhold uke 10 Hva bruker vi klasser til? Objektorientert programmering i Python IN1000 Høst 2018 uke 10 Siri Moe Jensen Noen sentrale datastrukturer for programmering lenkede lister trær grafer Eksempler:

Detaljer

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et eksempel Klasser

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 26: Trær Roger Antonsen Institutt for informatikk, Universitetet i Oslo 5. mai 2009 (Sist oppdatert: 2009-05-06 22:27) Forelesning 26 MAT1030 Diskret Matematikk 5.

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler

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

Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon Velkommen til INF-1060 Introduksjon til operativsystemer og datakommunikasjon 22.08.12 INF1060 1 Forelesere: Pål Halvorsen (paalh@ifi.uio.no) Nettverk og Distribuerte systemer (ND) (ved Simula) Tor Skeie

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

Introduksjon til programmering og programmeringsspråk. Henrik Lieng Høgskolen i Oslo og Akershus

Introduksjon til programmering og programmeringsspråk. Henrik Lieng Høgskolen i Oslo og Akershus Introduksjon til programmering og programmeringsspråk Henrik Lieng Høgskolen i Oslo og Akershus Kategorisering av programmeringsspråk? Deklarativ vs. imperativ Lav nivå vs. høy nivå Kompilert vs. tolket

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

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

Emnebeskrivelser for emner tatt ved Universitetet i Oslo. Presentasjon laget av Joakim Hjertås

Emnebeskrivelser for emner tatt ved Universitetet i Oslo. Presentasjon laget av Joakim Hjertås Emnebeskrivelser for emner tatt ved Universitetet i Oslo Presentasjon laget av Joakim Hjertås 10. mars 2005 Innhold INF4110 - Programmeringsspråk 2 INF4200 - Algoritmer og effektivitet 3 INF4330 - Problemløsning

Detaljer

MAT-INF 1100: Obligatorisk oppgave 1

MAT-INF 1100: Obligatorisk oppgave 1 13. september, 2018 MAT-INF 1100: Obligatorisk oppgave 1 Innleveringsfrist: 27/9-2018, kl. 14:30 i Devilry Obligatoriske oppgaver («obliger») er en sentral del av MAT-INF1100 og er utmerket trening i å

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Plenumsregning 1: Kapittel 1 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang

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

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når

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

Læringsmål og pensum. https://www.youtube.com/watch? v=nkiu9yen5nc

Læringsmål og pensum. https://www.youtube.com/watch? v=nkiu9yen5nc 1 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python Professor Alf Inge Wang 2 https://www.youtube.com/watch? v=nkiu9yen5nc 3 Læringsmål og pensum Mål Lære om

Detaljer

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays Oversikt C programmering 1 C programmering Introduksjon Kildekode Kompilering Hello world Hello world med argumenter 2 Funksjoner 3 Datatyper 4 Pekere og arrays 5 Kontrollstrukturer Lars Vidar Magnusson

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

Oversikt. Informatikk. INF1000: Grunnkurs i objektorientert programmering. Utenom INF1000 Informasjon & hjelp

Oversikt. Informatikk. INF1000: Grunnkurs i objektorientert programmering. Utenom INF1000 Informasjon & hjelp INF1000: Grunnkurs i objektorientert programmering Uke 0, høst 2014 Oversikt Informatikk - hva & hvorfor? Datasystemer, maskinvare, programmer Objektorientert programmering i INF1000 Programmeringsspråket

Detaljer

Norsk informatikkolympiade runde

Norsk informatikkolympiade runde Norsk informatikkolympiade 2017 2018 1. runde Sponset av Uke 46, 2017 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.

Detaljer

Innlevering 2b i INF2810, vår 2017

Innlevering 2b i INF2810, vår 2017 Innlevering 2b i INF2810, vår 2017 Dette er del to av den andre obligatoriske oppgaven i INF2810. Man kan oppnå 10 poeng for oppgavene i 2b, og man må ha minst 12 poeng tilsammen for 2a + 2b for å få godkjent.

Detaljer

Hvis Ole følger inf3170, så liker Ole logikk. Ole følger inf3170, og Ole følger ikke inf3170. Ole følger inf3170, eller Ole følger ikke inf3170.

Hvis Ole følger inf3170, så liker Ole logikk. Ole følger inf3170, og Ole følger ikke inf3170. Ole følger inf3170, eller Ole følger ikke inf3170. Forelesning 4: Repetisjon og førsteordens logikk Christian Mahesh Hansen - 12. februar 2007 1 Repetisjon Motivasjon Er utsagnene sanne? Hvis Ole følger inf3170, så liker Ole logikk. Ole følger inf3170,

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

Hjemmeeksamen 1 i INF3110/4110

Hjemmeeksamen 1 i INF3110/4110 Hjemmeeksamen i INF30/40 Innleveringsfrist: fredag 24. oktober kl. 500 Innlevering Hele besvarelsen skal leveres skriftlig på papir i IFI-ekspedisjonen innen fredag 24. oktober kl. 500. Merk besvarelsen

Detaljer

INF1800 Forelesning 17

INF1800 Forelesning 17 INF1800 Forelesning 17 Førsteordens logikk Roger Antonsen - 14. oktober 2008 (Sist oppdatert: 2008-10-14 16:29) Før vi begynner Repetisjon og kommentarer Vi skal nå kunne Utsagnslogikk: syntaks og semantikk

Detaljer

Fra krav til objektdesign

Fra krav til objektdesign Fra krav til objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer INF1050-ansvar-1 Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Hva skal systemet gjøre? UML: Bruksmønstermodeller

Detaljer

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

Detaljer

Velkommen! I dag. Viktige beskjeder. Studieadministrasjonen. IN Høst Siri Moe Jensen Geir Kjetil Sandve Henrik Hillestad

Velkommen! I dag. Viktige beskjeder. Studieadministrasjonen. IN Høst Siri Moe Jensen Geir Kjetil Sandve Henrik Hillestad IN1000 - Høst 2019 Siri Moe Jensen Geir Kjetil Sandve Henrik Hillestad Velkommen! I dag Første innføring i Python Hva fikk dere med dere og hvem er dere? (mentimeter)

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang 2 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python Professor Alf Inge Wang 3 https://www.youtube.com/watch? v=nkiu9yen5nc 4 Læringsmål og pensum Mål Lære om

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

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2017 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2017, forelesning

Detaljer

INF1010 våren januar. Objektorientering i Java

INF1010 våren januar. Objektorientering i Java INF1010 våren 2017 25. januar Objektorientering i Java Om enhetstesting (Repetisjon av INF1000 og lær deg Java for INF1001 og INF1100) Stein Gjessing Hva er objektorientert programmering? F.eks: En sort

Detaljer

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert. Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen

Detaljer

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell (ny versjon) Dagens forelesning. Fra krav til objektdesign

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell (ny versjon) Dagens forelesning. Fra krav til objektdesign Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Fra krav til objektdesign Hva skal systemet gjøre? UML: Bruksmønstermodeller o Objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 og IN 110 Algoritmer og datastrukturer Eksamensdag: 14. mai 1996 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.

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

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

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

Object interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007.

Object interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007. Object interaction Grunnleggende programmering i Java Monica Strand 3. september 2007 1 Innhold Til nå: Hva objekter er og hvordan de implementeres I klassedefinisjonene: klassevariable (fields), konstruktører

Detaljer

INF2810: Funksjonell Programmering. Trær og mengder

INF2810: Funksjonell Programmering. Trær og mengder INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Trær og mengder Erik Velldal Universitetet i Oslo 19. februar 2015 Tema Forrige uke Høyereordens prosedyrer lambda, let og lokale variabler

Detaljer

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet består

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

INF1800 LOGIKK OG BEREGNBARHET

INF1800 LOGIKK OG BEREGNBARHET INF1800 LOGIKK OG BEREGNBARHET FORELESNING 17: FØRSTEORDENS LOGIKK Roger Antonsen Institutt for informatikk Universitetet i Oslo 14. oktober 2008 (Sist oppdatert: 2008-10-14 16:29) Før vi begynner Repetisjon

Detaljer

Dagens plan. INF3170 Logikk. Syntaks: Utsagnslogiske formler. Motivasjon

Dagens plan. INF3170 Logikk. Syntaks: Utsagnslogiske formler. Motivasjon INF3170 Logikk Dagens plan Forelesning 4: og førsteordens logikk Christian Mahesh Hansen Institutt for informatikk, Universitetet i Oslo 1 2 12. februar 2007 3 Institutt for informatikk (UiO) INF3170 Logikk

Detaljer

Databaser fra et logikkperspektiv

Databaser fra et logikkperspektiv Databaser fra et logikkperspektiv Evgenij Thorstensen IFI, UiO Høst 2013 Evgenij Thorstensen (IFI, UiO) Databaser fra et logikkperspektiv Høst 2013 1 / 31 Outline 1 Logikk som verktøy 2 Relasjonsdatabaser

Detaljer

INF2810: Funksjonell Programmering. Dataabstraksjon og Trerekursjon

INF2810: Funksjonell Programmering. Dataabstraksjon og Trerekursjon INF2810: Funksjonell Programmering Dataabstraksjon og Trerekursjon Stephan Oepen & Erik Velldal Universitetet i Oslo 15. februar, 2013 Tema 2 Forrige uke Høyere-ordens prosedyrer: Prosedyrer som argumenter

Detaljer

En Maude-modell for sikker asynkron kommunikasjon i π-kalkylen

En Maude-modell for sikker asynkron kommunikasjon i π-kalkylen En Maude-modell for sikker asynkron kommunikasjon i π-kalkylen Henrik Dæhli og Joakim Hjertås 23. juni 2005 Plan Problemstilling Bakgrunn Maude sikkerhet π-kalkylen og varianter av denne en Maude-modell

Detaljer

MAT-INF 1100: Obligatorisk oppgave 1

MAT-INF 1100: Obligatorisk oppgave 1 22. september, 2016 MAT-INF 1100: Obligatorisk oppgave 1 Innleveringsfrist: 6/10-2016, kl. 14:30 i Devilry Obligatoriske oppgaver («obliger») er en sentral del av MAT-INF1100 og er utmerket trening i å

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

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

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

INF2810: Funksjonell Programmering. Muterbare data

INF2810: Funksjonell Programmering. Muterbare data INF2810: Funksjonell Programmering Muterbare data Stephan Oepen Universitetet i Oslo 15. mars 2016 Agenda Forrige uke Prosedyrebasert objektorientering Lokale tilstandsvariabler Innkapsling + set! Eksempel:

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 8. juni 2012 Tid for eksamen: 9.00 13.00 Oppgavesettet

Detaljer

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller. Dagens forelesning Java 13 Design av større programmer : fordeling av roller INF 101-13. mars 2003 Flere eksempler på bruk av objekter MVC-prinsippet MVC-prinsippet Flere eksempler på programmer med objekter

Detaljer

Forelesning 33. Repetisjon. Dag Normann mai Innledning. Kapittel 11

Forelesning 33. Repetisjon. Dag Normann mai Innledning. Kapittel 11 Forelesning 33 Repetisjon Dag Normann - 26. mai 2008 Innledning Onsdag 21/5 gjorde vi oss ferdige med det meste av den systematiske repetisjonen av MAT1030. Det som gjensto var kapitlene 11 om trær og

Detaljer

Kap 6.4: Typesjekking Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 19. og 23. mars Dagens tema: Typer og typesjekking

Kap 6.4: Typesjekking Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 19. og 23. mars Dagens tema: Typer og typesjekking Kap 6.4: Typesjekking Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 19. og 23. mars 2015 Dagens tema: Typer og typesjekking Hva er nå egentlig en «type» i et programmeringsspråk? Hvordan

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Lørdag 15. desember 2001, kl. 09.00-14.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler.

Detaljer

Reelle tall på datamaskin

Reelle tall på datamaskin Reelle tall på datamaskin Knut Mørken 5. september 2007 1 Innledning Tirsdag 4/9 var tema for forelesningen hvordan reelle tall representeres på datamaskin og noen konsekvenser av dette, særlig med tanke

Detaljer