2003-10-30Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.

Slides:



Advertisements
Liknande presentationer
Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Advertisements

© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
Algoritmer och data strukturer -Länkade listor
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella.
De fundamentala datatyperna
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 4.
Datastrukturer och algoritmer Föreläsning 11. Datastrukturer och algoritmer VT08 Innehåll  Mängd  Lexikon  Heap  Kapitel , , 14.4.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 10: Objektorientering Objektorientering och abstrakta datatyper Dynamisk bindning.
C-programmering ID120V William Sandqvist Länkad lista
Polymorfism.
Programmeringsteknik K och Media
Programmeringsteknik för K och Media
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Java. Kortfattat om Java Syntaxen påminner i hög grad om C++ Stöd för objektorientering Kod kan köras i en virtuell maskin som finns tillgänglig för nästan.
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Objektbaserad programmering –Grundläggande om klasser och objekt – (Arv får vänta)  Iden med klasser.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
Föreläsning 13 Polymorfism, Paket och JAR-filer. Polymorfism Ordet härstammar från grekiskan Poly – många Morf – form Polymorf – många former Någonting.
INTRODUKTION TILL PROGRAMMERING
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
PROCESSPROGRAMMERING
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Pekare och speciell programstruktur i inbyggda system
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Programmering B PHP Lektion 2
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Programmering i C# 5. Structer.
William Sandqvist C:s minnesmodell.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 6: Semantik Statisk semantik Attributgrammatiker Dynamisk semantik Axiomatisk.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 10: Objektorientering Objektorientering och abstrakta datatyper Dynamisk bindning Singel mot multipelt.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 4 ( ) INNEHÅLL: -Logiska opertorer -Poster.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella språk LISP, ML och.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 1: Inledning administrativt o dyl kursens mål varför programspråksteori? språkkategorier användningsområden.
Föreläsning 5 Arrayer & ArrayList Hur man använder API:n
Programmering i C# 9. Pekare och osäker kod.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
Datastrukturer och algoritmer
F. Drewes, Inst. f. datavetenskap1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
Föreläsning 4 Klasser Och Objekt.
Stack och Kö -Implementering -Tilllämpningar -- Kapitel 16, 11.
Anders Broberg, Programspråksteoridelen DVA Moment 2 1 Variabler Abstraktion av en minnescell En förvaringslåda som kan beskrivas med 6 attribut –Namn.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
INTRODUKTION TILL PROGRAMMERING
F. Drewes, Inst. f. datavetenskap1 Föreläsning 7: Uttryck och sidoeffekter Uttryck Sidoeffekter Överladdning Tilldelningar i uttryck.
Anders Broberg, Programspråksteoridelen DVA Moment 2 1 Epost: Hemsida: Tel: Rum: D438.
F5 - Fält & strängar 1 Programmeringsteknik, 4p vt-00 Fält Många element av samma typ Typexempel : lista av heltal Gemensamt namn Individuella värden nås.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 9: Implementering av underprogram Aktiveringsposter Exekveringsstacken Implementera dynamisk räckvidd.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 12: -kalkylen allmänt om -kalkylen syntax semantik att programmera i -kalkylen.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer.
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 5: Syntaxanalys (parsning) Syntaxanalysens mål Tillvägagångssätt och komplexitet Syntaxanalys.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 12: -kalkylen allmänt om -kalkylen syntax semantik att programmera i -kalkylen.
Anders Sjögren Data (i primärminnet) som en länkad lista datatypen för varje element i listan är en struktur, post ( struct )
OOP&M - teori1 OOP&M – Föreläsning 5 kap 8-13 Operatorer,typkonvertering, booleska operatorer, if och else.
Program indata ? utdata 1/20 Vahid Mosavat, Nada, KTH.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 4: Syntaxdefinition Formell syntaxdefinition Lexikalisk och kontextfri syntax.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 3: Abstrakta datatyper Algebror Abstrakta datatyper Inkapsling och informationsmaskering.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 13: Resolution Resolution i satslogiken Resolution i predikatlogiken.
Anders Sjögren Minnen, variabler, att lagra i primärminnet forts. Den här bilden känner ni igen sedan tidigare. Vi skall fortsätta att prata variabeltyper.
TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder.
TDP004 Objektorienterad Programmering Fö 5 Minneshantering.
Presentationens avskrift:

Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper

Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 2 Variabler (i imperativa språk) En variabel i ett imperativt språk är en abstraktion över ett antal minnesceller som bildar en logisk enhet. Viktiga attribut hos variabler namn eller identifierare värde – minnescellernas innehåll typ – bestämmer möjliga värden och operationer adress – anger var i minnet cellerna ligger Två namn på samma adress kallas alias

Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 3 Bindningar Bindningar knyter attribut till variabler eller andra företeelser i ett program(språk) Bindningar sker vid olika bindningstider, t.ex. under språkutvecklingen språkimplementeringen programkompileringen programexekveringen statisk bindning dynamisk bindning

Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 4 Typbindning De huvudsakliga valmöjligheterna: typinferens explicit deklarationimplicit deklaration dynamisk typbindning (ytterst flexibel) statisk typbindning (ökad säkerhet genom statisk typkontroll)

Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 5 Minnesbindning (”storage binding”) Minnesbindning sker genom allokering och avallokering. Tiden mellan dessa kallas för variabelns livslängd. statisk (snabb, livslängd ober. av räckvidden  historie- känsliga variabler) stackdynamisk (allokeras från stacken när deklarationen nås, sparar minne, tillåter rekursion) explicit heap-dynamisk (allokeras från högen via en explicit operator, t.ex. ”new”). Dynamiska datastrukturer implicit heap-dynamisk (automatisk allokering vid värdetilldelningen, ytterst flexibel men känslig mot fel)

Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 6 Typning och typkontroll Statisk typkontroll är att föredra framför dynamisk (effektivitet, fel upptäcks inte först när det är för sent) Språket är starkt typat om alla typfel upptäcks innan exekvering (statiskt (oftast) eller dynamiskt) Om typkontroll används är typkompatibilitet en central fråga. De två extremfallen:  namnkompatibilitet – typ A är endast kompatibel med typ A  strukturell kompatibilitet – typ A är kompatibel med typ B om de har samma struktur. Svårare att implementera båda medför problem   programmeraren bör få valmöjligheter  möjligheten att kunna definiera subtyper är nyttig

Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 7 Fält (”array”) och post (”record”) Ett fält motsvarar en matematisk funktion A: I  V som avbildar en ändlig indexmängd I på en mängd V av värden. En post motsvarar ett element (a 1,…,a k ) i den cartesiska produkten T 1  …  T k av datatyper T 1,…,T k. I samband med fält används syntaxen A[i] istället för A(i) för att inte förväxla det med anrop Värdena a 1,…,a k som är sparade i en post refereras till genom namn istället för index (  ökad läsbarhet)

Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 8 Pekare och referenstyper En pekares värde är adressen till en variabel. Variabeln i sig är ofta anonym, dvs har inget namn. Indirekt adressering och dynamisk allokering av variabler Skapa dynamiska datastrukturer (t.ex. träd, lista, tabell) Operationer: (av)allokering, dereferensering, tilldelning var p,q: pointer to integer; new(p);/* allokering */ *p := 42;/* dereferensering */ q := p;/* tilldelning */ dispose(p);/* avallokering */

Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 9 Pekare och referenstyper Pekare är nyttiga men något farliga  avallokering kan skapa ”dangling pointers”  förlorade heap-dynamiska variabler (”garbage”)  minnesläckage (”memory leakage”)  ibland för flexibel (pekare till vanliga variabler, aritmetiska operationer tillåtna) Bot: referenstyper och automatisk återvinning  referenser pekar till specifika typer, inga aritmetiska operationer tillåtna, implicit dereferensering  automatisk återvinning förhindrar dangling pointers och minnesläckage  Återvinning kan implementeras via referensräknare eller sophämtning