Sista delen av kursen
|
|
- Sven-Erik Sundberg
- för 6 år sedan
- Visningar:
Transkript
1 Sista delen av kursen handlar om hur program, delprogram och datatyper deklareras och vad det man åstadkommit egentligen betyder. Innehåll Syntaktisk (hur ser det ut) och semantisk (vad betyder det) beskrivning Paradigm (syn- och tankesätt och dess konsekvenser) Namn, variabler, värden, typer Bindningar och omgivningar Funktion- och procedurabstraktion Inkapsling Typsystem - monomorfism, något om polymorfism, subtypning, typkonvertering Villkorlig bearbetning - något om hopp och undantagshantering DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
2 Programspråkslingvistik Skiljer sig från lingvistik för naturliga(?) språk genom Enklare grammatik (kontextfri) Begränsat antal språkelement Entydig tolkning av satser Mindre redundans Mindre uttrycksfulla Båda har syntax (vilka satser är möjliga) och semantik (vad betyder en sats). Syntaxen beskrivs med syntaxdiagram eller BNF (EBNF). Semantiken kan beskrivas matematiskt, men beskrivs oftast ungefärligt med hjälp av exempel. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
3 Ett programspråk Ett programspråk är en notation för abstrakt beskrivning av algoritmer i en viss paradigm. En paradigm är ett sätt att tänka och varje programspråk understödjer i allmänhet en paradigm (imperativ programmering, funktionell programmering, logikprogrammering, objektorienterad programmering). Varje programspråk är uppbyggt kring ett antal begrepp som dataabstraktion programabstraktion omgivning typning tillstånd rekursion iteration DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
4 De begrepp som ingår varierar från språk till språk, mest beroende på paradigm, men ett begrepp kan ingå i flera olika språk baserade på olika paradigm. Terminologin är hämtad från ett stort antal andra discipliner och begreppskollisioner uppstår mellan olika paradigm. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
5 För att ett programspråk skall vara användbart måste det uppfylla några grundläggande krav. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
6 För att ett programspråk skall vara användbart måste det uppfylla några grundläggande krav. Det skall vara universellt alla problem som kan lösas med hjälp av dator skall kunna lösas med språket DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
7 För att ett programspråk skall vara användbart måste det uppfylla några grundläggande krav. Det skall vara universellt alla problem som kan lösas med hjälp av dator skall kunna lösas med språket naturligt det skall vara rimligt begripligt DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
8 För att ett programspråk skall vara användbart måste det uppfylla några grundläggande krav. Det skall vara universellt alla problem som kan lösas med hjälp av dator skall kunna lösas med språket naturligt det skall vara rimligt begripligt implementerbart det skall gå att realisera språket på en dator så att enligt språket korrekta program kan exekveras DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
9 För att ett programspråk skall vara användbart måste det uppfylla några grundläggande krav. Det skall vara universellt alla problem som kan lösas med hjälp av dator skall kunna lösas med språket naturligt det skall vara rimligt begripligt implementerbart det skall gå att realisera språket på en dator så att enligt språket korrekta program kan exekveras effektivt det skall vara rimligt effektivt i förhållande till andra språk (??) DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
10 För att ett programspråk skall vara användbart måste det uppfylla några grundläggande krav. Det skall vara universellt alla problem som kan lösas med hjälp av dator skall kunna lösas med språket naturligt det skall vara rimligt begripligt implementerbart det skall gå att realisera språket på en dator så att enligt språket korrekta program kan exekveras effektivt det skall vara rimligt effektivt i förhållande till andra språk (??) konsekvent det skall inte understödja flera paradgim (en huvudparadigm, helst en enda) DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
11 Universalitet och implementerbarhet är inte svåra att uppnå. Naturlighet och konsekvens är sällan väl genomfört. Effektivitetsaspekten är tillfredsställd i olika avseenden (för olika typer av tillämpningar) i olika språk. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
12 Assembler: start: move 1, reg1 move n, reg0 loop: jmpz exit mul reg0, reg1, reg1 decr reg0 jmp loop exit: stop DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
13 Assembler: start: move 1, reg1 move n, reg0 loop: jmpz exit mul reg0, reg1, reg1 decr reg0 jmp loop exit: stop Scheme: (define (fac n) (if (= n 0) 1 (* n (fac (- n 1))))) DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
14 ML: fun fac n = if n = 0 then 1 else n * fac (n - 1) DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
15 ML: fun fac n = if n = 0 then 1 else n * fac (n - 1) Pascal: FUNCTION fac(n: integer): integer; VAR i, res: integer; BEGIN res := 1; FOR i := 2 TO n DO res := res * i; fac := res; END; DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
16 Prolog: fac(0, 1). fac(n, N * X) :- N > 0, fac(n - 1, X). DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
17 Prolog: fac(0, 1). fac(n, N * X) :- N > 0, fac(n - 1, X). Syntax kommer inte vara föremål för diskussion, utan snarare utgångspunkt för diskussion om semantik. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
18 Lite historia Fortran Algol60 Cobol Lisp Simula Algol68 PL/I Smalltalk Pascal C Prolog ML C++ Ada Scheme Miranda clpr Java Haskell DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
19 Värden och typer Datorprogram hanterar data och är i sig själva data. Värden och program representeras av data. Data är endast bitmönster och måste tolkas i enlighet med någon datatyp. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
20 Värden och typer Datorprogram hanterar data och är i sig själva data. Värden och program representeras av data. Data är endast bitmönster och måste tolkas i enlighet med någon datatyp. Värden som är vanligt förekommande i program är primitiva (sanningsvärden, tecken, heltal, reella tal, strängar) sammansatta (poster, mängder, filer, par, listor) pekare (adress till... ) referenser (namn på... ) procedurer och funktioner (program) DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
21 Värden och typer... En datatyp är en mängd värden på vilka man opererar på ett uniformt sätt (en mängd värden och en mängd operatorer). Värden hanteras olika i olika språk. Scheme hanterar alla värden på samma sätt medan de flesta andra språk har olika grad av begränsningar i hanteringen. En typ (datatyp) är en mängd värden och en operationsmängd. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
22 Värden och typer... En datatyp är en mängd värden på vilka man opererar på ett uniformt sätt (en mängd värden och en mängd operatorer). Värden hanteras olika i olika språk. Scheme hanterar alla värden på samma sätt medan de flesta andra språk har olika grad av begränsningar i hanteringen. En typ (datatyp) är en mängd värden och en operationsmängd. Ex (Pascal): typen Integer = {0, ±1,..., ±MaxInt}, med operationsmängden {+,,, DIV, MOD,ˆ}. typen Boolean = {TRUE, FALSE}, med operationsmängden {NOT, AND, OR, ANDALSO, ORELSE, =} Att a är av typen Integer skrivs a Integer. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
23 Värden och typer... Alla programspråk har både primitiva och sammansatta typer. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
24 Värden och typer... Alla programspråk har både primitiva och sammansatta typer. En typs värdemängd kallas typens domän. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
25 Värden och typer... Alla programspråk har både primitiva och sammansatta typer. En typs värdemängd kallas typens domän. Ett värde är, i programspråkssammanhang, atomiskt om man inte behöver någon speciell struktur för att representera värdet. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
26 Värden och typer... Alla programspråk har både primitiva och sammansatta typer. En typs värdemängd kallas typens domän. Ett värde är, i programspråkssammanhang, atomiskt om man inte behöver någon speciell struktur för att representera värdet. Atomiska typer kallas ofta primitiva. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
27 Värden och typer... Alla programspråk har både primitiva och sammansatta typer. En typs värdemängd kallas typens domän. Ett värde är, i programspråkssammanhang, atomiskt om man inte behöver någon speciell struktur för att representera värdet. Atomiska typer kallas ofta primitiva. En typ kallas atomisk om alla värden i domänen är atomiska, t.ex: heltal, booleska värden,... DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
28 Värden och typer... Alla programspråk har både primitiva och sammansatta typer. En typs värdemängd kallas typens domän. Ett värde är, i programspråkssammanhang, atomiskt om man inte behöver någon speciell struktur för att representera värdet. Atomiska typer kallas ofta primitiva. En typ kallas atomisk om alla värden i domänen är atomiska, t.ex: heltal, booleska värden,... En typ som är primitiv i ett språk kan vara nödvändigt att representera som sammansatt i ett annat. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
29 Värden och typer... Alla programspråk har både primitiva och sammansatta typer. En typs värdemängd kallas typens domän. Ett värde är, i programspråkssammanhang, atomiskt om man inte behöver någon speciell struktur för att representera värdet. Atomiska typer kallas ofta primitiva. En typ kallas atomisk om alla värden i domänen är atomiska, t.ex: heltal, booleska värden,... En typ som är primitiv i ett språk kan vara nödvändigt att representera som sammansatt i ett annat.därför måste en uppräkning vara språkberoende. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
30 Värden och typer... En typ uppträder ofta under olika namn i olika språk. Typ Scheme Pascal ML Heltal integer Integer int Reella tal real Real real Teckensträng string string Sanningvärde boolean Boolean bool Delintervall a..b DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
31 Värden och typer... En typ uppträder ofta under olika namn i olika språk. Typ Scheme Pascal ML Heltal integer Integer int Reella tal real Real real Teckensträng string string Sanningvärde boolean Boolean bool Delintervall a..b Operationsmängderna är alltid fördefinierade. Man delar ofta in de primitiva typerna i kontinuerliga och diskreta (men de kontinuerliga måste representeras med en diskretisering). De primitiva typerna i Pascal är bl.a. Integer, Real, Char och Boolean. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
32 Värden och typer... Sammansatta typer: DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
33 Värden och typer... Sammansatta typer: Kartesiska produkter. par, tripler,... av värden ur redan definierade typer (tupler). Ex: 3, abc Integer String DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
34 Värden och typer... Sammansatta typer: Kartesiska produkter. par, tripler,... av värden ur redan definierade typer (tupler). Ex: 3, abc Integer String Disjunkta unioner. Värden ur alternativa domäner. Ex: x Boolean String DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
35 Värden och typer... Sammansatta typer: Kartesiska produkter. par, tripler,... av värden ur redan definierade typer (tupler). Ex: 3, abc Integer String Disjunkta unioner. Värden ur alternativa domäner. Ex: x Boolean String Avbildningar. Ex: om namn = Kalle namn[5] = e så 5 e Integer Char DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
36 Värden och typer... Potensmängder. Ex: om a = {1, 2, 3} så blir potensmängden av a alla delmängder av a = {{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
37 Värden och typer... Potensmängder. Ex: om a = {1, 2, 3} så blir potensmängden av a alla delmängder av a = {{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}. Rekursiva typer. Ex: listor av heltal DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
38 Värden och typer... Potensmängder. Ex: om a = {1, 2, 3} så blir potensmängden av a alla delmängder av a = {{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}. Rekursiva typer. Ex: listor av heltal Subtyper Ex: a.. z DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
39 Kartesiska produkter Kartesiska produkter är en mängd av ordnade värden och S T betyder alla ordnade par s, t där s S och t T. Obs! att s och t kan vara sammansatta. Ex: S = {TRUE, FALSE}, T = {gul, cyan, purpur}. S T = { TRUE, gul, TRUE, cyan, TRUE, purpur, FALSE, gul, FALSE, cyan, FALSE, purpur } DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
40 Kartesiska produkter... Scheme kan återsända godtyckliga strukturer (define newsxt (lambda (news newt) (cons news newt))) (define spart (lambda (SxT) (car SxT))) (define tpart (lambda (SxT) (cdr SxT))) DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
41 Disjunkt union I disjunkta unioner måste värdena märkas för att det skall gå att veta vilken domän aktuellt värde tillhör. Ex: S = {TRUE, FALSE}, T = {gul, cyan, purpur}. Den disjunkta unionen S + T innehåller värdena {TRUE, FALSE, gul, cyan, purpur}, men för att kunna skilja mellan olika typer av värden i den disjunkta unionen måste vi deklarera namn som fungerar som etiketter. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
42 Avbildningar är funktioner från en datamängd D till en annan datamängd R. Skrivs D R och kan realiseras med hjälp av antingen funktioner eller listor. I de flesta system finns funktioner och kontinuerliga listor (array) fördefinierade. Ex: D = {jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec} R = {winter, spring, summer, autumn} D R = {(jan winter), (feb winter), (mar winter), (apr spring), (may spring), (jun summer), (jul summer), (aug summer), (sep autumn), (oct autumn), (nov autumn), (dec winter)} DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
43 Avbildningar... I Scheme kan man göra en associationslista av par av månadsnummer, årstid (define season-list ((jan. winter) (feb. winter) (mar. winter) (apr. spring) (may. spring) (jun. summer) (jul. summer) (aug. summer) (sep. autumn) (oct. autumn) (nov. autumn) (dec. winter))) DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
44 Avbildningar... I Scheme kan man göra en associationslista av par av månadsnummer, årstid (define season-list ((jan. winter) (feb. winter) (mar. winter) (apr. spring) (may. spring) (jun. summer) (jul. summer) (aug. summer) (sep. autumn) (oct. autumn) (nov. autumn) (dec. winter))) (define (month->season month season-list) (cond ((null? season-list) undefined) ((eq? month (caar season-list)) (cdar season-list)) (else (month->season month (cdr season-list))))) month->season har typen (month seasonassociationlist) season DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
45 Avbildningar... (define (month->season month) ;; med array (let ((month-list #(jan feb mar apr may jun jul aug sep oct nov dec)) (season-list #(winter winter winter spring spring summer summer summer autumn autumn autumn winter))) (define (loop n) (cond ((> n 11) undefined) ((eq? month (vector-ref month-list n)) (vector-ref season-list n)) (else (loop (+ n 1))))) (loop 0))) DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
46 Avbildningar... (define (month->season month) ;; med array (let ((month-list #(jan feb mar apr may jun jul aug sep oct nov dec)) (season-list #(winter winter winter spring spring summer summer summer autumn autumn autumn winter))) (define (loop n) (cond ((> n 11) undefined) ((eq? month (vector-ref month-list n)) (vector-ref season-list n)) (else (loop (+ n 1))))) (loop 0))) (define (month->season month) ;; med case-uttryck (case month ((dec jan feb mar) winter) ((apr may) spring) ((jun jul aug) summer) ((sep oct nov) autumn) (else undefined))) DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
47 Potensmängd En potensmängd representerar mängden av alla värden som en mängd kan anta. De flesta språk har ingen inbyggd mekanism för att hantera mängder. Pascal är ett av få undantag. Ex.: Potensmängden 2 season ={{}, {winter}, {spring},..., {winter, spring}, {winter, summer},..., {winter, spring, summer},..., {winter, spring, summer, autumn}} 2 S ={a a S} DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
48 Potensmängd... I Pascal: TYPE season = (winter, spring, summer, autumn); period = SET OF season; DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
49 Potensmängd... I Pascal: TYPE season = (winter, spring, summer, autumn); period = SET OF season; I Scheme: (define set (1 2 3)) DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
50 Potensmängd... I Pascal: TYPE season = (winter, spring, summer, autumn); period = SET OF season; I Scheme: (define set (1 2 3)) (define (ps set) (if (null? set) (()) (let ((r (ps (cdr set)))) (append (map (lambda (s) (cons (car set) s)) r) r)))) DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
51 Rekursiva typer Rekursivt definierade typer är sådana typer som kan definieras i termer av sig själva. Ex: En lista med heltal kan definieras som: En lista med heltal = antingen tom eller ett heltal följt av en lista med heltal. nil står för den tomma listan. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
52 Rekursiva typer Rekursivt definierade typer är sådana typer som kan definieras i termer av sig själva. Ex: En lista med heltal kan definieras som: En lista med heltal = antingen tom eller ett heltal följt av en lista med heltal. nil står för den tomma listan. heltalslista = nil (heltal heltalslista) Eller: L = nil + (S L) DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
53 Rekursiva typer... I Scheme () (cons 3 ()) (cons 2 (list 3)) (list 2 3) DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
54 Rekursiva typer... I Pascal krävs pekarstrukturer för att realisera sådana typer, men i ML finns möjlighet till rekursiv definition av typer och dessutom finns fördefinierat ett brett spektrum av listtyp-konstruktorer. DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
55 Rekursiva typer... I Pascal krävs pekarstrukturer för att realisera sådana typer, men i ML finns möjlighet till rekursiv definition av typer och dessutom finns fördefinierat ett brett spektrum av listtyp-konstruktorer. Ex: heltalslistor type integerlist = int list; datatype integerlist = nil of unit cons of int * integerlist; (* får skrivas som: *) datatype integerlist = nil cons of int * integerlist; DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
56 Rekursiva typer... I Pascal krävs pekarstrukturer för att realisera sådana typer, men i ML finns möjlighet till rekursiv definition av typer och dessutom finns fördefinierat ett brett spektrum av listtyp-konstruktorer. Ex: heltalslistor type integerlist = int list; datatype integerlist = nil of unit cons of int * integerlist; (* får skrivas som: *) datatype integerlist = nil cons of int * integerlist; med typkonstruktorn list har man tillgång till alla tänkbara listor i ML, ex: type realnumberlist = real list; DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
57 Subtyper Subtyper är restriktioner på en redan definierad typ (delmängd). Ex: A B, där B är t ex mängden av alla heltal I Pascal kan subtyper definieras av varje diskret typ, men bara som delintervall. Ex: TYPE smallint = ; smallletter = a.. z ; fineseason = spring..autumn; Förutom i Pascal finns dessa i Modula (2, 3, 4) och ADA DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
58 Nästa gång: När upptäcks typfel? Vad är ett uttryck? DA2001 (Föreläsning 22) Datalogi 1 Hösten / 29
Programspråkslingvistik. Sista delen av kursen. Ett programspråk
Sista delen av kursen Programspråkslingvistik handlar om hur program, delprogram och datatyper deklareras och vad det man åstadkommit egentligen betyder. Innehåll Syntaktisk (hur ser det ut) och semantisk
Läs merSista delen av kursen
Sista delen av kursen handlar om hur program, delprogram och datatyper deklareras och vad det man åstadkommit egentligen betyder. Innehåll Syntaktisk (hur ser det ut) och semantisk (vad betyder det) beskrivning
Läs merDeklarationer/definitioner/specifikationer
Deklarationer/definitioner/specifikationer Konstantdefinitioner innebär att ett namn binds och sätts att referera till ett värde som beräknas vid kompileringen/interpreteringen och som under programmets
Läs merVälkomna till NADA. Paradigm i datalogin. Vad är ett paradigm
Välkomna till NADA (Numerisk Analys och DAtalogi) och kursen Paradigm i datalogin, orienteringskurs GN, 7,5 hp (PID) Välkomna... Jag: Serafim Dahl Osquars Backe 2, plan 5 Rum 1531 Postfack: Lindstedtsvägen
Läs merTypsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19
Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och
Läs merAbstraktion. procedurabstraktion. DA2001 (Föreläsning 26) Datalogi 1 Hösten / 27
Abstraktion Inom programmeringstekniken används två former av abstraktion dataabstraktion och programabstraktion. Dataabstraktion handlar om aggregat för att gruppera samhörande data. Programabstraktion
Läs merAbstraktion. Abstraktion... Abstraktion... Abstraktion...
Abstraktion Inom programmeringstekniken används två former av abstraktion dataabstraktion och programabstraktion. Dataabstraktion handlar om aggregat för att gruppera samhörande data. Programabstraktion
Läs merTypsystem. Typsystem... Typsystem... Typsystem... 2 *
Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och
Läs merPascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt
Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken
Läs merPascal... Pascal. Pascal... Pascal...
... Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken
Läs merPolymorfi (många skepnader) är egentligen en mängd olika abstraktionsmekanismer och en indelning skulle kunna se ut så här: polymorfi
Polymorfi Polymorfi (många skepnader) är egentligen en mängd olika abstraktionsmekanismer och en indelning skulle kunna se ut så här: polymorfi universell ad hoc parametrisk inclusion coersion overloading
Läs merFunktionell programmering DD1361
Funktionell programmering DD1361 Tupler Två eller fler (men ändligt) antal element. Elementen kan vara av olika typer. Ex: (1,2) :: (Integer, Integer) (( 2, hejsan ), True) ::? Tupel med två element ->
Läs merIntroduktion till formella metoder Programmeringsmetodik 1. Inledning
Introduktion till formella metoder Programmeringsmetodik 1. Inledning Fokus på imperativa program (ex. C, Java) program betyder härefter ett imperativt program Program bestäms i en abstrakt mening av hur
Läs merOmgivningar. Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem.
Omgivningar Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem. (define (sqrroot c) (define (fixpoint guess c eps) (define
Läs merDD1361 Programmeringsparadigm. Carina Edlund
DD1361 Programmeringsparadigm Carina Edlund carina@nada.kth.se Funktionell programmering Grundidéen med funktionell programmering är att härma matematiken och dess funktionsbegrepp. Matematiskt funktionsbegrepp
Läs merDatalogi, grundkurs 1. Lösningsförslag till tentamen
Datalogi, grundkurs 1 Lösningsförslag till tentamen 10 december 2008 1. a. Man testar med typiska värden, gränsvärden och värden utanför specificerad indatavärdemängd. Helst med alla permutationer av
Läs merSökning och sortering
Sökning och sortering Att söka efter data man lagrat undan för senare användning är vanligt Egentligen har man ingen annan anledning för att lagra undan data Har man mycket data och många sökningar måste
Läs merRepetition i Pascal. Exemplen fac. Exemplen fac i Pascal. Exemplen fac motivering. Orginalet
Repetition Introduktion Repetition i Exemplen fac Orginalet I Scheme använde vi rekursion för all slags repetition. Efterom Scheme är ett funktionellt språk återsänder alla språkkonstruktioner ett värde
Läs merDatalogi, grundkurs 1. Lösningsförslag till tentamen
Datalogi, grundkurs 1 Lösningsförslag till tentamen 6 maj 2000 1. För att proceduren sortera ska fungera som tänkt kan den se ut på följande sätt: const min = 1; max = 3; type tal = integer; index = min..max;
Läs merFöreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad
1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen
Läs merKOMPLETTERANDE HEMTENTAMEN TDDB53
Linköpings universitet Institutionen för datavetenskap, IDA Olle Willén mars 2003 Tentamen TDDB53 KOMPLETTERANDE HEMTENTAMEN TDDB53 Programmering i Ada för MI (MI-ADA) i mars 2003 Tentan lämnas ut 24/3
Läs merSökning och sortering. Sökning och sortering - definitioner. Sökning i oordnad lista. Sökning med vaktpost i oordnad lista
Sökning och sortering Sökning och sortering - definitioner Att söka efter data man lagrat undan för senare användning är vanligt Egentligen har man ingen annan anledning för att lagra undan data Har man
Läs merDagens föreläsning Programmering i Lisp Fö 7. Sammanfattning funktionell programmering Exempel på funktionella programspråk
1 Dagens föreläsning Programmering i Lisp Fö 7 Kopplingen funktionella programmering och diskret matematik. Jämför vad ni hittills gjort i denna kurs och i den diskreta matematiken, med referenser in i
Läs merImperativ programmering. Föreläsning 2
Imperativ programmering 1DL126 3p Föreläsning 2 Imperativ programmering Kännetecken för imperativa språk: Programmet består av en serie instruktioner. Olika språk har olika uppsättningar av instruktioner.
Läs merFöreläsning 3: Booleans, if, switch
TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt
Läs merImperativ programmering
Imperativ programmering 1DL126 3p Imperativ programmering Jesper Wilhelmsson ICQ: 20328079 Yahoo: amigajoppe MSN / epost: jesperw@it.uu.se Rum: 1335 Tel: 471 1046 Imperativ programmering Vilka programmeringsspråk
Läs merTENTAMEN TDDB53. Programmering i Ada för MI (provkod TEN2) den 7 april 2010 kl Institutionen för datavetenskap, IDA Olle Willén mars 2010
Linköpings universitet Institutionen för datavetenskap, IDA Olle Willén mars 2010 Tentamen TDDB53 TENTAMEN TDDB53 (provkod TEN2) den 7 april 2010 kl 8 12 Jour: Emil Nielsen, tel 070 499 89 88 Hjälpmedel:
Läs merFöreläsning 9 Exempel
Föreläsning 9 Exempel Intervallhalveringsmetoden DA2001 (Föreläsning 9) Datalogi 1 Hösten 2013 1 / 24 Föreläsning 9 Exempel Intervallhalveringsmetoden Newton-Raphsons metod DA2001 (Föreläsning 9) Datalogi
Läs merFöreläsning 9 Exempel. Intervallhalveringsmetoden. Intervallhalveringsmetoden... Intervallhalveringsmetoden...
Föreläsning 9 Intervallhalveringsmetoden Intervallhalveringsmetoden Newton-Raphsons metod Mer om rekursion Tidskomplexitet Procedurabstraktion Representation Bra om ni läst följande avsnitt i AS: Procedures
Läs merDatatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek
De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000
Läs merExempel på typer av datorspråk EXCEL
1 2 TDDB82 Perspektiv på Datateknik Breddgivande föreläsning Datorspråk Programmeringsparadigmer Programmeringsspråk Konstruktioner i programmeringsspråk Litteratur: Brookshear, Computer Science - an overview,
Läs merIdag: Par och listor. Symboler. Symboler används för att uttrycka icke-numeriska data såsom namn, adress, bilregisternummer, boktitel, osv.
Idag: Par och listor Symboler Hur hanterar man icke-numeriska problem? Hur hanterar man en samling av data? Hur konstruerar man sammansatta datastrukturer? Bra om du har läst följande avsnitt i AS: Pair
Läs mern Detta för att kunna koncentrera oss på n Tal: number? n Symboler: symbol? n Strängar: string? n Tecken: char? n Boolskt: boolean?
Tidigare TDDC74 Programming: Abstraktion och modellering Föreläsning 4 Symboler, Par, Listor Representation av par, Grafisk notation för par Representation av listor mha par Typiska listhanteringsprocedurer
Läs merTDP002 - Imperativ programmering
. TDP002 - Imperativ programmering Introduktion till kursen och Python Eric Elfving Institutionen för datavetenskap 14 augusti 2015 Översikt 2/29 Programmering - en översikt Python - Köra och skriva program
Läs merITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet
ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,
Läs merDigitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.
Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra
Läs merIdag: Par och listor. Scheme. DA2001 (Föreläsning 6) Datalogi 1 Hösten / 29
Idag: Par och listor DA2001 (Föreläsning 6) Datalogi 1 Hösten 2010 1 / 29 Idag: Par och listor Hur hanterar man icke-numeriska problem? DA2001 (Föreläsning 6) Datalogi 1 Hösten 2010 1 / 29 Idag: Par och
Läs merTentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34
Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Lördagen den 30 november 2002 kl 9.00 14.00, salar E33, E34 Inga hjälpmedel 30 poäng ger säkert godkänt, 40 poäng ger betyg 4 50 poäng ger
Läs merTDP002 Imperativ programmering
TDP002 Imperativ programmering Introduktion till kursen och python Eric Elfving Institutionen för datavetenskap (IDA) Översikt Programmering En introduktion Python Köra och skriva program Python grunderna
Läs merTDP002 - Imperativ programmering
TDP002 - Imperativ programmering Introduktion till kursen och Python Eric Elfving Institutionen för datavetenskap 1 Programmering - en översikt 2 Python Inbyggda typer Satser och uttryck 1 Programmering
Läs merDagens föreläsning Programmering i Lisp Fö 5
Anders Haraldsson 1 Dagens föreläsning Programmering i Lisp Fö 5 - Funktioner - lambda-uttryck (avs 7.1) - funcall och function (avs 7.2) - Högre ordningens funktioner (avs 7.3) - Iteratorer - Egenskaper
Läs merTDDC74 Programmering, abstraktion och modellering DUGGA 2
AID-nummer: Datum: 2011-02-18 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering DUGGA 2 Fredag 18 feb 2011
Läs merNågra saker till och lite om snabbare sortering
Några saker till och lite om snabbare sortering GOTO hemskt eller ett måste? CASE enkla val över diskreta värdemängder Snabb sortering principer Snabb sortering i Scheme och Pascal QuickSort (dela städat
Läs merTDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av
Läs merImperativ programmering. Imperativ programmering konstruktioner i Lisp. Datastrukturer (kap ) arraystruktur poststruktur
Imperativ programmering konstruktioner i Lisp Imperativ programmering I den imperativa programmeringen skriver vi program satsvist. Datastrukturer (kap.-.) aystruktur poststruktur Iterativa uttryck (avs.)
Läs merPython. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Läs merTentamen Grundläggande programmering
Akademin för Innovation Design och Teknik Tentamen Grundläggande programmering Kurskod: DVA103 Datum 2012-06-11 Tid 14.10 16.30 Examinator: Lars Asplund Maxpoäng: 48 Betygsgränser: Betyg 3: 20 Betyg 4:
Läs merTDDC74 Lab 04 Muterbara strukturer, omgivningar
TDDC74 Lab 04 Muterbara strukturer, omgivningar 1 Översikt I den här laborationen kommer ni att lära er mer om: Tillstånd, och skillnader mellan ren funktionell programmering och imperativ. Skillnaden
Läs merPython. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Läs merFöreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt
Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling
Läs merUniversitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2
Anders Haraldsson 1 Anders Haraldsson 2 Dagens föreläsning Programmering i Lisp Fö 5 - Funktioner - lambda-uttryck (avs 7.1) - funcall och function (avs 7.2) - Högre ordningens funktioner (avs 7.) - Iteratorer
Läs merTDDC74 Programmering, abstraktion och modellering. Tentamen
AID-nummer: Datum: 2011-01-11 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering Tentamen Tisdag 11 januari
Läs merTDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014
TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt. Använd
Läs merGrundläggande Datalogi
s delar Grundläggande Datalogi s delar s delar s delar Dataabstraktion Rekursion Algoritmanalys s delar Sortering Trädstrukturer Grafalgoritmer Optimering Stavning Strängmatchning Datakompression Versionshantering
Läs merGOTO och lägen. Några saker till och lite om snabbare sortering. GOTO och lägen (3) GOTO och lägen (2)
Några saker till och lite om snabbare sortering GOTO och lägen GOTO hemskt eller ett måste? CASE enkla val över diskreta värdemängder Snabb sortering principer Snabb sortering i Scheme och Pascal QuickSort
Läs merTDDC74 Programmering, abstraktion och modellering. Tentamen
AID-nummer: Datum: 2011-06-10 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering Tentamen Fredag 10 juni
Läs merTDDC74 Programmering, abstraktion och modellering. Tentamen
AID-nummer: Datum: 2012-01-10 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering Tentamen Tisdag 10 januari
Läs merFöreläsning 6: Introduktion av listor
Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.
Läs merKompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Läs merImperativ programmering. Föreläsning 3
Imperativ programmering 1DL126 3p Föreläsning 3 Imperativa paradigmer Ostrukturerad programmering Strukturerad programmering Procedurell programmering Objektorienterad programmering Klassbaserad programmering
Läs merTDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18
TDDC74 Programmering: Abstraktion och modellering Datortenta - 2018-06-07, kl 14-18 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis
Läs merBER AKNINGSBARHET F OR DATALOGER. Kent Petersson. Institutionen for Datavetenskap Goteborgs Universitet / Chalmers Goteborg, Sweden
BER AKNINGSBARHET F OR DATALOGER Fran till P Kent Petersson Institutionen for Datavetenskap Goteborgs Universitet / Chalmers 412 96 Goteborg, Sweden ii Kent Petersson Department of Computer Science Goteborgs
Läs merImperativ programmering. Föreläsning 4
Imperativ programmering 1DL126 3p Föreläsning 4 Imperativa paradigmer Ostrukturerad programmering Strukturerad programmering Procedurell programmering Objektorienterad programmering Klassbaserad programmering
Läs merTDDC74 Programmering, abstraktion och modellering DUGGA 2
1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering DUGGA 2 Torsdag 19 feb 2009 8-10 Namn: Personnummer:
Läs merExempel på ett litet Ada-program
Exempel på ett litet Ada-program -- En kommentar som beskriver något. with Ada.Text_IO; procedure Mini is -- Deklarationer. K : constant Integer := 5; X, Y : Integer; -- Körbar kod. Ada.Text_IO.Put( Utskrift
Läs merGRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse
GRUNDER I VHDL Innehåll Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse KOMPONENTMODELL Modell för att beskriva komponenter Externt interface Intern funktion
Läs merPreliminär elmarknadsstatistik per månad för Sverige 2014
jan feb mar apr maj jun GWh GWh GWh GWh GWh GWh 6 859,6 6 342,1 6 814,5 5 965,4 5 706,5 5 382,4 1 213,7 872,3 1 200,3 902,0 681,7 611,8 6 374,9 5 876,2 6 247,9 4 875,8 3 487,7 3 395,2 529,2 496,2 557,8
Läs merDel : Funktionell programmering. I alla deluppgifterna, använd Haskell och skriv typen för de identifierare du definierar.
Nada Tentamensdag 2004 aug 23 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 10p +(5p + 20p +5p+ 20p) + (10p +12p + 8p +10p) = 10p + 50p + 40 p
Läs merTvå fall: q Tom sekvens: () q Sekvens av element: (a b c) ; (sum-rec '(2 4 6)) = 12. q Första elementet uppfyller vissa villkor: (2 a b c)
Programmönster: # Listan som sekvens, Rekursiv process Enkel genomgång av sekvens (element på toppnivån i en lista)) TDDC60 Programmering: abstraktion och modellering Föreläsning 5 Rekursiva och iterativa
Läs merProgram & programmering
Program & programmering Vad är program? Satser och instruktioner, toggla igenom exempel Program på olika nivåer, för olika maskiner, för olika saker Tolka program; kompilator, intepretator, binärbytekod,
Läs merTentamen i. TDDA 69 Data och programstrukturer
1 Linköpings tekniska högskola Institutionen för datavetenskap Anders Haraldsson Tentamen i TDDA 69 Data och programstrukturer Torsdag den 14 januari 2009, kl 14-18 Hjälpmedel: Inga. Poänggränser: Maximalt
Läs merTENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13:15
TENTAMEN I PROGRAMSPRÅK -- DVG C01 140605 kl. 08:15-13:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Bilaga A: BNF-definition Betygsgräns: Kurs: Max 60p, Med beröm godkänd 50p, Icke utan beröm godkänd
Läs merPythons standardbibliotek
Pythons standardbibliotek Python 3 skall, enligt standarddokumenten http://docs.python.org/py3k/library/index.html ha stöd för vissa funktioner, typer och datastrukturer Så länge man håller sig till detta
Läs merString [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning
Dagens Agenda String [] argv String [] argv Arrayer och Strängar fortsättning Booleska operatorer if, for, while satser Introduktion till algoritmer public static void main(string [] argv) argv är variabelnamnet
Läs merTDDC74 Programmering: Abstraktion och modellering Dugga 2, Tid: kl 08-10, Datum:
TDDC74 Programmering: Abstraktion och modellering Dugga 2, Tid: kl 08-10, Skriv tydligt så att inte dina lösningar missförstås. Använd väl valda namn på parametrar och indentera din kod. Även om det i
Läs merProgrammera i C Varför programmera i C när det finns språk som Simula och Pascal??
Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära
Läs merSignalflödesmodellen. Två (gamla) exempel: Kvadratera alla jämna löv.
Strömmar (streams) De sista dagarna objekt med tillstånd modellerades som beräkningsobjekt med tillstånd. Isådana modeller är tiden modelerad (implicit) som en sekvens av tillstånd. För att kunna modellera
Läs merKlassdeklaration. Metoddeklaration. Parameteröverföring
Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar
Läs merRepetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python
Repetition i Python 3 Exemplen fac Orginalet I Scheme använde vi rekursion för all slags repetition. Efterom Scheme är ett funktionellt språk återsänder alla språkkonstruktioner ett värde men i Python
Läs merProgrammering A. Johan Eliasson johane@cs.umu.se
Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer
Läs merÖvning2. Variabler. Data typer
Vahid 28 okt 2002 prgk02 Övning2 -Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =, ,!=,!) -String hur man
Läs merTDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel
TDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i svårighetsordning.
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av
Läs merFöreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?
Föreläsning 10 Datalogi 1 DA2001 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer på skärmen print( Hej ) print( Hur är det?
Läs merDataabstraktion. TDDD73 Funktionell och impterativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap
Dataabstraktion TDDD73 Funktionell och impterativ programmering i Python Föreläsning 12 Peter Dalenius Institutionen för datavetenskap 2013-11-12 Översikt Vad är abstraktion? Vad är en abstrakt datatyp?
Läs merTDDC74 Programmering, abstraktion och modellering DUGGA 3
1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering DUGGA 3 Torsdag 4 mars 2010 kl 8-10 Namn: Personnummer:
Läs merSpråket Scheme. DAT 060: Introduktion till (funktions)programmering. DrScheme. uttryck. Jacek Malec m. fl. evaluering av uttryck.
DAT 060: Introduktion till (funktions)programmering. Jacek Malec m. fl. www.cs.lth.se/home/jacek Malec/dat060 Idag: 1. Kursens innehåll 2. Kursens organisation 3. Programmeringsspråket Scheme 4. Introduktion
Läs merTDDC74 Programmering, abstraktion och modellering. Tentamen
AID-nummer: Datum: 2011-08-17 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering Tentamen Onsdag 17 augusti
Läs merFöreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk
Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program
Läs merParsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck
Betrakta följande uttryck a +(b + c) d + e (f + g h) Parsing med Recursive Descent, Avbildningsklasser Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 22 november 2010 Beräkning med regler: multiplikation
Läs merSökning i ordnad lista. Sökning och sortering. Sökning med vaktpost i oordnad lista
Sökning och sortering Sökning i oordnad lista Att söka efter data man lagrat undan för senare användning är vanligt Egentligen har man ingen annan anledning för att lagra undan data Har man mycket data
Läs merÖversikt Introduktion DST 1. Nicholas Wickström. IDE, Högskolan i Halmstad. N. Wickström
DST 1 Nicholas Wickström IDE, Högskolan i Halmstad 2009 1 Outline 1 Vad är Hårdvara? (Datorsystemmodell; processor m. periferi, IO, Minne) Typiskt för hårdvarunära programmering (datablad, register, datastrukturer,...)
Läs mer(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java
(Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart
Läs merDatalogi, grundkurs 1
Datalogi, grundkurs 1 Tentamen 10 december 2008 konverterad till Python Hjälpmedel: Kommer att finnas i skrivsalarna, bl.a. Revised 6 Report on the Algorithmic Language Scheme och två olika s.k. Cheat
Läs merIntroduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?
Introduktion till objektorientering Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? jonas.kvarnstrom@liu.se 2015 2014 jonas.kvarnstrom@liu.se
Läs merDatastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada
Datastrukturer Vad är en datastruktur? Vad är en datatyp? Primitiva datatyper i Java Icke-primitiva datatyper i Java Minnesexempel med datastrukturer Vektorer i Java Erik Forslin efo@nada.kth.se Rum 1445,
Läs merDagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning
1 Dagens föreläsning Programmering i Lisp - Block, räckvidd - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning - Felhantering (kap 17) icke-normala återhopp catch
Läs merDagens föreläsning. Modeller för programmeringsspråk. - Olika modeller programspråk Interpretator - kompilator. - Syntax - semantik.
1 Dagens föreläsning Modeller för programmeringsspråk - Olika modeller programspråk Interpretator - kompilator - Olika typer av språk Statiska och dynamiska programspråk - Syntax - semantik. Grammatik
Läs mer10. Mängder och språk
Objektorienterad modellering och diskreta strukturer 10. Mängder och språk Sven Gestegård Robertz Institutionen för datavetenskap, LTH 2013 Rekaputilation Vi har talat om satslogik, predikatlogik och härledning
Läs merObjektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java
Läs mer