Plan: Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) Funksjonelle språk. Innføring i ML. typer enkle funksjoner (Fortsetter med ML i to uker til)

Størrelse: px
Begynne med side:

Download "Plan: Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) Funksjonelle språk. Innføring i ML. typer enkle funksjoner (Fortsetter med ML i to uker til)"

Transkript

1 Plan: Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) Funksjonelle språk (Ghezzi&Jazayeri kap.7 frem til 7.4) Innføring i ML (Ghezzi&Jazayeri kap ML-komp.) typer enkle funksjoner (Fortsetter med ML i to uker til) Ark 1 av 21 Forelesning

2 Typer En (data-)type består av: en verdimengde tilhørende operasjoner for å lage, se på og endre slike verdier Eksempel: Type: boolean Verdimengde: {true, false} Operatorer: NOT, AND, OR... Programmeringsspråk har vanligvis en del predefinerte typer, samt mekanismer for å lage mer komplekse datatyper fra disse. Forelesning Ark 2 av 21

3 Spesielle TYPE-mekanismer predefinerte typer, ofte integer, real, character, string oppramstyper, eks. {mandag, tirsdag, onsdag,...} intervall-typer, f.eks. tallene fra 1 til 100 lister, sekvenser predefinert i LISP, ML tabeller, arrayer gjerne predefinert i imperative språk Forelesning Ark 3 av 21

4 Generelle TYPE-mekanismer produkt-typer med flere komponenter Pascal/Ada: record C/C++: structure Java/Simula: klasser union-typer gir flere alternativer Eksempel (i ML-syntaks): datatype boolean = true false; Pascal/Ada: variant record C/C++: union Java/Simula: super-/subklasser rekursive typer inneholder noe av sin egen type Eksempel: liste av heltall class Node { int verdi; Node neste; } Node liste; parametriserte typer muliggjør datastrukturer over vilkårlige element -typer Eksempel: en generell liste Forelesning Ark 4 av 21

5 Abstrakte datatyper Innkapsling: Kan definere verdimengden og de tilhørende funksjonene i én modul. Beskyttelse: Skjule visse funksjoner og variable i en modul slik at de ikke kan brukes utenfor modulen. Eksempel: Rasjonale tall som data-type: Type RAT = modulebegin # Verdimengde/datastruktur: t, n : Int # Tilhørende funksjoner: FUNC mult(a,b:rat):rat == RETURN((a.t*b.t),(a.n*b.n))... endmodule RAT Forelesning Ark 5 av 21

6 Noen fordeler ved typede språk Statisk sjekking av variabelbruk INT BOOL X + Y Statisk binding av overlastede funksjoner og prosedyrer. Skjuling av representasjon (abstrakte data typer) Programmeringsstil (lesbarhet) Modifiserbarhet Forelesning Ark 6 av 21

7 Funksjonelle (applikative) språk Motivasjon: Matematisk tilnærming til problemene uten tanke på maskinens oppbygning. Abstraksjonsnivå tilpasset programmereren, ikke hardware. Eksempel: Euclids algoritme for å finne største felles divisor Algoritmen: gcd(0, n) = n gcd(m, n) = gcd(n mod m, m) for m > 0 IJava: int gcd(int m, int n) { int prev; while(m!=0){prev=m;m=n%m;n=prev;} return n; } IML: fun gcd(m, n) = ifm=0thenn else gcd(n mod m, m); Forelesning Ark 7 av 21

8 Rent funksjonelle språk Rent funksjonelle språk har ikke tilordning! Variable kan ikke oppdateres. Kan definere: konstanter, funksjoner, typer (hvis typet språk) og kan skrive uttrykk! ML har typer, men ikke ren Lisp og Prolog. Forelesning Ark 8 av 21

9 imperativt applikativt valg if-setning if-uttrykk gjentakelse løkke rekursjon sekv. sammensetning ; funksjons-sammensetning Eksempel: den imperative koden x := f (x, y); x := g(x, y); blir funksjonelt seende ut som: g( f (x, y), y) Forelesning Ark 9 av 21

10 Rent funksjonelle språk Typiske fordeler enkel, elegant kode (se foil 7) ingen side-effekter aliasing ikke problem kan lett interpreteres Typiske ulemper effektivitet mister kontroll med tid og rom input/output (ML gjør dette imperativt) Forelesning Ark 10 av 21

11 Introduksjon til standard ML Pensum: Bjørn Kristoffersen: Funksjonell Programmering i Standard ML, Kompendium 61 Standard ML er et interpreterende språk. Ml-interpreteren startes fra Unix ved kommandoen sml: > sml Standard ML of New Jersey, Version , January 30, 1998 [CM; autoload enabled] - - angir at systemet er klart til å ta imot kommandoer. Husk: Alle uttrykk og deklarasjoner skal avsluttes med ; Kommentarer skrives ved (*... *) CTRL-D avslutter systemet. Forelesning Ark 11 av 21

12 Enkle beregninger -2+2; val it = 4 : int - val verdi = 2+3*4; val verdi = 14 : int Svaret legges altså i it hvis ikke annet spesifiseres. Deklarasjon av funksjoner fun <navn> (<parameterliste>) = <uttrykk>; - fun fak(n:int) = if n < 2 then 1 else n * fak(n-1); valfak=fn:int->int Konstanter - val pi = ; val pi = : real - fun areal (r:real) = pi * r * r; val areal = fn : real -> real - areal(3.0); val it = : real Hva hvis vi redeklarerer pi? - val pi = 1.0; valpi=1.0:real - areal(3.0); val it = : real (* NB! *) Forelesning Ark 12 av 21

13 Enkel ML Predefinert: int med:= <*+-div mod (unær minus) realmed:=<*+-/ bool med: = true, false, andalso, orelse, not string med: = < Hei ˆ (konkatenering) lister med: = (konkatenering) [] [1,2,3] Eksempler: "ole" ˆ "mann" = "olemann" (konkatenering av strenger) [1,2]@[3] = [1,2,3] (konkatenering av lister) 1:: [2,3] = [1,2,3] (hekt på først i liste) [] = nil (tom liste) [3] = 3::nil (liste med ett element) 1::2::3::nil = [1,2,3] [true,false] (liste av boolske) ["ole","jens"] (liste av strenger) [[1,2,3],[2,3]] (liste av lister) Forelesning Ark 13 av 21

14 Ingen overlasting Merk: Ingen overlasting, dvs. ny deklarasjon med samme navn medfører at siste deklarasjon gjelder. NB! Denne nye deklarasjonen gjelder kun for etterfølgende bruk (på samme måte som pi i eksempelet foil 12). Eksempel: - fun beregn(x:int) = 2 * x; val beregn = fn : int -> int - fun dobbel (x:int) = beregn(x); val dobbel = fn : int -> int - beregn(5); val it = 10 : int - dobbel(5); val it = 10 : int - fun beregn(x:int) = 3 * x; (* redeklarasjon *) val beregn = fn : int -> int - beregn(5); val it = 15 : int - dobbel(5); val it = 10 : int (* NB! *) Forelesning Ark 14 av 21

15 Smart type-analyse Følgende deklarasjoner forstås likt av ML: fun dobbel(x:int):int = x+x; fun dobbel(x:int) = x+x; fun dobbel(x):int = x+x; I alle tilfellene kvitterer ML med val dobbel = fn : int -> int ML kan dedusere typen av funksjonsverdien og/eller (utypede) parametre, så sant en éntydig løsning finnes. -funid(x)=x; valid=fn: a-> a Her står a for en vilkårlig type. Dvs. funksjonen er polymorf, den kan brukes for alle typer. Forelesning Ark 15 av 21

16 Type-deklarasjoner Deklarasjon av en type med navn T uten parametre: type/datatype T = <type-uttrykk>; Deklarasjon av en type med navn T og med parametre: type/datatype <type-parametre> T = <type-uttrykk>; Eksempel: type tall = int; type talliste = tall list; Merk: Navnet på en type-parameter må starte med en apostrof. Forelesning Ark 16 av 21

17 Produkt-typer med navn-gitte komponenter - type Person = {navn:string, alder:int}; type Person = {alder:int, navn:string} - val Ole = {navn= Ole, alder= 25}; val Ole = {alder=25,navn="ole"} : {alder:int, navn:string} - #navn Ole; val it = "Ole" : string - #alder Ole; val it = 25 : int med navn-løse komponenter - type Person = string * int; type Person = string * int - val Ole = ( Ole, 25); val Ole = ( Ole, 25); -#1Ole; val it = "Ole" : string -#2Ole; val it = 25 : int; Tomt produkt: unit minste produkt: type unit = {} Denne typen er predefinert, og har bare én mulig verdi, nemlig () Kan også skrive denne verdien som {} Forelesning Ark 17 av 21

18 Union-typer i ML: datatyper - datatype PData = navn of string alder of int; datatype PData = alder of int navn of string - val n = navn( Ole ); val n = navn "Ole" : PData - val a = alder(25); val a = alder 25 : PData Både n og a er lovlige, men ulike, verdier av typen PData. Ved case-uttrykk kan man analysere PData-verdier: case x of navn(s) =>...s... alder(i) =>...i... der x er et uttrykk av type PData. Forelesning Ark 18 av 21

19 Konstanter som alternativer Et alternativ kan være en konstant. Eksempel: datatype Dag = mandag tirsdag onsdag torsdag fredag lordag sondag; fun ukedag(d:dag):bool= case d of lordag => false sondag => false _ => true; Eksempel: datatype Data = tall of int no; tall(5); no; fun dobbel(x:data):data = case x of tall(i) => tall(i+i) no => no; Forelesning Ark 19 av 21

20 Flere eksempler type HogV = {hoyde: int, vekt: int}; datatype HelV = hoyde of int vekt of int; fun storhogv(x:hogv) = #hoyde x > 180 orelse #vekt x > 80; fun storhelv(x:helv) = case x of hoyde(i) => i > 180 vekt(i) => i > 80; storhelv(vekt(90)); (gir true) storhelv(hoyde(90)); (gir false) storhogv({vekt=90,hoyde=90}); (gir true) Forelesning Ark 20 av 21

21 Rekursive Typer datatype T == T... Eksempel: liste av tall datatype TallListe = tom ikketom of { forste:int * rest:tallliste}; ikketom({forste=1,rest=ikketom({forste=2,rest=ikketom ({forste=3,rest=tom}) }) }); det samme, uten komponent-navn datatype TallListe = tom ikketom of int * TallListe; ikketom(1,ikketom(2,ikketom(3,tom))) Men lister er også predefinert i ML: Kan da skrive listen av 1, 2, 3 som [1, 2, 3] Forelesning Ark 21 av 21

Plan: Funksjonelle språk (Ghezzi&Jazayeri kap.7 frem til 7.4) IN 211 Programmeringsspråk

Plan: Funksjonelle språk (Ghezzi&Jazayeri kap.7 frem til 7.4) IN 211 Programmeringsspråk Plan: Funksjonelle språk (Ghezzi&Jazayeri kap.7 frem til 7.4) Innføring i ML: konstanter, enkle funksjoner og typer (Ghezzi&Jazayeri kap. 7.4.3 + ML-komp.) (Fortsetter med ML neste uke) predefinerte typer

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

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

Dagens tema. Funksjonelle språk Fortsetter med ML: Typer Unntak Introduksjon til høyere-ordens funksjoner. ML avsluttes etter planen neste uke.

Dagens tema. Funksjonelle språk Fortsetter med ML: Typer Unntak Introduksjon til høyere-ordens funksjoner. ML avsluttes etter planen neste uke. Dagens tema Funksjonelle språk Fortsetter med ML: Typer Unntak Introduksjon til høyere-ordens funksjoner ML avsluttes etter planen neste uke. Ark 1 av 18 Forelesning 21.10.2002 Funksjonelle (applikative)

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

Fortsetter med ML: Repetisjon av lister Typer Unntak Moduler og abstrakte datatyper Introduksjon til høyere-ordens funksjoner

Fortsetter med ML: Repetisjon av lister Typer Unntak Moduler og abstrakte datatyper Introduksjon til høyere-ordens funksjoner Dagens tema Fortsetter med ML: Repetisjon av lister Typer Unntak Moduler og abstrakte datatyper Introduksjon til høyere-ordens funksjoner ML avsluttes etter planen neste uke. Ark 1 av 21 Forelesning 03.09.2001

Detaljer

INF3110 Programmeringsspråk. Dagens tema

INF3110 Programmeringsspråk. Dagens tema Dagens tema Innføring i ML - del II (Kapittel 7.4.3 & ML-kompendiet.) Oppvarming og uttøyning Smart typeanalyse Evalueringsmekanismen i ML Typedeklarasjoner (produkt-, union-, rekursive typer... ) 1/18

Detaljer

1-0::[1,2]; 2 - [3,4]; 3 - [1,2] :: [3,4]; 4-1 :: 2 :: 3 :: nil; 5 - "INF" ^ "3110" ^ " er moro"; 6 - rev [1,2,3];

1-0::[1,2]; 2 - [3,4]; 3 - [1,2] :: [3,4]; 4-1 :: 2 :: 3 :: nil; 5 - INF ^ 3110 ^  er moro; 6 - rev [1,2,3]; Dagens tema Innføring i ML - del II (Kapittel 7.4. & ML-kompendiet.) Oppvarming og uttøyning Smart typeanalyse Evalueringsmekanismen i ML Typedeklarasjoner (produkt-, union-, rekursive typer... ) Oppvarming

Detaljer

Plan. Fortsetter med ML: lister og rekursive typer/funksjoner unntak let-uttrykk moduler og abstrakte datatyper høyere-ordens funksjoner

Plan. Fortsetter med ML: lister og rekursive typer/funksjoner unntak let-uttrykk moduler og abstrakte datatyper høyere-ordens funksjoner Plan Fortsetter med ML: lister og rekursive typer/funksjoner unntak let-uttrykk moduler og abstrakte datatyper høyere-ordens funksjoner Ark 1 av 19 Forelesning 25.10.1999 Uendelig datatype i ML - datatype

Detaljer

Variable Man kan bruke variable i ML. ML (kap 5 og 6) Nye datatyper INF3110/4110 INF3110/4110 INF3110/4110 INF3110/4110. Variable i ML.

Variable Man kan bruke variable i ML. ML (kap 5 og 6) Nye datatyper INF3110/4110 INF3110/4110 INF3110/4110 INF3110/4110. Variable i ML. ML (kap 5 og 6) Variable i ML Nye datatyper Currying Avanserte listeoperatorer Typeanalyse Variable Man kan bruke variable i ML - val = ref 1; val = ref 1 : int ref - := 3*(!)+5; val it = () : unit -!;

Detaljer

Dagens tema Innføring i ML - del IV

Dagens tema Innføring i ML - del IV Dagens tema Innføring i ML - del IV Mønstergjenkjenning Litt om funksjoner & likhetstyper Anonyme funksjoner Begrenset skop - let Funksjonsrom og currierte funksjoner Litt av hvert - greit å ta med seg

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

1/28. Forelesning Forelesning / fun f (_,0) = true. 2 f(0,_)=true. 3 f_ =false; 4 val f = fn : int * int -> bool

1/28. Forelesning Forelesning / fun f (_,0) = true. 2 f(0,_)=true. 3 f_ =false; 4 val f = fn : int * int -> bool Dagens tema Innføring i ML - del IV Mønstergjenkjenning Litt om funksjoner & likhetstyper Anonyme funksjoner Begrenset skop - let Litt av hvert - greit å ta med seg Avsluttende kommentarer - spørsmål?

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

ML (kap 5) INF3110/4110. Bakgrunn Litt historikk. Funksjonelle språk (kap 4.4) Bakgrunnen for ML. Programmeringsspråket ML Hvordan kjøre ML-programmer

ML (kap 5) INF3110/4110. Bakgrunn Litt historikk. Funksjonelle språk (kap 4.4) Bakgrunnen for ML. Programmeringsspråket ML Hvordan kjøre ML-programmer ML (kap 5) Bakgrunn Litt historikk Funksjonelle språk (kap 4.4) Bakgrunnen for ML Programmeringsspråket ML Hvordan kjøre ML-programmer Enkle uttrykk Deklarasjoner Funksjoner Datatyper Mønstre Dag Langmyhr,Ifi,UiO:

Detaljer

Semantisk Analyse del III

Semantisk Analyse del III Semantisk Analyse del III Typesjekking Kapittel 6.4 08.03.2013 1 Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem

Detaljer

Funksjoner: Kun faste funksjoner. Ikke rekursive kall. Funksjonelle språk (kap 4.4) Bakgrunnen for ML

Funksjoner: Kun faste funksjoner. Ikke rekursive kall. Funksjonelle språk (kap 4.4) Bakgrunnen for ML 1. generasjons språk Data var statisk: alle variable eksisterte under hele kjøringen. ML (kap 5) Bakgrunn Litt historikk Eksempler: Fortran, Cobol, Basic. Funksjoner: Kun faste funksjoner. Ikke rekursive

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

Plan. Fortsetter med ML: lister og rekursive typer/funksjoner unntak let-uttrykk moduler og abstrakte datatyper høyere-ordens funksjoner

Plan. Fortsetter med ML: lister og rekursive typer/funksjoner unntak let-uttrykk moduler og abstrakte datatyper høyere-ordens funksjoner Plan Fortsetter med ML: lister og rekursive typer/funksjoner unntak let-uttrykk moduler og abstrakte datatyper høyere-ordens funksjoner Ark 1 av 20 Funksjoner over lister Typisk mønster for funksjoner

Detaljer

Datatyper og typesjekking

Datatyper og typesjekking Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem i kompilatoren? Gjennomgang av noen typer Grunntyper Type-konstruktører

Detaljer

Datatyper og typesjekking

Datatyper og typesjekking Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem i kompilatoren? Gjennomgang av noen typer Grunntyper Type-konstruktører

Detaljer

Datatyper og typesjekking

Datatyper og typesjekking Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem i kompilatoren? Gjennomgang av noen typer Grunntyper Type-konstruktører

Detaljer

Programmeringsspråket C

Programmeringsspråket C Programmeringsspråket C Bakgrunn Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI standard i 1988; omtrent alle følger

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

INF Repetisjon: Hvordan bygge treet og analysere? 8. september Typisk situasjon. De problematiske syntaks-diagrammene

INF Repetisjon: Hvordan bygge treet og analysere? 8. september Typisk situasjon. De problematiske syntaks-diagrammene Dagens tema: INF 2100 8. september 2004 Mer om strukturen i treet og hvordan bygge det Testing av at navn er deklarert og brukt riktig Arbeid i gruppene neste uke: Oppgaver relevant for dette stadiet i

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

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF3110/4110 Programmeringsspråk Eksamensdag: 2. desember 2003 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 7 sider. Vedlegg:

Detaljer

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

ML (kap 5 og 6) INF3110/4110. Variable i ML. Nye datatyper. Currying. Avanserte listeoperatorer. Typeanalyse

ML (kap 5 og 6) INF3110/4110. Variable i ML. Nye datatyper. Currying. Avanserte listeoperatorer. Typeanalyse ML (kap 5 og 6) Variable i ML Nye datatyper Currying Avanserte listeoperatorer Typeanalyse Dag Langmyhr,Ifi,UiO: Forelesning 25. oktober 2004 Ark 1 av 22 Variable Man kan bruke variable i ML - val x =

Detaljer

INF2810: Funksjonell Programmering. Lokale variabler. Og trær.

INF2810: Funksjonell Programmering. Lokale variabler. Og trær. INF2810: Funksjonell Programmering Lokale variabler. Og trær. Erik Velldal Universitetet i Oslo 11. september 2019 Tema forrige uke 2 Lister som datastruktur quote Rekursjon på lister Høyereordens prosedyrer

Detaljer

Kapittel 1 En oversikt over C-språket

Kapittel 1 En oversikt over C-språket Kapittel 1 En oversikt over C-språket RR 2015 1 Skal se på hvordan man En innføring i C Skriver data til skjermen Lese data fra tastaturet Benytter de grunnleggende datatypene Foretar enkle matematiske

Detaljer

INF2810: Funksjonell Programmering. Lokale variabler. Og trær.

INF2810: Funksjonell Programmering. Lokale variabler. Og trær. INF2810: Funksjonell Programmering Lokale variabler. Og trær. Erik Velldal Universitetet i Oslo 11. september 2019 Tema forrige uke 2 Lister som datastruktur quote Rekursjon på lister Høyereordens prosedyrer

Detaljer

Datatyper og typesjekking

Datatyper og typesjekking Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem i kompilatoren? Gjennomgang av noen typer Grunntyper Type-konstruktører

Detaljer

Øvingsforelesning 1 Python (TDT4110)

Øvingsforelesning 1 Python (TDT4110) Øvingsforelesning 1 Python (TDT4110) Introduksjon, Kalkulasjoner Ole-Magnus Pedersen Oversikt Praktisk Info Repetisjon fra sist Oppgaver for øving 2 2 Praktisk Info Last opp øvinger på Blackboard før godkjenning

Detaljer

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04 INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a

Detaljer

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04 INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a

Detaljer

IN 211 programmeringsspråk H 99

IN 211 programmeringsspråk H 99 IN 211 programmeringsspråk H 99 Forelesere: Dag Langmyhr (epost: dag@ifi.uio.no) Olaf Owe (epost: olaf@ifi.uio.no) Gruppelærere: Ragnhild Kobro (epost: ragnhilk) Igor Rafienko (epost: igorr) Sigurd Weisteen

Detaljer

Forelesere. Velkommen til programmeringsspråkenes verden IN211. Praktiske opplysninger. Faglige forutsetninger. Ragnhild Kobro Runde

Forelesere. Velkommen til programmeringsspråkenes verden IN211. Praktiske opplysninger. Faglige forutsetninger. Ragnhild Kobro Runde Forelesere Velkommen til programmeringsspråkenes verden IN211 Ragnhild Kobro Runde e-post: ragnhilk@ifi.uio.no Kontor: 3345 Gerhard Skagestein e-post: gerhard@ifi.uio.no Kontor: 3402 IN211-Innledning-1

Detaljer

156C. Algoritmer og maskinspråk. IT1101 Informatikk basisfag. Maskinspråk: det maskinen forstår. Assembler / assemblerspråk

156C. Algoritmer og maskinspråk. IT1101 Informatikk basisfag. Maskinspråk: det maskinen forstår. Assembler / assemblerspråk IT1101 Informatikk basisfag I dag Programmeringsspråk Problemer med maskinspråk I dag: 5.1-5.3 Fra lavnivå til høynivå programmeringsspråk - utvikling Kompilator / tolker Programmeringsparadigmer Tradisjonelle

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF3110/4110 Programmeringsspråk Eksamensdag: 3. desember 2004 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 8 sider. Vedlegg:

Detaljer

Dagens tema: Sjekking

Dagens tema: Sjekking Dagens tema Dagens tema: Sjekking Navnebinding (obligatorisk oppgave 3) Biblioteket Logging Riktig bruk av navn (frivillig) Typesjekking (frivillig) Hele prosjektet Strukturen til kompilatoren vår f.pas

Detaljer

Plan. funksjoner som funksjonsverdi funksjoner som datastruktur. funksjoner som parametre. Høyere-ordens funksjoner. ufullstendige kall.

Plan. funksjoner som funksjonsverdi funksjoner som datastruktur. funksjoner som parametre. Høyere-ordens funksjoner. ufullstendige kall. Høyere-ordens funksjoner funksjoner som parametre funksjoner som funksjonsverdi funksjoner som datastruktur ufullstendige kall Curry-ing Plan 1 Generelle liste-funksjoner fun oppdat(f,l) = case l of nil

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 2. juni 2010 Tid for eksamen : 14.30-17.30 Oppgavesettet er på : 5 sider (pluss

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

Dagens tema. Innføring i ML - del III (Kapittel & ML-kompendiet.) Unntak Abstrakte datatyper i ML Høyere-ordens funksjoner

Dagens tema. Innføring i ML - del III (Kapittel & ML-kompendiet.) Unntak Abstrakte datatyper i ML Høyere-ordens funksjoner Dagens tema Innføring i ML - del III (Kapittel 7.4.3 & ML-kompendiet.) Unntak Abstrakte datatyper i ML Høyere-ordens funksjoner 1/14 Forelesning 4 17.9.2003 Unntak exception deklarerer et unntak exception

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

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

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

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

Repetisjon: Statiske språk uten rekursive metoder (C1 og C2) Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)

Repetisjon: Statiske språk uten rekursive metoder (C1 og C2) Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7) Dagens tema Kjøresystemer (Ghezzi&Jazayeri.6,.7) Repetisjon Språk med rekursjon (C3) og blokker (C4) Statisk link Dynamisk allokering (C5) Parameteroverføring 1/5 Repetisjon: Statiske språk uten rekursive

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

Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)

Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7) Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7) Repetisjon Språk med rekursjon (C3) og blokker (C4) Statisk link Dynamisk allokering (C5) Parameteroverføring 1/25 Forelesning 11 5.11.2003 Repetisjon:

Detaljer

TDT Øvingsforelesning 1. Tuesday, August 28, 12

TDT Øvingsforelesning 1. Tuesday, August 28, 12 TDT 4165 Øvingsforelesning 1 Øvingsforelesningene Eksempelbaserte Sikter på å være på et snillere nivå enn øvingene og forelesningene Interaktive - spørsmål og dialog oppfordres Matnyttige- vil ta for

Detaljer

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

INF1000 (Uke 5) Mer om løkker, arrayer og metoder INF1000 (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Praktisk informasjon Når disse

Detaljer

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Løkker TDT4110 IT Grunnkurs Professor Guttorm Sindre Denne uka Vi trenger å Støttes av Hente data fra bruker Vise data til bruker Lagre data i minnet for bruk videre i programmet Fra tastatur:

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

Kap.4 del I Top Down Parsering INF5110 v2005. Arne Maus Ifi, UiO

Kap.4 del I Top Down Parsering INF5110 v2005. Arne Maus Ifi, UiO Kap.4 del I Top Down Parsering INF5110 v2005 Arne Maus Ifi, UiO Innhold Motivering Boka gir først parsering uten First/Follow-mengder og så innfører dem. Vi tar teorien først First og Follow-mengder Fjerning

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

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

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

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

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 Noen oppgaver til kap. 8

INF Noen oppgaver til kap. 8 INF5110 2015 Noen oppgaver til kap. 8 Gjennomgås 28. april, 2015 Stein Krogdahl 1 Oppgave 8.1.c (fra boka) Lag for hånd TA-kode for følgende uttrykk: a * b + a * b * c Du skal ikke prøve å optimalisere

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 Terje Rydland - IDI/NTNU 2 if (be): else (not_to_be): 3 Læringsmål og pensum

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

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap.

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 Terje Rydland - IDI/NTNU 2 if (be): else (not_to_be): 3 Læringsmål og pensum

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

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu. 1 TDT4105 Informasjonsteknologi, grunnkurs Introduksjon til programmering i Matlab Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.no 2 Frist for øving 1: Fredag 11. Sept. Noen oppstartsproblemer

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

Del 3: Evaluere uttrykk

Del 3: Evaluere uttrykk Del 3: Evaluere uttrykk Hva skal vi gjøre? Hvordan lagre Asp-verdier Hvilke operasjoner må jeg implementere? Er operasjonen lovlig? Utføre operasjonen Strukturen til interpreten vår f.asp 3&4 Interpret

Detaljer

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

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

Detaljer

TDT4110 IT Grunnkurs Høst 2016

TDT4110 IT Grunnkurs Høst 2016 TDT4110 IT Grunnkurs Høst 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til Auditorieøving 1 1 Teori 1. Hvilket tall kan IKKE lagres

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

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

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

Generiske mekanismer i statisk typede programmeringsspråk

Generiske mekanismer i statisk typede programmeringsspråk Generiske mekanismer i statisk typede programmeringsspråk Dette stoffet er Pensum, og det er bare beskrevet her Mye her er nok kjent stoff for mange INF5110 7. mai 2013 Stein Krogdahl 1 Hvordan kunne skrive

Detaljer

Del 1 En oversikt over C-programmering

Del 1 En oversikt over C-programmering Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 211 Programmeringsspråk Eksamensdag: 4. desember 2002 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 10 sider. Vedlegg: Tillatte

Detaljer

Kap. 4: Ovenfra-ned (top-down) parsering

Kap. 4: Ovenfra-ned (top-down) parsering Kap. 4: Ovenfra-ned (top-down) parsering Dette bør leses om igjen etter kapittelet: First og Follow-mengder Boka tar det et stykke uti kap 4, vi tok det først (forrige foilbunke) LL(1)-parsering og boka

Detaljer

Løsningsforslag til eksamen i IN 211 høsten 2002

Løsningsforslag til eksamen i IN 211 høsten 2002 Løsningsforslag til eksamen i IN 211 høsten 2002 Ragnhild Kobro Runde og Gerhard Skagestein 4. desember 2002 Oppgave 1: Kjøresystemer 1a: Statisk skop Print-setningen vil skrive ut 2, da det i C er main

Detaljer

Plan. funksjoner som funksjonsverdi funksjoner som datastruktur. funksjoner som parametre. Høyere-ordens funksjoner. ufullstendige kall.

Plan. funksjoner som funksjonsverdi funksjoner som datastruktur. funksjoner som parametre. Høyere-ordens funksjoner. ufullstendige kall. Høyere-ordens ksjoner ksjoner som parametre ksjoner som ksjonsverdi ksjoner som datastruktur ufullstendige kall Curry-ing Plan 1 Generelle liste-ksjoner 2 oppdat(f,l) = case l of nil => nil x::l' => f(x)::

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

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

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

Python: Valg og betingelser. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Python: Valg og betingelser. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Valg og betingelser TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål Kunne forstå og bruke if-setninger sammenlikning av strenger nøstede beslutningsstrukturer betingelser

Detaljer

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl. 09.00 13.

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl. 09.00 13. BOKMÅL Side 1 av 5 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap KONTERINGSEKSAMEN

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab 1 Kunnskap for en bedre verden TDT4105 Informasjonsteknologi, grunnkurs Introduksjon til programmering i Matlab Amanuensis Terje Rydland Kontor: ITV-021 i IT-bygget vest (Gløshaugen) Epost: terjery@idi.ntnu.no

Detaljer

Rekursiv programmering

Rekursiv programmering Rekursiv programmering Babushka-dukker En russisk Babushkadukke er en sekvens av like dukker inne i hverandre, som kan åpnes Hver gang en dukke åpnes er det en mindre utgave av dukken inni, inntil man

Detaljer

TDT4110 IT Grunnkurs Høst 2016

TDT4110 IT Grunnkurs Høst 2016 TDT4110 IT Grunnkurs Høst 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Auditorieøving 1 Vennligst fyll ut følgende informasjon i blokkbokstaver

Detaljer

Læringsmål og pensum. if (be): else (not_to_be):

Læringsmål og pensum. if (be): else (not_to_be): 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk - 3rd edition: Kapittel 3 Professor Alf Inge Wang 2 if (be): else (not_to_be): 3 Læringsmål og pensum Mål Lære å bruke og

Detaljer

Python: Rekursjon (og programmering av algoritmer) Python-bok: Kapittel 12 + teoribok om Algoritmer

Python: Rekursjon (og programmering av algoritmer) Python-bok: Kapittel 12 + teoribok om Algoritmer Python: Rekursjon (og programmering av algoritmer) Python-bok: Kapittel 12 + teoribok om Algoritmer TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål Forstå, og kunne bruke, algoritmer

Detaljer

MED SVARFORSLAG UNIVERSITETET I OSLO

MED SVARFORSLAG UNIVERSITETET I OSLO Eksamen i : MED SVARFORSLAG UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 6. juni 2012 Tid for eksamen : 14.30-18.30 Oppgavesettet er

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

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 Oppgave 1.1 MAT1030 Diskret matematikk Plenumsregning 2: Ukeoppgaver fra kapittel 1 & 2 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 24. januar 2008 Modifiser algoritmen fra 1.2.1 slik at

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 11. juni 2004 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 8

Detaljer