Anders Broberg, Programspråksteoridelen DVA Moment 2 1 Epost: Hemsida: Tel: 786 5349 Rum: D438.

Slides:



Advertisements
Liknande presentationer
INTRODUKTION TILL PROGRAMMERING
Advertisements

Kap 1 - Algebra och linjära modeller
F2 - Intro till Java1 Föreläsning 2 - Intro till Java  Sammanfattning av Lektion 1 (kap 2): • Vad behövs för att kunna programmera? • DrJava • Java •
void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning
Klasser och objekt.
Nya typer Konstruerare, selektorer och predikat Rekursiva datatyper
De fundamentala datatyperna
P-uppgiften: regler, planering och specifikation
Elkraft 7.5 hp distans: Kap. 3 Likströmsmotorn 3:1
Föreläsning 4 Python: mera om funktioner och parametrar
Välkommen Vahid Mosavat
Programmeringsteknik K och Media
Växjö 21 april -04Språk & logik: Kontextfria grammatiker1 DAB760: Språk och logik 21/4: Kontextfria 10-12grammatiker Leif Grönqvist
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 4 Python: Definiering av egna funktioner Parametrar
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Stora additionstabellen
Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
Programmering B PHP Lektion 2
INTRODUKTION TILL PROGRAMMERING
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
INFÖR NATIONELLA PROVET
Föreläsning 11 Arrayer.
1 Funktioner Nr 3 Funktionstyper, högre ordningens funktioner och polymorfism.
Programmering i C# 3. Klasser.
Pekare och speciell programstruktur i inbyggda system
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
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.
DATABASHANTERING för programmerare
Från Gotland på kvällen (tågtider enligt 2007) 18:28 19:03 19:41 19:32 20:32 20:53 21:19 18:30 20:32 19:06 19:54 19:58 20:22 19:01 21:40 20:44 23:37 20:11.
Det handlar om multiplikation
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.
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
Listor En lista är en föränderlig ordnad samling objekt.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
Programspråk Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande program och kompilerande program. Python är ett interpreterande.
1 Föreläsning 3 programmeringsteknik och Matlab 2D1312/ 2D1305 Matlab fortsättning Funkioner, styrstrukturer, manipulering av matriser.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Namnrum, räckvidd och rekursion Linda Mannila
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
1 Logging and monitoring of TCP traffic in SSH tunnels Masters thesis Anton Persson.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Presentation of I. Name: Disputerat nu vår Forskningsintresset är:
F. Drewes, Inst. f. datavetenskap1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
15 September, Lexikala element mm Eftersom C är ett språk, har det ett alfabet och regler för hur bokstäverna kan bilda ord och hur olika strukturella.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 4: Syntaxdefinition Formell syntaxdefinition Lexikalisk och kontextfri syntax Flertydighet i kontextfri.
Anders Broberg, Programspråksteoridelen DVA Moment 2 1 Variabler Abstraktion av en minnescell En förvaringslåda som kan beskrivas med 6 attribut –Namn.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
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.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
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.
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 9: Implementering av underprogram Aktiveringsposter Exekveringsstacken Implementera dynamisk räckvidd.
När infaller Julafton och hur ofta?
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 12: -kalkylen allmänt om -kalkylen syntax semantik att programmera i -kalkylen.
Föreläsning 2 programmeringsteknik och Matlab 2D1312/ 2D1305
Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
Föreläsning 2 2D1312 Introduktion till Python Kap 1 och 2 i kursboken.
F2 1 Programmeringsteknik, 4p vt-00 Kommentarer Allt mellan /* och */ Varje kommentar byts ut mot en blank av kompilatorn /* Exempel på uttryck, tilldelningsoperatorn.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 5: Syntaxanalys (parsning) Syntaxanalysens mål Tillvägagångssätt och komplexitet Syntaxanalys.
Pontus Johansson 1 grammatiker 21.1 G 1 (BBS 7)
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.
Programmering i.NET Farid Naisan, Universitetsadjunkt Datavetenskap, Teknik och samhälle, Malmö högskola Begreppsförklaring.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 4: Syntaxdefinition Formell syntaxdefinition Lexikalisk och kontextfri syntax.
Python.
Presentationens avskrift:

Anders Broberg, Programspråksteoridelen DVA Moment 2 1 Epost: Hemsida: Tel: Rum: D438

Anders Broberg, Programspråksteoridelen DVA Moment 2 2 Att besriva ett språk (Kap 3) Syntax Semantik

Anders Broberg, Programspråksteoridelen DVA Moment 2 3 För vilka skall man beskriva Andra designers av programspråk Implementörer av språk Användarna (programmerarna)

Anders Broberg, Programspråksteoridelen DVA Moment 2 4 Lite (syntax) terminologi Mening Språk Lexem Token

Anders Broberg, Programspråksteoridelen DVA Moment 2 5 Att formellt beskriva syntax Igenkännande –Används i kompilatorer Genererande –Vad vi studerar på kursen

Anders Broberg, Programspråksteoridelen DVA Moment 2 6 Kontextfri grammatik Noam Chomsky 50-talet Naturligaspråk Definierar en klass av språk: Kontextfria språk

Anders Broberg, Programspråksteoridelen DVA Moment 2 7 Backus Normal Form (BNF) Att beskriva Algol 58 Ekvivalent med kontextfri grammatik Ett metaspråk –Dvs ett språk för att beskriva språk Abstraktioner används för att representera klasser av syntaktiska strukturer –Ungefär som syntaktiska variabler

Anders Broberg, Programspråksteoridelen DVA Moment 2 8 (BNF) Abstraktioner mm. En regel har en vänstersida (LHS) och en högersida (RHS) –LHS är den abstraktion som en regel definierar –RHS är definitionen av en LHS –LHS består av terminalsymboler och icketerminaler »Terminalsymboler är lexem och tokens »Icketerminaler är abstraktioner som finns definierade någonstans (LHS) »En abstraktion kan ha mer än en högersida(RHS) En grammatik är en ändlig icketom mängd av regler

Anders Broberg, Programspråksteoridelen DVA Moment 2 9 (BNF) Härledning En härledning är upprepade appliceringar av regler från en startsymbol till en sats där alla symboler är terminaler Ett ”parseträd” är en hierarkisk beskrivning av en härledning En grammatik är tvetydig om och endast om den genererar två eller flera distinkta parseträd för samma uttryck

Anders Broberg, Programspråksteoridelen DVA Moment 2 10 Exempel på en grammatik -> -> | ; -> = -> a|b|c|d -> + | - -> | const

Anders Broberg, Programspråksteoridelen DVA Moment 2 11 Exempel på en härledning => => => = => a = => a = + => a = + => a = b + const

Anders Broberg, Programspråksteoridelen DVA Moment 2 12 Exempel på parseträd

Anders Broberg, Programspråksteoridelen DVA Moment 2 13 Tvetydig grammatik -> | const -> / | -

Anders Broberg, Programspråksteoridelen DVA Moment 2 14 Variabler En abstraktion av en minnescell för att lagra värden –Namn –Bindningar –Adresser –Typkontroll Många viktiga definitioner i kap Hastighet

Anders Broberg, Programspråksteoridelen DVA Moment 2 15 Namn (identifierare) Särskilja, identifiera och abstrahera –Variabler –Underprogram (funktioner, procedurer,…) –Parametrar –Konstanter –Labels (GOTO) Hastighet Acceleration

Anders Broberg, Programspråksteoridelen DVA Moment 2 16 Designfrågor Maximala längden? Vilka tecken är tillåtna? –ASCII eller Unicode –Sammanbindingstecken Skillnad på STORA och små bokstäver? Nyckelord eller reserverade ord

Anders Broberg, Programspråksteoridelen DVA Moment 2 17 Maximal längd FORTRAN 1: max 6 tecken COBOL : max 30 tecken FORTRAN 90 och ANSI C : max 31 tecken Ada: Ingen begränsning på längden, och alla tecken är signifikanta C++: Ingen begränsning i språket, men många implementerare inför det HURLÅNGAIDENTIFIERAREKANMANHAISPR ÅKETFINNSDETNÅGONBEGRÄNSNINGOCH HURPÅVERKARDETLÄSBARETENOCHSKRI VBARHETEN? ???

Anders Broberg, Programspråksteoridelen DVA Moment 2 18 Variabler_med_flera_ord Ofta tillåts _ i namn för att sammanbinda flerordsnamn Standard Pascal, Modula 2 och FORTRAN 77 tillåter inga sådana tecken –I FORTRAN 77 har inte blanktecken någon betydelse… ManBrukarAnvändaDennaStilFörAttÖkaLäsbarheten

Anders Broberg, Programspråksteoridelen DVA Moment 2 19 Skillnad mellan STORA och små bokstäver Läsbarheten påverkas negativt –NAMN och namn är två olika identifierare trots att de är väldigt lika Modula-2 ställer till med ännu mer problem –Mixar STORA och småbokstäver i föredefinierade namn (WildCard) C, C++, Java, och Modula-2 gör skillnad på STORA och små i namn De flesta andra språken gör ingen skillnad

Anders Broberg, Programspråksteoridelen DVA Moment 2 20 Specialord Def: Ett nyckelord (keyword) är ett ord som är speciellt bara i en viss omgivning (kontext) –Påverkar läsbarheten negativt –Man kan ha egna identifierare som heter som nyckelorden –FORTAN 77 Def: Ett reserverat ord är ett speciellt ord som inte kan användas av användare för att definierade namn –Vanligast idag

Anders Broberg, Programspråksteoridelen DVA Moment 2 21 Variabler Abstraktion av en minnescell En förvaringslåda som kan beskrivas med 6 attribut –Namn –Adress –Värde –Typ –Livslängd –Räckvidd (scope)

Anders Broberg, Programspråksteoridelen DVA Moment 2 22 Variabelnamn Namngivna variabler Anonyma variabler –Minnesceller som bara koms åt via pekare –(Ibland även arrayer och element i arrayer) Adress –Den minnesadress som är associerad med variabeln (platsen i minnet som värdet lagras) –Adressen kan ändras under exekvering –Olika adresser på olika ställen i programmet –Två variabel namn kan användas för att komma åt samma minnescell (Aliasing) –L-value

Anders Broberg, Programspråksteoridelen DVA Moment 2 23 Aliasing Återanvändning av minne –Pekare, referensvariabler, –Variant records i Pascal –Union i C och C++ –FORTRAN har EQUIVALENCE Aliasing påverkar läsbarheten negativt Motivet med Minnesåteranvändning håller inte längre –Dynamsik minnesallokering finns i de flesta moderna språk –Även i FORTRAN

Anders Broberg, Programspråksteoridelen DVA Moment 2 24 Typer Bestämmer omfånget av värden och vad man kan göra med en variabel –Heltal –Flytal –Strängar –”Boolska tal” För flyttal avgör de också precisionen

Anders Broberg, Programspråksteoridelen DVA Moment 2 25 Värde Innehållet i en minnescell som en variabel är associerad med R-value Abstrakt minnescell-den är de minnesceller som är associerade med en variabel –Valigtvis »En heltalsvariabel tar upp flera fysiska minnesceller »En teckenvariabel tar upp 1 fysisk minnescell Hastighet:=320; Hastighet