2002-11-22F. Drewes, Inst. f. datavetenskap1 Föreläsning 7: Uttryck och sidoeffekter Uttryck Sidoeffekter Överladdning Tilldelningar i uttryck.

Slides:



Advertisements
Liknande presentationer
F. Drewes, Inst. f. datavetenskap1 Föreläsning 13: Resolution •Resolution i satslogiken •Resolution i predikatlogiken.
Advertisements

Att förstå anonymiteten (översättning från
Eskilstuna, Mälarsjukhuset Karin Lundberg AT-läkare
Multiplicera lika tal med 2 siffror som slutar på 5
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella.
Operatorer.
Repetition inför kursstart FDL
Föreläsning 2. Operatorer Tilldelning Kodblock { } if – satsen Logiska uttryck Att programmera.
Att programmera i språket Java
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Spara pengar! Några ekonomitips. Spara varje dag Du kan spara många sköna slantar om du tar med lunch hemifrån till jobbet eller skolan.Att äta ute varje.
Lokal Pedagogisk Planering
Stora additionstabellen
Programmering B PHP Lektion 2
INFÖR NATIONELLA PROVET
Föreläsning 11 Arrayer.
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT C++ - förbättrat C?  Procedurellt program ser ut som C: sekvens, selektion, iteration  /* kommentar.
Programmering B PHP Lektion 3
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Skrivarskolan KÄLLHÄNVISNING.
Sökrummet. ”På så sätt ska undervisningen bidra till att eleverna utvecklar ett kritiskt tänkande kring sina egna resultat, andras argument och olika.
TÄNK PÅ ETT HELTAL MELLAN 1-50
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 6: Semantik Statisk semantik Attributgrammatiker Dynamisk semantik Axiomatisk.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 10: Objektorientering Objektorientering och abstrakta datatyper Dynamisk bindning Singel mot multipelt.
Bygg ett argumenterande tal
Metoder och slingor Metoder och dess typ Slingor med while och for-satser.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
Arrayer och strängar Arrayer Strängar operatorer typkonvertering.
Sista föreläsningen! IndEkEnt, Vt Om betygsgränser tentamen. 5:a = 70 – 80 p 4:a = 55 – 69p 3:a = p Tenta 22:e kl se ING.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella språk LISP, ML och.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 1: Inledning administrativt o dyl kursens mål varför programspråksteori? språkkategorier användningsområden.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Ingenjörsmetodik IT & ME 2008
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 4 ( ) INNEHÅLL: -Logiska operatorer och logiska uttryck -Referenstyper.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 4: Syntaxdefinition Formell syntaxdefinition Lexikalisk och kontextfri syntax Flertydighet i kontextfri.
KNÄCKNING STELA BALKAR INSTABILITETSFENOMENET
F. Drewes, Inst. f. datavetenskap1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
Räkna till en miljard 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14,15,16,17,18,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, En miljard är ett.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Repetitionssatser: do-satsen och for-satsen -Operatorer:
Institutionen för matematik, KTH Mats Boij 5B1200 Differentialekvationer och transformer 11 mars B1200 Differentialekvationer och transformer I,
Aritmetik 3.4 M 8.2 E 2.2. dagens föreläsning operatorer för aritmetik tillämpningar.
1 Mönstermatchning och rekursion Nr 4. 2 Förenklad notation val fnname = fn name => expression Förenklas till fun fnname name = expression Exempel fun.
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
OOP F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 9: Implementering av underprogram Aktiveringsposter Exekveringsstacken Implementera dynamisk räckvidd.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 12: -kalkylen allmänt om -kalkylen syntax semantik att programmera i -kalkylen.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer.
Institutionen för matematik, KTH Mats Boij 5B1200 Differentialekvationer och transformer 29 april B1200 Differentialekvationer och transformer I,
F. Drewes, Inst. f. datavetenskap1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden.
Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 5: Syntaxanalys (parsning) Syntaxanalysens mål Tillvägagångssätt och komplexitet Syntaxanalys.
Föreläsning 14 Logik med tillämpningar Innehåll u Cuts och negation u Input/output u Extralogiska predikat u Interaktiva program, failure-drivna.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 12: -kalkylen allmänt om -kalkylen syntax semantik att programmera i -kalkylen.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
OOP&M - teori1 OOP&M – Föreläsning 5 kap 8-13 Operatorer,typkonvertering, booleska operatorer, if och else.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 4: Syntaxdefinition Formell syntaxdefinition Lexikalisk och kontextfri syntax.
Toppen – vi använder hela kroppen! Några exempel på bilder och aktiviteter från föreläsningen vid Matematikbiennetten i Malmö den 7 mars 2009 Taluppfattning:
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 13: Resolution Resolution i satslogiken Resolution i predikatlogiken.
Anders Sjögren Operatorer. Anders Sjögren Operand(er)
Språk och makt. Språk är makt Inre spegel IdentitetVärld.
ALGEBRA, BRÅK, PROCENT, DECIMALTAL
Formell logik Kapitel 7 och 8
Föreläsning 3: Booleans, if, switch
Y 1.5 Potenser 3 ∙ 3 ∙ 3 ∙ 3 ∙ 3 = 35 Vad är en potens?
Det handlar om multiplikation
Presentationens avskrift:

F. Drewes, Inst. f. datavetenskap1 Föreläsning 7: Uttryck och sidoeffekter Uttryck Sidoeffekter Överladdning Tilldelningar i uttryck

F. Drewes, Inst. f. datavetenskap2 Uttryck Några vanliga typer av uttryck  aritmetiska uttryck handlar om tal (+, ,…)  booleska uttryck handlar om sanningsvärden (&&, ||, …)  relationsuttryck jämför värden (<, =, …)  konditionala uttryck väljer mellan alternativ (t.ex. i Java even(x) ? x : x+1) Ett uttryck är en notation som står för ett värde. Uttryck innebär abstraktion: Programmeraren behöver inte syssla med instruktionssekvensen som räknar ut värdet. Uttryck bör helst sakna effekt!

F. Drewes, Inst. f. datavetenskap3 Sidoeffekter Exempel: utvädera x – x++ + x i Java Utan sidoeffekter är evalueringsordningen irrelevant  i E  E' får antingen E eller E' utvärderas först – eller båda samtidigt  ibland behövs värdet av E eller E' inte alls  kompilatorn kan optimera programmet Lat evaluering (eng. short-circuit evaluation) av booleska eller andra uttryck blir problematisk Om evalueringen av ett uttryck påverkar värdet av en variabel är det en sidoeffekt. I så fall är uttrycket inte längre bara en notation för ett värde (  ökande komplexitet).

F. Drewes, Inst. f. datavetenskap4 Överladdning Bra (t.o.m. nödvändigt) för att förenkla språk  vem vill jämt och ständigt särskilja float + float och int + int? Kräver omtänksam språkutveckling – motexempel:  x&y mot &y('&' för både 'och' och adressoperator i C)  a = b = c('=' för både tilldelning och likhet i PL/I)  average = sum / count (i Java: visst menas inte heltalsdivision?) Om användaren kan överladda identifierare medför det både för- och nackdelar (läsbarheten kan öka) En identifierare är överladdad (eng. overloaded) om den har flera olika betydelser beroende på kontexten (t.ex. '+' som symbol för både plus och konkatenering).

F. Drewes, Inst. f. datavetenskap5 Tilldelningar i uttryck I C, C++, Java är x = E inte bara en tilldelning utan också ett uttryck vars värde är Es värde (som alla vet?). Fördelar  kan utnyttjas för att koda koncist, t.ex. if (odd(y=f(x))) y++;  kan tilldela ett värde till flera variabler samtidigt (eng. multiple targets), t.ex. x = y = z = E; Nackdelar  är "sidoeffekten par excellence"  program blir väldigt fort oläsbara om inte programmeraren är försiktig