Exempel på typer av datorspråk EXCEL

Storlek: px
Starta visningen från sidan:

Download "Exempel på typer av datorspråk EXCEL"

Transkript

1 1 2 TDDC10 Perspektiv på datateknik/datavetenskap TDDC79 Perspektiv på informationsteknologi TDP001 Handhavande av datormiljö (D, IT, C, IP) Breddgivande föreläsning Historik Datorspråk Programmeringsparadigmer Programmeringsspråk Konstruktioner i programmeringsspråk Datorspråk kommunikation människa - dator kommunikation dator - dator språk med textuell representation språk för att beskriva algoritmer = programmeringsspråk språk för att beskriva data eller layout = beskrivningsspråk => dessa kallas formella språk (CS sid 228) Jämför naturliga språk: Litteratur: Brookshear, Computer Science - an overview, kap 6 (CS) Sebesta, Concepts of Programming Languages människans ljudspråk textuell representation skriftspråk 3 4 Exempel på typer av datorspråk EXCEL programmeringsspråk finns 1000-tals språk ett 10-tal används klart mest ett 100-tal används kommersiellt frågespråk databaser (t e x SQL) kommandospråk operativsystemspråk (t ex Unix) inbyggda språk i tillämpningar kalkylspråk (t ex Excel) matematiska språk (t ex Mathlab) beskrivningsspråk dokumentstrukturer (t ex MIF-format, SGML, XML) www-sidestrukturer (t ex HTML, Java-script) utskriftsspråk dator till skrivare (t ex Postscript) datorkommunikationssspråk nätprotokoll

2 5 HTML 6 Postscript - utskrift på laserskrivare 7 8 Java Lisp

3 9 10 Formella språk (CS 6.4) Formella språk Hur är språket uppbyggt? Ett formellt språk måste vara entydigt. Vilka program / beskrivningar är korrekta i det formella språket. Språkets syntax beskriver hur de olika konstruktionerna får skrivas (som text). Syntaxen brukar skrivas i någon typ av grammatik. Exempel: Aritmetiska uttryck 3 - (4.5 * -2) / 1.56 Men vad är egentligen tillåtet? Får vi skriva följande uttryck? -(2+3) (2) *()-1 ((((2)))) Naturligt språk är ej entydigt. Sammanhanget avgör vanligen betydelsen. Syntaxen hos språk kan vara av olika komplexitet. Det finns olika klasser med grammatiker. Problemet är: Givet en grammatik och en följde med tecken. Kan man på ett effektivt sätt kontrollera om en följd av tecken uppfyller grammatiken och kan man bygga upp en intern struktur, som visar de ingående elementen och strukturen mellan dessa. Teckenrepresentationen kalla konkret syntax. Processen att kontrollera och bygga upp lämpliga strukturer kallas parsing och resultatet abstrakt syntax eller parseträd (parse tree). Mer om detta vid en senare breddföreläsning Formella språk Vad betyder de olika konstruktionerna i språket. Kallas för språkets semantik. Detta är svårare att beskriva. Man brukar använda logik- och matematiskt baserade notationer för att beskriva semantiken av ett programspråk. Litet exempel: Hur beräknas ett aritmetiskt uttryck? Prioritet mellan operatorer i ett aritmetiskt uttryck är olika. Parenterser beräknas först. I vilken ordning beräknas delarna i ett uttryck? Programmeringsparadigmer Framväxten av olika abstraktionsmekanismer i programspråk och deras påverkan på programutvecklingsmetoder, från tidig analys och modellering, till kodning och testning. Olika stilar att skriva och strukturera program. 3+5*5 (3+4)* =((3 + 4) + 5) eller (3 + (4 + 5))? = ((3-4) - 5) eller (3 - (4-5))? I ett logiskt uttryck, beräknas alla delarna? (a = 0) eller (x/a > 10)

4 13 14 Programmeringsparadigmer (CS 6.1) flödesschema-programmering - goto Fortran, Basic Maskinnära programmering, C Strukturerad programmering Pascal, Ada, C Imperativ programmering = Flödesschema-programmering + Strukturerad programmering Objektorienterad programmering Simula, Smalltalk, C++, Java, Python, Ruby, C# Händelsestyrd (event-driven) programmering (CS sid 252) visual-språken (Basic, C, C++, Delphi), Java etc Processprogrammering (concurrent programming, parallel programming) PL/I, Modula, Ada, Java Deklarativ programmering funktionell programmering Lisp, ML, Haskell, F# 8Microsofts nya) logikprogrammering Prolog Vad vill man komma åt? Programmeringen skall höjas mot tillämpningen kalkylspråk, matematiska språk Begrepp i språket skall motsvara verkliga koncept från tillämpningen abstrakta datatyper, objektorientering Höja abstraktionen program skall bli lättare att förstå och därmed förhoppningsvis korrektare Bemästra komplexitet gömma information Programmen blir mer specifikation - what to do mer än hur man löser uppgiften how to do funktionell och deklarativ programmering, databasfrågespråk Konstruktioner i programspråk (CS 6.2) deklarationer datatyper programspråkets inbyggda typer: primitiva datatyper heltal (integer), flyttal (float, real), tecken (character), logiska värden (Boolean) sammansatta datatyper sträng (string), arraystruktur (array), post (record), lista pekare (pointer) egendefinierade datatyper klasser / abstrakta datatyper grundläggande komponenter literaler (1234, 12.5, en sträng, true) konstanter (pi) variabler uttryck (expression) satser (statement) tilldelningssats (assignment statement) in- och utmatningssatser Konstruktioner i programspråk primitiva operationer beroende på språk finns primitiva operationer för t ex aritmetik (+, -,...), stränghantering, databasoperationer, kalkyloperationer styrstrukturer (control structures) hoppsatser (goto) villkorssats (if) repetitionssatser (for, while, repeat) rekursion iteratorer exekverbara enheter underprogram funktioner (function) procedurer (procedure) korutiner processer (process) moduler paket klasser filmoduler

5 17 18 Exempel på ett enkelt program i ett påhittat programmeringsspråk: program summera-talen-mellan; deklarationer datatyp variabler variabel programblock heltal första_tal, sista_tal, summa; satser block summa = 0; läsin (första_tal); läsin (sista_tal); för tal = första_tal till sista_tal utför summa = summa + tal; skrivut (summa); slut_program; tilldelningssats inläsningssats repetitionssats utskriftssats villkorssats tilldelningssats Exempel på ett enkelt program i ett Basicliknande (helt påhittat) språk. Med gå till (goto) hoppar man till nya rader: program summera_talen_mellan 100 summa = 0 variabler 200 läsin (första_tal) 300 läsin (sista_tal) 400 tal = första_tal 500 om tal > sista_tal gå till summa = summa + tal 700 tal = tal gå till skrivut (summa); slut program predikatuttryck hoppsats repetitionssats Samma exempel beskriven med en procedur procedur summera (in tal, in sista_tal, ut summan); summan = 0; repetera tills tal > sista_tal summan = tal + summan; tal = tal + 1; slut-repetera; returnera; slut_procedur; avsluta procedur formella parametrar program summera_talen_mellan; läsin (först_tal); aktuella parametrar läsin (sista_tal); summera (första_tal, sista_tal, summa); skrivut (summa); slut_program; värde från proceduren Samma exempel beskriven med en rekursiv funktion (som gör en rekursiv processlösning) funktion summera (tal, sista_tal); om tal > sista_tal returnerar ett värde returnera 0 annars returnera tal + summera (tal + 1, sista_tal); slut_funktion; program summera_talen_mellan; läsin (första_tal); läsin (sista_tal); skrivut (summera (första_tal, sista_tal)); slut_program;

6 21 22 Historiska utvecklingen (CS Fig 6.2) 50- och 60-talet Maskinspråk Assemblyspråk flödesschema -programmeringen Imperativa programspråk Fortran språk för numeriska beräkningar Cobol språk för administrativa ändamål Algol inför blockstruktur, underprogram, rekursion PL/I inför processer, pekare och länkade strukturer Simula kommer med objektorientering med klasser och hierarkier (40 år för tidigt!) Maskinspråk (CS 6.1) Assemblyspråk Maskinberoende Först bara numeriska koder och adresser i minnet, sedan införs mnemoniska namn på dessa koder och identifierare, namn på minnesutrymmen. En assemblator översätter dessa namn till koder. LOAD ADD MULT STORE LOAD JMPZE EXCH Areg, a Areg, b Areg, c Areg, d Breg, a Breg, start Areg, Breg där LOAD etc är mnemoniska namn på operationskoder och a, b etc symboliska namn på direkta minnesadresser flödesscheman -> strukturerad programmering flödesscheman - program konstrueras från flödesscheman som byggs upp av boxar, val och pilar. bild som visar Fortran - pilarna anger hopp (goto) i programmet spagetti-programmering goto considered harmfull strukturerad programmering (Wirth) - program konstrueras av 3 byggblock sekvens, repetition/iteration, val - goto förbjudet

7 25 26 bild som visar Algol Bild som visar Algol Bild som visar Cobol Bild som visar Cobol

8 29 30 CS Fig talet Basic kommer som mycket enkelt språk och som interaktivt språk Pascal. Repetitionsstrukturer, egendefinierade datatyper och strukturerade program C växer fram som systemimplementationsspråk för bl a Unix Ada. Den samlade erfarenheten efter 20 år ligger till grund för Ada som tas fram av en kommitté med paket, gömma representation, processer, generiska underprogram och paket 80-talet C++ tar över objektorientering. Visual Basic, Delphi mfl som underlättar programmering av användargränssnitt 90-talet Java. Internetspråket, portabilitet, stora programbibliotek (API). Idag konkurrent till C++. C# (C-sharp) Microsofts svar på Java. Pearl, Python, Ruby dynamiska språk och text/wwwbaserade språk med ökande spridning SEKVENS begin s1; s2 end s1 s1 s2 p s2 while p do s p s REPETITION Det fär bara finnas en ingång och en utgång till varje strukturprimitiv. Varje låda kan bytas ut mot en ny strukturprimitiv VAL if p then s1 else s Problemet delas upp i funktionella mindre delar Ada Stepwise refinement (Wirth) Levels of abstraction (Dijkstra, Liskov) Top-down design - fokusera på algoritmen - nedbrytning av problemet sker med de strukturerade primitiverna Strategi top-down: 1. Formulera funktionen för hela problemet 2. Dela upp i delproblem 3. Fortsätt tills primitiva operationer har uppnåtts, t ex satser i ett programspråk

9 33 34 Pascal Basic C++ Python numbers = [] for number in range(100): numbers.append(str(number) + "\n") open("filnamn", "w").writelines(numbers) Indenteringen styr hur satser hänger samman (block), som i andra språk kan ha begin... end eller måsvingar { }

10 37 38 Abstrakta datatyper - specificera vilka värden/objekt som ingår i den abstrakta datatypen (se en datatyp som en mängd värden/objekt) - specificera vilka operationer som kan utföras på objekten - beskriv strukturen på värdena/objekten - separerar representationen med operationerna - möjliggör att ändra representation utan att tillämpningsprogrammen behöver ändras - gömma representationen (information hiding, encapsulation) Konstruktioner i programspråk Vanliga primitiva operationer är: konstruktorer (constructors) - skapar objekt skapa-datum, skapa-bil, skapa-tom-tabell, skapa-binärt-träd selektorer (selectors) - tar ut delarna av objekt dag, månad, antal-dörrar, vänster-del-träd igenkännare (recognizers) - testar på datatyp datum? bil?, löv? ändrare (mutators) - ändrar i objekt öka-dagnummer, ändra-namn, lägg-till-på-stack iteratorer (iterators) - går igenom alla elementen i ett objekt för-varje-element, för-varje-dörr - abstrakta datatyper är grunden för objektorienterad programmering genom begreppet klass Objektorienterad programmering (CS 6.5) Fokus på dataobjekten (ej som tidigare på algoritmerna och de funktionella delarna) Studera tillämpningen, identifiera vilka dataobjekt som finns och kategorisera dessa. Från dessa bildas klasser/abstrakta datatyper och hierarkier mellan dessa datatyper. bilar: volvo, saab, opel,... lastbilar: scania,... bussar:.. Alla objekten i en klass har gemensamma egenskaper. En överordnad klass för dessa tre klasser kan vara fordon. Man skapar hierarkier av datatyper. Man kan ärva (inheritance) egenskaper från en överordnad klass. Objektorienterad programmering Program beräknas genom att dataobjekten kommunicerar med varandra genom meddelandesändning. Genom att skicka meddelandet "skriv-ut till ett objekt önskar man att objektets värde eller identitet skall skrivas ut på t ex terminalen. Objektorienterade designmetoder UML - Unified Modeling Language med grafiska symboler Objektorienterade programspråk Simula, Smalltalk, C++, Ada, Java, C#, Python Ruby

11 41 42 Deklarativ programmering Idealiserat: Skriv en specifikation som anger vad du skall göra och låt programmeringssystemet bestämma hur. Basera specifikationen på ett formellt system. Funktionell programmering: matematik. Funktioner och uttryck. Exekveringsmodell: beräkning som i matematik beräkna argument, applicera funktion Funktionella språk: pure Lisp, ML, Haskell Logikprogrammering: predikatlogik. Fakra som predikat och regler som logiska uttryck. Om A är FAR till B, och B är FAR till C, så är A FARfarTILL c Exekveringsmodell: slutsatsdragning (resolution) som i predikatlogik eller djupet först-sökning i träd Logikprogrammeringsspråk: (CS 6.7): Prolog, numera i kombination med constraint i form av samband. Lisp / Scheme Lisp (Johan McCarthy 1960) med dialekter Scheme och Common Lisp Har utvecklats inom forskningen för artificiell intelligens och runt programmeringshjälpmedel. används numera: - som grundläggande språk i många datautbildningar - som inbyggda språk i editorer (t ex emacs) och CAD-system (t ex AutoCAD) - som utvecklingsmiljö för dataspel Lisp har en speciell syntax, parenteser Data är vanligen listor. Program-data ekvivalens. Program representeras även det som data, Funktionella språk Program skrivs ofta som rekursiva funktioner: { 1 om n = 0 n! = n*(n-1)! om n>0 (defun fak (n) (if (= n 0) 1 (* n (fak (- n 1))))) Data representeras ofta som skevenser eller trädstrukturer (binära träd) { 0 om sekvensen är tom längden (s) = 1 + längden(rest (s)) där rest(s) betyder sekvensen utom det första elementet. Funktionell programmering binära träd Formeluttryck, t ex aritmetiska uttryck kan lätt överföras till trädstrukturer. (2 + 4) * (/ (- 8 2) 3) * Att summera uttrycket kan göras med en binär-trädalgoritm: summera(uttr) = { uttr om uttr är ett tal (dvs löv) = summera(vänster(uttr)) + summera(höger(uttr)) om operatorn är + summera(vänster(uttr)) - summera(höger(uttr)) om operatorn är - etc / 3

12 45 46 Beräkning / exekvering av program (CS sid 228, 6.4) Två modeller: Kompilator (compiler): Översätter program till ett annat programspråk, vanligen maskinspråk (datorns hårdvara). Det översatta programmet kallas då för objektprogram. Detta kan i sin tur exekveras på datorn. De flesta språk är kompilerande. Interpretator (interpreter): Programmet representeras i en internstruktur som direkt beräknas. De Lisp-baserade språken är ofta interpreterande. Interpretatorn kan i sin tur vara skrivet i godtyckligt programmeringsspråk. Många interpreterande språk har även kompilator. Beräkning / exekvering av program En nackdel med kompilator är att man behöver en kompilator för varje datortyp (med olika maskinspråk). För att erhålla maskinoberoende (plattformsobereonde) har man för Java följande strategi: Java kompileras till en mellannivå (Java Virtuella Maskinspråk). (CS sid 262) Denna mellannivå interpreteras av en Java Virtuell Maskininterpretator. Denna interpretator måste finnas för varje datortyp (och ingår t ex i web-läsaren). Denna mellannivå kan i sin tur kompileras till maskinkod (just-in-time kompilering) Typning i programspråk Typning i programspråk Många språk är sk statiskt typade språk (Ada, C++, Java). Det betyder att användaren i programmet deklarerar vilken typ en variabel, parametrar och funktioners värde har. Kompilatorn kan då i ett försteg göra alla kontroller så att programmet är typkorrekt, dvs alla typfel upptäcks innan exekveringen. Antag att + är definierat att ta tal som argument deklarera s : tecken; s := 100;... s När programet är typkorrekt och har kompilerats så kan man i maskinkoden förutsätta att de data som olika instruktioner får är korrekta. En viktig fråga i ett språk är vad för slags typer kan skapas, dvs definieras. Stark typning kan ibland medföra svårigheter, t ex att skriva generella procedurer (Pascal-problemet). Vi har en lista med godtyckliga element. Vi vill räkna antalet element. En sådan procedur borde kunna ta alla listor, eftersom elementens datatyp ej är av intresse, då de endast skall räknas. Alla språk kan ej skriva en sådan generell procedur. Sedan har vi klassen dynamiskt typade språk (Lisp, Python, Ruby). Här kan en variabel antaga vilket värde som helst. Från själva dataobjektet måste typen kunna härledas (typmärkning). Varje operation måste sedan under exekveringen testa på att argumenten är av rätt typ. Här kan vi skriva en generell procedur som räknar alla elementen i en lista med godtryckliga element, Båda modellerna ger för- och nackdelar. I objektorienterade språk har man genom möjligheten med att skapa typhierarkier kunnat lösa detta problem med generella procedurer och möjligheten att kontrollera typer. Där finns en överordnat typ, t ex object, där alla andra typer är underordnade. Jag kan då skriva den generella proceduren som tar en lista, där elementen är av typen object. Denna funktion anropas sedan normalt med en lista med någon specifik typ, t ex en lista med tal eller en lista med strängar.

Exempel på typer av datorspråk EXCEL

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

Imperativ programmering

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

Föreläsning 2. Operativsystem och programmering

Föreläsning 2. Operativsystem och programmering Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data

Läs mer

Introduktion till programmering. Programspråk och paradigmer

Introduktion till programmering. Programspråk och paradigmer Introduktion till programmering Programspråk och paradigmer Vad är ett programspråk? Aprogramming languageis a formal constructedlanguagedesigned to communicate instructions to a machine, particularly

Läs mer

Program & programmering

Program & 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 mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering 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

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 1 2 TDDC66 Datorsystem och programmering TDDC67 Funktionell programmering Programmering i Lisp, examinator TDDC67 föreläsare i Lisp Peter Dalenius examinator TDDC66 kursassistent i Lisp + ett stort antal

Läs mer

DD1361 Programmeringsparadigm. Carina Edlund

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

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 1 2 Dagens föreläsning Modeller för programmeringsspråk Interpretator - att interpretera ett program - att beräkna ett program - Olika modeller programspråk Interpretator - kompilator program i S interpretator

Läs mer

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2

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

Dagens föreläsning Programmering i Lisp Fö 5

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

Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19

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

TDP002 Imperativ programmering

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

Dagens föreläsning. Modeller för programmeringsspråk. - Olika modeller programspråk Interpretator - kompilator. - Syntax - semantik.

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

Typsystem. Typsystem... Typsystem... Typsystem... 2 *

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

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner

Läs mer

TDP002 - Imperativ programmering

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

Exempel på ett litet Ada-program

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

TDP002 - Imperativ programmering

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

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 1 2 - Block, räckvidd Dagens föreläsning Programmering i Lisp - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning - Felhantering (kap 17) icke-normala återhopp catch

Läs mer

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg Introduktion till programmering D0009E Föreläsning 1: Programmets väg 1 Vad är en dator? En maskin vars beteende styrs av de innehållet (bitmönster) som finns lagrade i datorns minne (inte helt olikt förra

Läs mer

Dagens föreläsning. Diverse Common Lisp. Konstanter, parametrar, globala variabler

Dagens föreläsning. Diverse Common Lisp. Konstanter, parametrar, globala variabler 21-1-2 1 Dagens föreläsning Hur fungerar ett Lisp system intern struktur av symbolen, tal, listan pekare - delade strukturer - eq minneshantering fri lista - sophämtning/garbage collection stack Diverse

Läs mer

Fö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 DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

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

Sista delen av kursen

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

Programspråkslingvistik. Sista delen av kursen. Ett programspråk

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 mer

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.

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

Sista delen av kursen

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

Prova på-laboration i Ada

Prova på-laboration i Ada Prova på-laboration i Ada Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2006-09-01 1. Introduktion till imperativa språk Programspråket Ada är resultatet av ett

Läs mer

Föreläsning 1: Intro till kursen och programmering

Föreläsning 1: Intro till kursen och programmering Föreläsning 1: Intro till kursen och programmering Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/vt11 Studentportalen http://www.studentportalen.uu.se Lärare: Tom Smedsaas, Tom.Smedsaas@it.uu.se

Läs mer

Introduktion 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? Introduktion till objektorientering Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? TDDD78, TDDE30, jonas.kvarnstrom@liu.se 729A85 jonas.kvarnstrom@liu.se

Läs mer

PROGRAMMERINGSMETODIK

PROGRAMMERINGSMETODIK PROGRAMMERINGSMETODIK 1 Metaforer för programmering Hierarki, modularitet, överblick Programbyggnadskunskap Utvecklingsprocessen Kategorier av programspråk Programmering som allmän konst Metaforer för

Läs mer

Imperativ programmering. Föreläsning 2

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

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Introduktion till Java -- för Pythonprogrammerare Historia: C, C++ 3 Historia: Oak 1 4 1990: Sun Microsystems påbörjade projekt StarSeven Avancerad

Läs mer

Programmera 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?? 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 mer

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

Läs mer

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo Objektorienterade språk Historik Simula 67 Smalltalk 80 Procedurorienterad programmering Subprogram Programbibliotek Dataorienterad programmering Abstrakta datatyper Objektbaserade språk, föregångare till

Läs mer

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Exempel på tentafrågor på boken Lunell: Datalogi-begreppen och tekniken Obs! Andra frågor än dessa kan komma på tentan! 1. Konvertera talet 186 till

Läs mer

Parameteröverföring. Exempel. Exempel. Metodkropp

Parameteröverföring. Exempel. Exempel. Metodkropp Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I

Läs mer

Imperativ programmering. Föreläsning 3

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

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning

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

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator Viktiga begrepp Den här ordlistan är till för dig som går kursen Om Programmering. Eftersom detta är en grundläggande kurs har vi i vissa fall gjort en del förenklingar. En del begrepp är svåra att förenkla,

Läs mer

Föreläsning 1: Intro till kursen och programmering

Föreläsning 1: Intro till kursen och programmering Föreläsning 1: Intro till kursen och programmering λ Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/mafykht11/ λ Studentportalen http://www.studentportalen.uu.se UNIX-konton (systemansvariga

Läs mer

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

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

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

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

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

ITK: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 mer

Tentamen i. TDDC67 Funktionell programmering och Lisp

Tentamen i. TDDC67 Funktionell programmering och Lisp 1 Linköpings tekniska högskola Institutionen för datavetenskap Anders Haraldsson Tentamen i TDDC67 Funktionell programmering och Lisp och äldre kurser TDDC57 Programmering, Lisp och funktionell programmering

Läs mer

TDDE44 Programmering, grundkurs

TDDE44 Programmering, grundkurs TDDE44 Programmering, grundkurs Föreläsning 1 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Vad ingår i "Programmering, grundkurs"? Kursöversikt Datorer, program, programmeringsspråk Kort om nästa föreläsning

Läs mer

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Introduktion till Java -- för Pythonprogrammerare Historia: C, C++ 3 Historia: Oak 1 4 1990: Sun Microsystems påbörjade projekt StarSeven Avancerad

Läs mer

Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt

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

Kompilatorteknik. Görel Hedin Datavetenskap Lunds Tekniska Högskola. Temaföreläsning, Datorer i system, 2014

Kompilatorteknik. Görel Hedin Datavetenskap Lunds Tekniska Högskola. Temaföreläsning, Datorer i system, 2014 Kompilatorteknik Görel Hedin Datavetenskap Lunds Tekniska Högskola Temaföreläsning, Datorer i system, 2014 En typisk kompilator programkod while (a >= 0) { } kompilator maskinkod 0024 6050 2530 0000 0000

Läs mer

Imperativ programmering. Föreläsning 4

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

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

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.

Läs mer

SMD 134 Objektorienterad programmering

SMD 134 Objektorienterad programmering SMD 134 Objektorienterad programmering Lärare: pl@cdt.luth.se A 3113 Tomas Klockar klockar@sm.luth.se A 3019 Mats Folke folke@sm.luth.se A 3019 Labhandledare: Natasja Saburova Fredrik Jonsson Lars Persson

Läs mer

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

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

Imperativ programmering. Imperativ programmering konstruktioner i Lisp. Datastrukturer (kap ) arraystruktur poststruktur

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

Språket Python - Del 1 Grundkurs i programmering med Python

Språket Python - Del 1 Grundkurs i programmering med Python Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i

Läs mer

Dataabstraktion. TDDD73 Funktionell och imperativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap

Dataabstraktion. TDDD73 Funktionell och imperativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap Dataabstraktion TDDD73 Funktionell och imperativ programmering i Python Föreläsning 12 Peter Dalenius Institutionen för datavetenskap 2014-11-19 Översikt Vad är abstraktion? Vad är en abstrakt datatyp?

Läs mer

Introduktion till programmering och Python Grundkurs i programmering med Python

Introduktion till programmering och Python Grundkurs i programmering med Python Introduktion till programmering och Python Hösten 2009 Dagens lektion Vad är programmering? Vad är en dator? Filer Att tala med datorer En första titt på Python 2 Vad är programmering? 3 VAD ÄR PROGRAMMERING?

Läs mer

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

SMD 134 Objektorienterad programmering

SMD 134 Objektorienterad programmering SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning

Läs mer

Pascal... Pascal. Pascal... Pascal...

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

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och... Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax Ett teleskopord för «matrix laboratory»

Läs mer

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning. Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java

Läs mer

Föreläsning 3: Booleans, if, switch

Fö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 mer

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java bild 1 Objektorienterad programmering i Java Föreläsning 1 Kapitel 1-3 i kursboken Java Software Solutions bild 2 Läsanvisningar Kapitel 1 är en repetition av det ni förväntas kunna sedan tidigare. Det

Läs mer

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 1 2 Grundläggande datavetenskap, IT1 Perspektiv på datateknik, D1 Perspektiv på datavetenskap, C1 Breddföreläsning orientering om: formella språk grammatik parsing Att läsa mer: Brookshear, Computer Science

Läs mer

Deklarationer/definitioner/specifikationer

Deklarationer/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 mer

Abstrakta datatyper. Dagens föreläsning. Abstract data types (ADT)

Abstrakta datatyper. Dagens föreläsning. Abstract data types (ADT) 1 2 Dagens föreläsning TDDC67 Funktionell programmering och Lisp Fö 8 och 9 Dataabstraktion - Abstrakta datatyper - datatypbeskrivning - datatyplikhet - sammansättningar av datatyper med sekvens, tupel,

Läs mer

Dagens föreläsning. TDDC67 Funktionell programmering och Lisp Fö 8 och 9

Dagens föreläsning. TDDC67 Funktionell programmering och Lisp Fö 8 och 9 1 Dagens föreläsning TDDC67 Funktionell programmering och Lisp Fö 8 och 9 Dataabstraktion - Abstrakta datatyper - datatypbeskrivning - datatyplikhet - sammansättningar av datatyper med sekvens, tupel,

Läs mer

Algoritmer och interaktiv Python

Algoritmer och interaktiv Python Algoritmer och interaktiv Python Linda Mannila 11.9.2007 Denna föreläsning Räkneövningstider Algoritmer Interaktiv Python Datatyper Variabler Typning Repetition Vad vi än skall göra måste vi veta hur vi

Läs mer

TDDC74 Programmering, abstraktion och modellering. Tentamen

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

n Detta för att kunna koncentrera oss på n Tal: number? n Symboler: symbol? n Strängar: string? n Tecken: char? n Boolskt: boolean?

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

Deklarativ programmering

Deklarativ programmering Kursens mål Deklarativ programmering Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap Linköpings universitet 2008-02-26 redogöra för och använda reguljära uttryck använda XML för att definera

Läs mer

Användar- och systemdokumentation

Användar- och systemdokumentation Användar- och systemdokumentation Linköpings universitet Examinator:, IDA marme647@student.liu.se Utskriftsdatum: Innehållsförteckning Inledning... 3 Användarhandledning... 4 Systemkrav och installation...4

Läs mer

Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014

Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014 Introduktion till Datalogi DD1339 Föreläsning 1 8 sept 2014 Kontaktuppgifter & Info: Kurskod: DD1339, 19hp Kursomgång: inda14 Kursansvarig: Christian Smith, ccs@kth.se Michael Minock, minock@kth.se Dilian

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Aletta Nylén http://user.it.uu.se/~aletta Epost: aletta.nylen@it.uu.se Rum: 1216 Kursinfo Lärare: Aletta Nylén Jesper Wilhelmsson Litteratur: Object-Oriented Software Development

Läs mer

Tentamen. 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, 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 mer

Sammansatta datatyper Generics: Parametrisk polymorfism

Sammansatta datatyper Generics: Parametrisk polymorfism jonas.kvarnstrom@liu.se 2017 Sammansatta datatyper Generics: Parametrisk polymorfism Listor och arrayer 2 Enligt TDDD73: Många språk har både listor och arrayer även Java och Python! Exakta definitioner

Läs mer

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin) Lektion Java Grunder Javas historia Ursprungligen utvecklades Java (1991) för att användas i olika typer av konsumentelektronik (mikrovågsugnar, videoapparater) av programmerare på Sun. Språket kallades

Läs mer

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT 2013 1 / 33

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT 2013 1 / 33 Programmering i C++ EDA623 Objektorienterad programutveckling EDA623 (Föreläsning 5) HT 2013 1 / 33 Objektorienterad programutveckling Innehåll Grundläggande begrepp Relationer mellan objekt Grafisk representation

Läs mer

Programmeringsteknik II

Programmeringsteknik II Programmeringteknik II Kursintroduktion http://www.it.uu.se/edu/course/homepage/prog2/vt18/ 2018-03-19 Programmeringsteknik II 2018-03-19 1 / 9 Lärare Carl Nettelblad (kursansvarig) Anna Eckerdal Biträdande

Läs mer

TDDC74 Programmering, abstraktion och modellering DUGGA 2

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

Introduktion 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? Introduktion till objektorientering Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? jonas.kvarnstrom@liu.se 2014 2017 jonas.kvarnstrom@liu.se

Läs mer

Föreläsning 5 5DV086 - Programspråk

Föreläsning 5 5DV086 - Programspråk Föreläsning 5 5DV086 - Programspråk Petter Ericson (pettter@cs.umu.se) Umeå University 6 februari, 2015 Haskell-frågor? Haskell-tips do-syntax State-monaden Dagens plan Programspråksteori Varför? Vad?

Läs mer

Välkomna till NADA. Paradigm i datalogin. Vad är ett paradigm

Vä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 mer

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.axelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

Läs mer

Dagens föreläsning Programmering i Lisp Fö 7. Sammanfattning funktionell programmering Exempel på funktionella programspråk

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

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser Introduktion till programmering Föreläsning 2: Variabler, uttryck och satser 1 1 Värden De grundläggande saker som en dator manipulerar resultaten av beräkningar kallas värden Värden vi stött på: 2 och

Läs mer

Datorspråk Breddgivande föreläsning

Datorspråk Breddgivande föreläsning 1 2 TDDC10 Perspektiv på datateknik/datavetenskap TDDC79 Perspektiv på informationsteknologi TDP001 Handhavande av datormiljö (D, IT, C, IP) Datorspråk Breddgivande föreläsning språk med textuell representation

Läs mer

Variabler, värden och typer

Variabler, värden och typer Variabler, värden och typer Viktigt att förstå på djupet: För programmering i många språk, t.ex. Java För kommande objektorientering! TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Fråga kommentera

Läs mer

IT för personligt arbete F6

IT för personligt arbete F6 IT för personligt arbete F6 Datalogi del 2 DSV Peter Mozelius Datarepresentation Det som lagras i en dator representeras i grunden som 1:or och 0:or Dessa binära värden kan sedan tolkas på olika sätt i

Läs mer

Prova på-laboration i Ruby

Prova på-laboration i Ruby Prova på-laboration i Ruby Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2008-08-06 1. Introduktion till objektorienterade språk Programmeringsspråket Ruby började

Läs mer

Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs

Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera först talet 37 med 2. Använd heltalsdivision. Det ger kvoten

Läs mer

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

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