Exempel på typer av datorspråk EXCEL
|
|
- Per-Olof Åström
- för 8 år sedan
- Visningar:
Transkript
1 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, kap 6 (CS) 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: 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 Programmeringsparadigmer (CS 6.1) 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. 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, 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 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 strängar (string), arraystrukturer (array, homogeneous array?), poster (record, heterogeneous array? (CS Fig 6.7), listor 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
4 13 14 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 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
5 17 18 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; 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 (30 å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. - 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
6 21 22 bild som visar Fortran bild som visar Algol Bild som visar Algol Bild som visar Cobol
7 25 26 Bild som visar Cobol 70-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 mfl som underlättar programmering av användargränssnitt 90-talet Java. Internetspråket, portabilitet, stora programbibliotek (API) C# (C-sharp) Microsofts svar på Java. Pearl, Python text/www-baserade språk CS Fig 6.8 s1 Problemet delas upp i funktionella mindre delar s2 p Stepwise refinement (Wirth) Levels of abstraction (Dijkstra, Liskov) Top-down design SEKVENS begin s1; s2 end while p do s s REPETITION - fokusera på algoritmen - nedbrytning av problemet sker med de strukturerade primitiverna s1 p s2 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 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 VAL if p then s1 else s2
8 29 30 Ada Pascal Basic C++
9 33 34 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, identidiera 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#
10 37 38 Idealiserat: Deklarativ programmering Skriv en specifikation som anger vad du skall göra och låt programmeringssystemet bestämma hur. Basera specifikationen på formellt system. Funktionell programmering: matematik Logikprogrammering: predikatlogik Funktionella språk: pure Lisp, ML, Haskell Logikprogrammeringsspråk: Prolog Deklarativ programmering Exekveringsmodellen för språken skiljer sig från andra språk. funktionella språk: beräkning som i matematik beräkna argument, applicera funktion logikprogrammeringsspråk: (CS 6.7) slutsatsdragning (resolution) som i predikatlogik eller djupet först-sökning i träd 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 representeras även det som data, dvs som listor. 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.
11 41 42 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 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) Formella språk (CS 6.4) Hur är språket uppbyggt? 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))))
12 45 46 Formella språk Ett formellt språk måste vara entydigt. 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 fö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? 3+5*5 (3+4)* = ((3-4) - 5) eller (3 - (4-5)) I ett logiskt uttryck, beräknas alla delarna? (a = 0) eller (x/a > 10)
Exempel på typer av datorspråk EXCEL
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
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 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 merDagens 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 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 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 merFö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 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 merIntroduktion 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 merSMD 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 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 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 merUniversitetet 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 merParameterö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 merFö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 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 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 merDagens 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 för ingenjörer, VT06 2 Repetition Repetition -
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 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 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 merProgramsprå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 merDagens 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 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 merSMD 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 merProgrammeringsteknik med C och Matlab
Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga
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 merIntroduktion 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 merPROGRAMMERINGSMETODIK
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 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 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 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 merTDIU01 - 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 merIT 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 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 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 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 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 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 merObjektorienterad programmering
Objektorienterad programmering Emil Ahlqvist (c10eat@cs.umu.se) Didrik Püschel (dv11dpl@cs.umu.se) Johan Hammarström (c08jhm@cs.umu.se) Hannes Frimmel Moström (c10hml@cs.umu.se) 1 1. Introduktion 1.1 Objektorienterad
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 merUniversitetet 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 merSätt att skriva ut binärträd
Tilpro Övning 3 På programmet idag: Genomgång av Hemtalet samt rättning Begreppet Stabil sortering Hur man kodar olika sorteringsvilkor Inkapsling av data Länkade listor Användning av stackar och köer
Läs merKompilatorteknik. 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 merUniversitetet 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 merTentamen 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 merFöreläsning 4: Poster
Föreläsning 4: Poster Följande är genomgånget: type Person_Type is Namn : String(30); Skonr : Float; Kon : Boolean; Diskussion runt detta med olika typer m.m. Har tagit upp vilka operationer man kan göra
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 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 merInledande programmering med C# (1DV402) 27+15=42 1 (22)
27+15=42 1 (22) Variabler Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll
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 merObjektorienterad 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 merEDAA20 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 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 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. 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 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 merAbstrakta 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 merDagens 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 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 merMATLAB. 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 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 merObjektorienterad 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 merPROGRAMMERINGSMETODIK
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 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 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 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 merDataabstraktion. 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 mer6. 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 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 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 merIntroduktion till Haskell
Introduktion till Haskell Elias Riedel Gårding NMA11, Teknisk Fysik (KTH) 2014 18 februari 2018 Elias Riedel Gårding (NMA11, F14) Introduktion till Haskell 18 februari 2018 1 / 29 Om Haskell Historik 1927:
Läs merIntroduktion 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 merVem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset)
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 merGenicore AB. Modellbaserad ansats. En liten firma i Göteborg som gör stora datasystem. Systemspråk - När modellen är systemet. torsdag 10 maj 2012
Genicore AB En liten firma i Göteborg som gör stora datasystem Modellbaserad ansats Systemspråk - När modellen är systemet 1 Core Modellbaserad ansats i 3 delar Metodik Språk System Datateknik 3:e generationen
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 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 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 merSprå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 merProgrammering 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 merProgrammering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg niklas.broberg@chalmers.
Programmering Seminarier i datavetenskap, datorteknik och informationsteknik Niklas Broberg niklas.broberg@chalmers.se 2015-09-24 Hur många från Datavetenskap? Datateknik? Informationsteknik? Översikt
Läs merProva 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 merEDAA20 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 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 merAlgoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm.
Algoritmanalys Analys av algoritmer används för att uppskatta effektivitet. Om vi t. ex. har n stycken tal lagrat i en array och vi vill linjärsöka i denna. Det betyder att vi måste leta i arrayen tills
Läs merTwincat: PLC Control
Dokument Förklaring Dat. Revision KI-221-003-003 Kom igång med trukturerad Text 080402 1.0 Twincat: PLC Control Kom igång med Strukturerad Text (ST) programmering 1. Kod exempel. a. Exemplen som demonstreras
Läs merProgrammering 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 merFöreläsning 10. ADT:er och datastrukturer
Föreläsning 10 ADT:er och datastrukturer ADT:er och datastrukturer Dessa två begrepp är kopplade till varandra men de står för olika saker. En ADT (abstrakt datatyp) är just abstrakt och är inte kopplad
Läs merGrunderna i stegkodsprogrammering
Kapitel 1 Grunderna i stegkodsprogrammering Följande bilaga innehåller grunderna i stegkodsprogrammering i den form som används under kursen. Vi kommer att kort diskutera olika datatyper, villkor, operationer
Läs merTDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDI02 Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Verifikation, Validering och Testning XP Extreme Programming Vad är ett fel? I engelskan
Läs merDaniel Karlsson (c11dkn@cs.umu.se) Jonas Markström (c11jmm@cs.umu.se) Oskar Mårtensson (c11omn@cs.umu.se) Patrik Nordström (c04pnm@cs.umu.
UMEÅ UNIVERSITET 3 februari 2014 Institutionen för Datavetenskap Laborationsrapport Efterforskning om ett programspråk Programspråk 5DV086 FORTH Daniel Karlsson (c11dkn@cs.umu.se) Jonas Markström (c11jmm@cs.umu.se)
Läs merProgrammering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/
Programmering för språkteknologer II, HT2014 Avancerad programmering för språkteknologer, HT2014 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Idag - Hashtabeller
Läs merTDDE44 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 merTentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012
1 of 6 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen
Läs merLABORATION 1. Inledande Lisp - rekursion
AI - Lisp / Laboration 1 - Inledande Lisp - rekursion 1 LABORATION 1 Inledande Lisp - rekursion 1.0 LABFÖRORD Detta labbmaterial ger dig introduktion till Lisp för att kunna använda programmeringsspråket
Läs merObjektorienterad programmering D2
Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste
Läs merIntroduktion 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Ö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 merTENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: 13-06-05 Tid: kl 16.00-20.
Umeå Universitet Datavetenskap Anders Broberg 130605 TENTAMEN Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg VT-13 Datum: 13-06-05 Tid: kl 16.00-20.00 Namn: Personnummer:
Läs mer