Linköpings universitet Innovativ Programmering TDP019 Projekt: Datorspråk. flip/flop. ett helt flippat språk
|
|
- Gustav Pettersson
- för 8 år sedan
- Visningar:
Transkript
1 Linköpings universitet Innovativ Programmering TDP019 Projekt: Datorspråk flip/flop ett helt flippat språk TDP019 - Projekt: Datorspråk Vårterminen 2012 Johan Wänglöf Henrik Forsberg johwa457@student.liu.se henfo939@student.liu.se
2 Sammanfattning Målet med TDP019 är att vi ska lära oss hur man gör sitt eget programmeringsspråk med hjälp av en parser skriven i Ruby. Första halvan av vårterminen gjorde vi färdigt vår grammatik, som vi sedan implementerade andra halvan av terminen. Flip/flop har många av de traditionella syntaxer som de flesta språken har fast med en liten twist, syntaxen är flippad vilket bland annat betyder att villkorssatserna kommer i slutet av blocken istället för i början. Exempel på detta hittar du under Användarhandledning i detta dokument. Språket är interpreterat och använder RDparser som i sin tur är skrivet i programmeringsspråket Ruby.
3 d/e>e/e'd dd^<z/se/e's^wz<d&>/w&>kwd dd^z&dd dd/d des EZ,E>E/E'd dd<kdd/'e'/e^d>>d/ked dd<pz&>/w&>kw<kd ddd/e^d>>d/ked dddd^d^wz<dd,: >Ws/EdZWZddKZEd dddd^d^wz<dd,: >WsEydZE&/>d ddwzk'zddz&>/w&>kw<kd dddddzwzd dddsz/>zk,d/>>>e/e'd dddkwzdkzzk,kwzd/keze dddzwd/d/ke^^d^ze dddd&e ddddte ddds/><kz^^d^ze dddd/e dddd/e dddd/e dde&he<d/keze dded&e dded&e ddede d^z^ddk<hdedd/kedd dddww^dzh<dhzdd dd>y/<>/^<e>z^dd ddwz^e/e'dd dds>hz/e'dd dd^kw/e'dd dz&><d/kedd d'zddd/<dd
4 ewzk'zd<kde
5 1. Inledning Vi fick i uppgift att skriva vårt eget programmeringsspråk i kursen TDP019 Projekt: Datorspråk under andra terminen av vårt första år i Innovativ Programmering på Linköpings universitet. 1.1 Beskrivning av språket flip/flop Vi kom fram till att det skulle vara roligt att göra ett språk som är bakvänt jämfört med några av de populäraste språk som används idag. Det finns inget direkt användningsområde där flip/flop utmärker sig extra väl utan det är bara en rolig idé som vi tyckte skulle vara intressant att se om det skulle fungera eller inte. Eftersom det inte finns något speciellt användningsområde för språket har vi inte någon specifik målgrupp vi skrivit språket för. 1.2 Syfte Syftet med denna kurs var att lära oss hur ett programmeringsspråk fungerar i grunden. Hur kompilatorer förstår alla syntaxer man använder för att skapa ett program. 1.3 Idé Vår idé är mycket enkel, att skriva ett programmeringsspråk som sätter villkorssatserna i slutet av ett block och därmed göra ett rätt så unikt språk som inte är så lätt att sätta sig in i. 3
6 2. Användarhandledning Under hela denna handledning kommer vi anta att användaren använder någon distribution av Linux. Denna del är till för den nya användaren av flip/flop. Här får denne hjälp att komma igång med installationen av språket samt hur man skriver språkets syntax. Handledningen kommer börja med hur man kommer igång att koda med språket, alltså vad man behöver ha installerat på sin dator för det ska fungera korrekt. Efter detta visas exempel på vår syntax och därefter några kodexempel i flip/flop. 2.1 Komma igång/installation Det allra första som du behöver är att ha Ruby installerat. Om du använder Linux är det lättast att hämta det via din pakethanterare. På finns det fler installationsinstruktioner. 2.2 Köra flip/flop-kod Installation Flip/flop levereras i ett ziparkiv. I detta arkiv finns filerna för att kunna starta språket, samt en mapp med dokumentation och några testfiler. Om man inte vill ladda hem ett ziparkiv med språket kan man klona Johans git arkiv från URL:n git://github.com/jwanglof/tdp019.git Observera att detta kommer enbart vara en read-only kopia och du kan inte ändra på källkoden. Mer information om hur git fungerar kan du läsa från github:s hjälphemsida på följande URL: 4
7 2.2.2 Testa språket med hjälp av interpretatorn Det absolut lättaste att komma igång och koda är att använda språkets interpretator som finns inbyggd i flip/flop. För att börja använda språket, gör följande: Gå in i Rubys interpretator (öppna upp ett nytt terminalfönster och skriv irb) Skriv load run.rb Du bör nu ha en ny rad som ser ut som f/f >. Du kan nu prova språket. OBS. Det är ej rekommenderat att testa if-satser, for- eller while-loopar i interpretatorn då det blir väldigt rörigt när man skriver detta på en rad Testa språket med hjälp av en extern fil Det andra alternativet är att skapa en fil med flip/flop-kod. För att köra denna fil skriver man bara: ruby flipflop_source.rb filnamnet när man står i mappen där källkoden ligger. Vi har bifogat några exempelfiler som ligger i mappen test och för att testa någon av dessa filer skriver användaren: ruby flipflop_source.rb test/filnamn 2.3 Programmera flip/flop-kod Datatyper Eftersom språket var mest gjort för att lära oss hur ett språk verkligen fungerar bestämde vi oss att enbart implementera 3st olika datatyper. De som fungerar är: Flyttal Heltal Strängar Variabler och tilldelning En variabel kan börja med någon bokstav mellan a-z (både stora och små bokstäver fungerar), med en siffra mellan 0-9 eller med ett underscore. Ett variabelnamn måste vara åtminstone en symbol som vi definerade innan men efter det kan det vara godtyckligt många symboler. Vi antar att de flesta som läser denna rapport har programmerat innan och vet hur man deklarerar en variabel i de flesta språk, nämligen: ƒ ƒ ˆ ƒ ƒ Ž Men eftersom flip/flop är som namnet antyder flippat deklarerar man en variabel såhär i flip/flop: 5
8 ˆ ƒ ƒ Ž ƒ ƒ Nu antar du säkert vad vi menar med flippat. Det är lite krångligt att börja tänka omvänt när man ska skriva och det tog tid för oss också att vänja oss vid det Operatorer och operationer För att ett språk ska kunna användas till någonting måste användaren kunna lägga ihop tal för att räkna ut något. Eller kanske för att se om ett uttryck är sant eller falskt. För att göra detta möjligt i detta språk har vi delat upp dem i aritmetiska-, logiska- och relations-operander. Aritmetiska operander: +, -, *, / och % Logiska operander: och && Relationsoperander: <, <=, >, >=, == och!= Dessa kan användas för att se t.ex. om två tal är desamma, se om två strängar har samma värde eller addera två tal och se om det blir en specifik summa. Eller kan man använda språket som en kalkylator. Aritmetiska uttryck ƒ ƒ ƒ ƒ Logiska uttryck ƒ ƒ Relationsuttryck ƒ ˆƒŽ ƒ 6
9 2.3.4 Repetitionssatser Vi bestämde oss att vi vårt språk heter for- och while-loopar samma sak, nämligen loop. De fungerar som de gör i andra språk, fast det är självklart en flipp här också. Ž ƒ Här är ett enkelt exempel på en for-loop som loopar ut en variabel som har ett heltalsvärde: Ž ƒ Ž Detta kommer resultera i: Som syns är allt flippat inom villkorssatserna och likadant i syntaxen Š Ž Ž ƒ Ett enkelt exempel på en while-loop som kommer ha samma resultat som for-loopen ovanför: Ž ƒ Ž Vilkorssatser En if-sats i flip/flop består utav åtminstone en del av uttrycket, men man kan bygga på med fler om man känner för det. Den obligatoriska delen av en if-sats är fi (uttryck) i vårt språk. De delar man kan bygga på är fi esle (uttryck) och esle ˆ Ž ˆ ŽŽ ƒ ƒ Ž ŽŽ ˆƒŽ ƒ 7
10 ˆ Ž ˆ ŽŽ ƒ ƒ ˆ Ž ŽŽ ƒ ƒ ˆ Ž Ž ˆ ŽŽ ƒ ƒ ˆ Ž ŽŽ ƒ ƒ Ž ŽŽ ˆƒŽ ƒ ƒ Ž Funktioner Vi bestämde oss att vårt funktionsnamn börjar med boj och slutar med job (argument). Man kan deklarera funktioner med eller utan argument och också anropa funktioner med eller inparametrar. För att anropa en funktion skriver man bara namnet på funktionen följt av inparametrar mellan två stycken parenteser. ƒ Detta visar en funktion som adderar två tal och skriver ut detta. Œ Ž Ž ƒ Œ ƒ Vi har dock inte fått funktioner med argument att fungera som de ska. Det skapas en nod när man deklarerar funktionen men man kommer inte åt denna funktion via namnet efteråt. ƒƒ Samma funktion som ovan fast utan argument. Œ Ž Ž ƒ Œ ƒ 8
11 ƒ ˆ Inget speciellt med detta utan visar enbart hur man kallar på funktionen i första funktionsexemplet. ƒ Detta kommer skriva ut 4. 9
12 3. Systemdokumentation Vi har byggt flip/flop i rdparsern som parsar igenom vår kod som vi skrivit som anger hur vår syntax ska se ut. 3.1 Mappstruktur / Docs/ README FlipFlop.docx test/ cluster for function if variable while run.rb flipflop.rb 1 node.rb 2 rdparse.rb Lexikalisk analys Vår lexikaliska analys består enbart utav tokens som vår parser använder för att matcha våra regler som vi definerat i koden. Dessa är de tokens vi har: Dessa två tokens matchar enradskommentarer och flerradskommentarer. Om användaren använder detta syntax kommer allt efter en # eller inom ## text ## ignoreras av parsern. Detta matchar alla blanksteg (white spaces) som säger till parsern att ignorera dessa. 1 Har alla regler språket kan hantera 2 Innehåller språkets noder 3 Parsern vi fick som verktyg 10
13 Dessa är språkets specifika tilldelningssyntax. Du kan läsa om dessa satser under vår Användarhandledning. ƒ ˆ Ž Ž Ž ˆ Ž ŒŒ Detta matchar språkets specifika operatorer. Den första och andra tar hand om negativa flyttal resp. positiva flyttal. Den tredje tar hand om alla siffror. ˆ ˆ Dessa tar hand om strängar. Våra strängar måste börja med citationstecken. Denna tar hand om variablar när man deklarerar dessa. ƒœƒœ 3.3 Parsning När man skriver ett program i flip/flop skapas ett abstrakt syntaxträd med noder som är objekt av olika klasser som beskriver hur denna nod ska bete sig. Den översta noden är jämt Program och efter denna kommer alltid en Statement_List som sedan innehåller de olika noderna som programsyntaxen har skapat. 3.4 Evaluering Varje klass i språket har en evaluate-funktion som kallas då språkkonstruktionen skall exekveras. Dessa klasser som anropas är de noder som vi tidigare skrivit om. Vid exekveringen av ett program kommer trädet att traversera och de olika evalueringsfunktionerna kommer att anropas. 3.5 Scoping För att kunna hantera variabler som ej är åtkomliga från programmets globala rymd skapar varje funktion eller loop en egen privat rymd, eller scope. För att lyckas med detta sparas samtliga variabler för ett scope i en hash-tabell med variabelnamnen som nycklar. Hash-tabellen sparas i sin tur sedan som ett element i en lista. På så vis blir varje element i listan ett scope och 11
14 programmet kan enkelt välja det scope som ska gälla med en enkel indexvariabel. Varje gång en funktion eller loop körs kallas en metod som räknar upp indexvariabeln och på samma sätt kallas en nedräknande metod precis innan funktionen eller loopen avslutas. 12
15 4. Reflektion Det tog tid för oss att komma igång med implementeringen av språket då vi hade stora svårigheter med att förstå hur grammatiken skulle utformas fullt ut. Det vi fastnade på var hur aritmetiska uttryck skulle se ut rent grammatiskt, och framför allt hur prioriteringen skulle skötas. Detta gjorde att vi sköt upp implementeringen ytterligare eftersom vi kände att en grammatik med fungerande aritmetiska uttryck var viktigt att ha innan vi påbörjade den. I och med att vi kom igång så sent som vi gjorde bestämde vi oss ganska snart för att vårt språk inte skulle innehålla scopes och funktioner då vi hade hört från många av våra kamrater att dessa tagit lång tid. Efter att ha studerat publicerade språkprojekt från tidigare år och tagit hjälp av kamrater som kommit längre lyckades vi till slut få något slags grepp om huruvida vi skulle gå tillväga för att komma i mål. Ett problem vi stötte på som tvingade oss att förändra vår syntax gällde våra if-satser. Vår syntax går ju enligt beskrivningen ovan ut på att vända på så mycket som möjligt av nyckelord och ordning av satser med mera jämfört med hur det kan se ut i andra språk. Problemet uppstod när vi, i vår if-sats, försökte evaluera villkoret i slutet av satsen istället för i början som man gör i de flesta andra språk. Här fick vi ge oss och flyttade tillbaka villkoret till början av ifsatsen istället. Sista veckan innan deadline lyckades vi på något vis få lite tid över och bestämde oss, tidigare beslut till trots, för att försöka implementera scopes och funktioner i språket. Vi lyckades inte att få till funktionerna till en början då dessa inte lyckades leverera värden från eventuella argument till funktionens parametrar vid ett funktionsanrop. Det tog några timmar med kodning och diskussion men nu fungerar detta. Erfarenheter vi tar med oss från det här projektet är som vanligt framför allt att vi måste komma igång tidigare (även om det inte alltid är så lätt) med det som ska göras men vi tror oss även gå ur det här projektet med en mycket djupare förståelse för hur ett datorspråk är uppbyggt och fungerar, vilket väl var tanken med kursen. Känslan vi har är att vi nu fått prova på hur det kan vara att skapa ett nytt programmeringsspråk och förhoppningsvis får vi i framtiden även chansen att utforska det här området ytterligare. 13
16 5. Grammatik ƒ ƒ ˆ Ž Ž ˆ Ž ˆ 14
17 Ž Ž ƒ ˆ ˆ Ž Ž Ž Ž Ž ƒœƒœ ŽŽ ŽŽ ŒŒ ŒŒ 15
18 16
19 17 6. Programkod ˆ ƒ Žƒ Ž Ž ˆ ƒž œ ƒ ƒ Ž Ž Ž Š ƒ ˆ ƒšˆ Š Žƒ ƒ ƒ ˆ Ž Ž Ž ˆ Ž ŒŒ ƒ ƒ ˆŽ ƒ ˆ ˆŽ ƒ ˆ Šƒ ƒ Š Šƒ ƒ Š ƒ ƒ Ž ƒœ
20 18 ƒ ƒ ƒ Š ƒ Ž Ž ƒ Ž Ž ƒ Ž ƒ Š ƒ Ž ƒ Ž Ž ƒ Š ƒ Ž ƒ ƒ Šˆ ƒžž ƒ Š ƒ ƒ Šƒ ƒ ƒ Š ˆ ƒ ƒ Š š ƒ ŠŽ ƒ ƒ Šˆ Žƒ Ž ˆ ƒžž ƒ Š ˆ ƒ ƒžž ƒ Ž ƒ Š ˆ ƒ Ž ƒ ƒ Ž ƒžž ƒ ƒ Ž Š ˆ ƒ ŽŽ ƒ š Š ƒ ŽŽ ƒ ƒ ƒ Ž ƒƒ ƒ ƒ Š ƒž
21 19 Ž ƒ ƒ Š š ƒ š š ƒ Š ˆ ƒž ƒ ƒž ƒž ƒ š ƒ ƒ ƒ Ž Ž ƒ ƒ ƒ Š š ˆ š ƒž š Š ˆ ˆ ƒ ƒ ˆ Šƒ Ž Š ƒ ƒ ˆ Šƒ ˆ ˆ Ž ƒ Š Š Œ ƒ ˆ Ž ˆ ƒ ˆ Ž ƒ Šˆ š ƒ Ž Ž ƒ Ž Ž š Ž Ž ˆŽ Ž Ž š ˆ Ž ˆ ƒ Šˆ š ƒ Ž Ž ˆ ƒ š Ž Ž ˆŽ Ž Ž š ˆ ƒ Šˆ š ƒ Ž ˆ š Ž ˆ Ž š
22 20 Ž š ƒ Šƒ ƒ Š ƒ ƒ Š ƒ Šƒ ƒ ƒ Š ƒ ƒ Šƒ Ž ƒ ƒ Š ˆ Ž ƒ ƒ Š ˆ ƒ Ž ƒ Šƒ ƒ Š ƒ š ƒ š ƒ š š Ž ƒ ƒ Š ƒ Šƒ š ƒ š ƒ š š
23 21 Ž ƒ Š ƒ ƒ Š š š Ž š ƒ ƒ Š š Ž Ž ƒ ƒ Š š ƒ š Ž Ž ƒ š ƒ š ƒ š š ƒ Š š ƒ š Ž Ž ƒ š ƒ š ƒ š š Ž š Ž Ž ƒ ƒ Š š ƒ ƒ Š š Ž Ž ƒ š ƒ š ƒ š ƒ š š ƒ Š š Ž Ž ƒ š ƒ š ƒ š ƒ š š ƒ Š š Ž Ž ƒ š ƒ š ƒ š ƒ š š Ž š ƒ ƒ Šƒ ƒ Š š ƒ ƒ
24 22 ƒ Ž ƒ ƒ ƒ Š Ž ƒ ƒ ƒž ˆ Ž ˆ ƒ ˆ Ž Ž ƒ ƒ ƒž ƒ Šƒ ƒ ƒ ƒ Šƒ ƒ ƒž ƒ ƒ ƒ ƒž ƒ ƒ ƒ ƒž ƒ Ž ƒ ƒ Š š ƒ Žƒ ƒž š ƒ š ƒ š ƒ š š ƒ Š š ƒ š Š š š Ž ƒ ƒ Š Ž ƒ ƒž ƒ Š ƒž ƒ ŠˆŽ ƒ ƒž ƒ Š ƒž ƒ Š ˆ Ž Ž ƒ ƒž
25 23 ƒ Š Ž ƒž Ž ƒ Ž ƒž ƒ Š Ž ƒž Ž ƒ Ž ƒž Ž ƒž ƒ Š ƒž ƒž Ž ˆŽ ƒ ƒž ƒ Š Ž ƒ ˆŽ ƒ ƒž Ž ƒ ˆŽ ƒ ƒž Ž ƒž ƒ Š ƒž ƒž ƒ Š ƒž ƒž ƒ ƒ Ž ƒ Š Š š Ž ˆ ƒ Šƒ Ž Š Š ƒ œ Š Žƒ ƒ ƒ Ž Ž ˆ ƒ Šˆ ˆ Ž Ž Ž Ž ŒŒ Ž ƒœƒœ ƒ ƒ ƒ Ž ƒ
26 24 Š ˆ ƒ ˆ ƒˆ Ž Š ˆ ƒ Š Ž Ž Ž Ž ƒ Ž ƒ Š Ž ƒ Ž Ž ƒ ƒ š ƒ Ž ƒ ƒ š ƒ Ž ƒ ƒ š Š Ž Ž ƒ Š Ž ƒ Ž Ž š Ž š Š Ž Ž š Ž ˆ Žƒ ƒ Š Œ ƒ Ž Œ ˆ ƒ ƒ Ž Ž ƒ ƒ ƒž Žƒ Ž ƒ ƒ ƒž ƒ Š Œ ƒ Ž Œ ˆ Ž ˆ Žƒ Ž ˆ Ž Ž Žƒ ƒž ƒ Š ƒ Š ƒ Š ƒ Š ƒ Š ƒ Š
27 25 Ž ƒ Ž ƒ Šƒ Ž ƒ ƒ Ž ƒ ƒ Ž ƒ ƒ Šƒ ƒ ƒ Ž ƒ ƒ Š š Ž ƒ ƒ Ž ƒ Š ƒ ƒ Ž ƒ ƒ ƒ ƒž ƒ ƒ ƒ ƒž ƒ ƒ ƒ Š ƒ ƒ ƒ ƒ ƒ ƒ Ž ƒ ƒ ƒ Š ˆ ˆ š Ž Š ˆ ƒ ƒ ˆˆ ˆˆˆ Ž ˆˆ ƒ ƒ Ž ƒ ƒ ƒ Ž ˆˆˆ Ž ˆˆ ˆ ƒ ˆ ˆˆˆ Ž ˆˆ ˆ Š
28 26 ˆˆ Ž Ž ƒ ƒ Ž ƒž ƒ ƒ ƒ ˆ ƒ ˆ Ž ˆ Ž ƒ ƒ ƒ ƒ ˆ Ž ƒ ƒž ƒ ˆŽ ƒ ˆ ƒ ƒ Ž Ž Ž Ž ƒ Ž Ž Ž ˆˆ Ž Ž ˆˆŽ ˆƒŽ ˆŽ Š Š ˆ Ž ƒ ˆˆ ƒ ˆ Ž ˆ Ž ƒ Ž š Š ˆˆƒ ŽŽ Š ƒžž ƒ ƒž Ž ƒ š š š
29 ˆˆ ƒ ƒ 27
30 28 ˆ ƒ ƒ Ž ŽŽ Žƒ ƒ ƒ Ž ƒ Š š ƒ ƒ ƒ ˆ ƒ Š ƒ Š ƒ ƒ Ž Ž š ƒ ƒ Ž ˆˆ Ž ˆƒŽ ƒ ˆŽ ˆ ƒ ƒ Ž Š ˆˆ ƒ ƒ Ž Ž ˆˆˆ Ž ˆ Ž ƒ ƒ Ž ˆˆ Ž ƒ ƒ Ž Ž ˆˆˆ Ž ˆƒ ƒ ƒž ƒ ƒ Ž ƒ ƒž ˆŽ ˆ Šƒ Š ˆˆ ƒžž Ž ˆ ˆˆˆ Ž ˆŠƒ Šˆ Šƒ Š ˆ Ž ˆŠƒ Š ƒ ƒ Ž Š Ž ˆˆ ƒ Š ˆ ˆ ƒ ˆˆˆ Ž
31 29 ˆ ƒ ƒ Ž Ž ˆ Š ƒ ƒ Ž ˆ Ž ˆ ƒ ƒ Ž ˆ Ž ˆˆ Š ƒ ƒ Ž ƒžž ˆ ˆˆˆ ˆŽ ˆŽ ƒ Žƒ ƒ ˆ ƒž œ Ž Ž Ž ˆ ƒž ƒ ˆˆ ƒ ˆˆˆ Ž Ž ƒ Š ƒž ƒ Žƒ ˆ ƒž œ š š š ˆ ƒž ƒ ˆˆ ˆˆˆ Ž
32 30 š ƒž ƒ ƒ ˆ ƒž ˆƒƒ ƒ ƒ ƒ ƒ Ž Žƒ ƒ ƒ ƒ ˆ ƒž œ ƒ ƒ ƒ ˆ ƒž ƒ ˆˆ ˆˆˆ Ž ƒž Ž ƒ ƒž ƒ ƒ Ž ˆ ƒž ƒ Š ˆˆ ƒž ƒ ƒ ƒž ƒž Ž ˆ ƒž Žƒ ƒž Žƒ ƒ ˆ ƒž ƒ ƒž œ ƒž ƒž ƒ Ž ˆˆ ƒž ƒ ƒ ƒž ƒž Ž ˆ ƒž Žƒ š ˆˆ Ž ƒ Ž ˆ ƒž Žƒ Ž ƒ ˆˆ Ž ƒ Ž ƒ Ž Š Šƒ Šƒ Š ƒž Žƒ ˆ Ž ˆ Šƒ
33 31 ƒ ƒž ƒ ƒ ƒ Ž Žƒ ƒž ƒ ƒ ƒ ƒ ƒ š ˆ ƒž œ ƒ ƒ ƒ š ƒ ƒ ƒ ƒ ƒ š ƒ š ˆ ƒž ƒ ˆˆ ƒž ˆˆˆ Ž ƒ ƒ Ž ƒ ƒ ƒž ƒ š ƒž ƒ ˆˆ Š Š ƒ ƒ Ž ƒ ƒ ƒ Ž ˆˆˆ Ž ˆ ˆ Ž ƒ ˆ Ž ˆ ƒ Žƒ ˆŽ ƒ ƒ ˆ Ž š ˆ ƒž œ ˆ Ž š ˆ ˆ Ž Ž š š ˆ ƒž ƒ ˆˆ ˆŽ ˆˆˆ Ž ˆ š ƒž ƒ Š ˆ ƒ Š ˆ ˆ ƒž ƒ Ž ˆ Ž Žƒ ƒ Š Ž ƒ Š Ž
34 32 Ž ƒž ƒ Ž Ž ƒž ƒ Ž ˆ Š ˆ ƒ Žƒ ˆ ƒ ƒ ˆ š ˆ ƒž œ ˆ š ˆ ˆ š š ˆ ƒž ƒ ˆˆ ˆ ˆˆˆ Ž ˆ š ƒž ƒ Š ˆ ƒ Š ˆ ˆ ƒž ƒ Žƒ ƒ ƒ ƒ ƒ ˆ ƒž œ ƒ ƒ ƒ ƒ ƒ ƒ ˆ ƒž ƒ ˆˆ ˆˆˆ Ž Ž ƒž Ž ƒ ƒ ƒž ƒ ƒ Ž
35 33 ƒž Ž ƒž Š Ž ˆˆ ƒ ƒ ƒ ƒž ƒ ˆ ˆˆ Ž ˆ ƒ ƒ Ž Ž ƒ ƒ ƒž Š ƒ ƒ Ž ƒ ƒ ƒž ƒž ƒ Ž ˆˆ ƒ ƒ ƒž ƒ ˆˆˆ Ž Žƒ ƒ ƒ ƒ ƒ ƒ ˆ ƒž œ ƒ ƒ ƒ ƒ ƒ ƒ ˆ ƒž ƒ ˆˆ ƒ ˆˆˆ Ž Ž ƒž Ž ƒ ƒ ƒž ƒ ƒ Ž ƒž Ž ƒž Š Ž ˆˆ ƒ ˆ ƒ ƒ ƒž ƒ ˆ ˆˆ Ž ˆ ƒ ƒ Ž Ž ƒ ƒ ƒž Š ƒ ƒ Ž ƒ ƒ ƒž ƒž ƒ
36 34 Ž ˆˆ ƒ ˆ ƒ ƒ ƒž ˆˆˆ Ž ˆ ƒž ˆˆ ƒ ˆ ƒ š ƒ ƒ Š š Žƒ ƒ ƒ ƒ ƒž ƒž ˆ ƒž œ ƒ ƒž ƒž ƒ ƒ ƒž ƒž ƒž ƒž ˆ ƒž ƒ ˆˆ ˆˆˆ Ž ˆ ƒž ƒž ƒ Žƒ ƒ ƒž ƒž ƒ Žƒ ƒ ƒž ƒž ƒž ƒ ƒ ƒž ƒž ƒ ƒ ƒž ƒž ƒž ƒ ƒ ƒž ƒž ƒ ˆƒŽ Š ƒž Žƒ ˆ ƒž œ ƒž ƒž ƒž ˆ ƒž ƒ ˆˆ ˆˆˆ Ž
37 35 ƒž ƒž ƒ Žƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒž ˆ ƒž œ ƒ ƒ ƒ ƒž ƒ ƒ ƒ ƒ ƒ ƒ ƒž ƒž ˆ ƒž ƒ ˆˆ ƒ ˆˆˆ Ž ƒ ƒ ƒž ƒ Š ƒ ƒ ƒž ƒ ƒ ƒ ƒ ƒž ƒž ƒ ƒ ƒ Ž ƒ ƒ ƒ ƒž ƒ ƒ ƒ ƒ Ž ˆˆˆ Ž Žƒ ƒ š ˆ ƒž œ ƒ ƒ ƒ š ƒ ƒ ƒ ƒ ƒ ƒ š š ˆ ƒž ƒ ˆˆ ƒ š ˆˆˆ Ž ƒ ƒ ƒ Šƒ ƒ ƒ Žƒ ƒ œ
38 36 ˆ ƒž œ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ˆ ƒž ƒ ƒ ƒ ƒ ƒž Žƒ Š š ˆ ƒž œ š š š ˆ ƒž ƒ ˆˆ Š š ˆˆˆ Ž š ƒž ƒ Žƒ Ž ƒ ˆ ƒž œ š š š ˆ ƒž ƒ ˆˆ Ž ƒ ˆˆˆ Ž ƒ š Š Š ˆƒŽ
39 37 Žƒ ˆ ƒž œ ƒž ƒž ƒž ˆ ƒž ƒ ˆˆ ˆˆˆ Ž ƒž Žƒ Ž ƒ ˆ ƒž œ ƒž ƒž ƒž ˆ ƒž ƒ ˆˆ Ž ƒ ˆˆˆ Ž ƒž Žƒ ˆ ƒž œ ƒž ƒž ƒž ˆ ƒž ƒ ˆˆ ˆˆˆ Ž ƒž Ž Ž ƒ ƒ Žƒ ƒ ƒ Ž ƒ ƒ ƒ ˆ ƒž œ ƒ ƒ ƒ
40 38 ˆ ƒž ƒ ˆˆ ƒ ƒ Ž ˆˆˆ Ž Ž ƒ ƒ ƒ Ž Žƒ ƒ ƒ Ž ƒ š ˆ ƒž œ Ž ƒ š Ž Ž ƒ ƒ š š ˆ ƒž ƒ ˆˆ ˆˆˆ Ž ƒ ƒž ƒ ˆˆ ƒ ƒ ƒ Ž ƒ ƒ Ž ˆˆˆ Ž Š Ž ƒž ƒ ˆˆ š Ž ƒ ˆˆˆ Ž Ž ƒ Š ƒž ƒ š ƒž ƒ Ž Žƒ Š Ž ƒ ƒ Ž š
41 39 ˆ ƒž œ Ž š Ž Ž š š ˆ ƒž ƒ ˆˆ Š Ž ˆˆˆ Ž Š Ž š ƒž ƒ Ž ƒ Š ƒž ƒ Ž Žƒ Žƒ ƒ ƒ Ž ˆ ƒ ƒž ˆ ƒž œ Ž ˆ ƒ ƒž Ž Ž ˆ ˆ ƒ ƒž ƒ ƒž ˆ ƒž ƒ ˆˆ Žƒ ˆˆˆ Ž ˆˆ ƒ ƒž ƒ ƒž ˆˆˆ Ž ˆ ˆ ƒž Ž ƒ ƒž Žƒ ƒžž ƒ ƒ ƒ ƒ Ž ˆ ƒž œ ƒ ƒ Ž
42 40 ƒ ƒ ƒ Ž ƒ Ž ˆ ƒž ƒ ˆˆ ƒžž ˆˆˆ Ž ˆˆ Š ƒ Š ƒ ƒž ƒ ƒ ˆˆˆ Ž ˆˆ ƒ ƒž Ž Š ˆˆ ˆ ƒ ƒž ˆˆˆ Ž Ž ˆˆ ƒ ƒž Šƒ ƒ ƒ ˆˆˆ Ž ƒ ƒ ˆ ƒ ƒž ˆ ƒ ƒ œ ƒ Ž œ Š ˆˆ ƒ ƒ Ž œ ƒ ƒ ƒž ƒ ƒ œ ƒ ƒ ƒ ƒ ƒ Š Š š ƒ ƒ ƒ ƒ ƒ ƒž ƒ ƒ Ž ƒ ƒ ƒ ƒž ƒ š Š ˆ Ž ˆ ƒ ƒž Ž ƒ Š ƒž ƒ ˆˆ Š ˆ š ˆˆˆ Ž Ž
43 Ž ƒ ˆŽ ˆŽ 41
Backcode. Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet
Žƒ ƒ Ž Ž ˆ ƒ ƒ ƒ Žƒ ƒ Ž ˆ Œ ŽŽ ƒ Backcode Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet Innehållsförteckning 12-05-29 Inledning... 3 Användarhandledningen... 4 Klasser... 4 Metoder...
PROMETHEUS. Ett typat, objektorienterat programmeringsspråk av Tim Andersson.
PROMETHEUS Ett typat, objektorienterat programmeringsspråk av Tim Andersson. Linköpings universitet TDP019 Projekt: Datorspråk Examinator: Anders Haraldsson, IDA Tim Andersson timan976@student.liu.se Utskriftsdatum:
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
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
Att integrera vattenfrågor i rådgivningstjänster för jordbrukare En idéhandbok för myndigheter
Att integrera vattenfrågor i rådgivningstjänster för jordbrukare En idéhandbok för myndigheter April 2010 Utarbetad av Berglund, M.; Dworak, T. (Ecologic Institute) d Föreslagen hänvisning Berglund, M.;
Programmeringsteknik 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
plätt Linköpings universitet
plätt Linköpings universitet Innovativ programmering TDP019 Projekt: Datorspråk Sebastian Törngren sebto088@student.liu.se Examinator: Anders Haraldsson, IDA Utskriftsdatum: 28 maj 2012 Innehåll Inledning...
Beräkningsvetenskap föreläsning 2
Beräkningsvetenskap föreläsning 2 19/01 2010 - Per Wahlund if-satser if x > 0 y = 2 + log(x); else y = -1 If-satsen skall alltid ha ett villkor, samt en då det som skall hända är skrivet. Mellan dessa
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
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
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
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
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
Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php
Introlektion PHP är ett av de enklare språken att lära sig just pga. dess dynamiska struktur. Det används för att bygga upp båda stora och mindre system. Några vanliga system som använder sig av PHP är
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
Parsning. TDP007 Konstruktion av datorspråk Föreläsning 6. Peter Dalenius Institutionen för datavetenskap
Parsning TDP007 Konstruktion av datorspråk Föreläsning 6 Peter Dalenius Institutionen för datavetenskap 2017-02-14 2 Analys av källkod Lexikalisk analys Bildar tokensutifrån källkodens text. Syntaktisk
Användarhandledning Version 1.2
Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...
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
Kompilatorer och interpretatorer
1 of 6 Örebro universitet Institutionen för teknik Thomas Padron-McCarthy (Thomas.Padron-McCarthy@oru.se) Tentamen i Kompilatorer och interpretatorer för Dataingenjörsprogrammet m fl lördag 7 november
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
Programmering för språkteknologer I, VT2012. Rum
Programmering för språkteknologer I, VT2012 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.lingfil.uu.se/~evelina/uv/uv12/pst1/ Idag - Kursplan - Börja programmera - Lokala variabler - aritmetiska
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
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 för ingenjörer, VT06 2 Repetition Repetition -
Planering Programmering grundkurs HI1024 HT 2014
Planering Programmering grundkurs HI1024 HT 2014 Föreläsning V36 Föreläsning 1 Vad är programmering? Boken! Kurs-PM Vad är ett program? Kompilerande- Interpreterande Programmeringsmiljö Hello World! Att
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?
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java
I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program
Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java
TDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Grundläggande satser och uttryck Eric Elfving Institutionen för datavetenskap 5 augusti 2014 Översikt Uttryck Litteraler Operatorer Satser Villkor Upprepning Teckenhantering
Planering av ett större program, del 2 - for och listor. Linda Mannila
Planering av ett större program, del 2 - for och listor Linda Mannila 9.10.2007 Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Utskrift Indata Felhantering Funktioner och moduler (grunder)
Grundläggande datalogi - Övning 1
Grundläggande datalogi - Övning 1 Björn Terelius October 30, 2008 Python är ett tolkat språk som kan köras interaktivt. tcs-ray:~/grudat08>python >>> 11+3*4 23 >>> a = 15 >>> b=a >>> print "a =", a, "b
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
Översikt. Varför lära sig detta? Motivering Syntax och semantik Imperativa språkets byggstenar och Python. PL-boken Kap 1 (repetition):
Översikt Motivering Syntax och semantik Imperativa språkets byggstenar och Python Datatyper Tilldelning och uttryck Kontrollstrukturer (på satsnivå) Subprogram Relaterade avsnitt: PL 3.1-3.2, 5.1-5.3,
Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera
Föreläsning 2 Variabler, tilldelning och kodblock if-satsen Logiska operatorer Andra operatorer Att programmera Variabler Det är i variabler som all data (information) lagras. Genom att ändra värde på
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
Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?
Föreläsning 10 Datalogi 1 DA2001 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer på skärmen print( Hej ) print( Hur är det?
Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk
Föreläsning 2 steknik DD1310 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer funktioner betyder att instruera en dator Ett program
Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6
Laboration 2 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Syfte: Att kunna använda sig av olika villkors- och kontrollflödeskonstruktioner
Introduktion till algoritmer - L0 - Grunder i C++ Matematikgymnasiet, Läsåret 2014-2015. L0 - Grunder i C++
Introduktion till algoritmer - L0 - Grunder i C++ Matematikgymnasiet, Läsåret 01-015 L0 - Grunder i C++ Det här är den första lektionen i kursen Introduktion till algoritmer vid Matematikgymnasiet, läsåret
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
Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.
Att förstå variabler Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Vad är en variabel? En variabel är en plats att lagra information. Precis
Tentamen 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:
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»
Uppgifter teknik HT17 (uppdaterad v. 40)
Uppgifter teknik HT17 (uppdaterad v. 40) Uppgifterna bedöms inte, de är bara till för att öva. Samarbeta gärna med andra! Du behöver inte skriva ner svaren, men se till att du förstår lösningarna! 1. Det
i LabVIEW. Några programmeringstekniska grundbegrepp
Institutionen för elektroteknik Några programmeringstekniska grundbegrepp 1999-02-16 Inledning Inom datorprogrammering förekommer ett antal grundbegrepp som är i stort sett likadana oberoende om vi talar
Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp
Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen
732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner
732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (
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
Programmering I Tobias Wrigstad fredag, 2009 augusti 28
Programmering I Tobias Wrigstad tobias@dsv.su.se Vad är programmering? Lågnivåspråk och högnivåspråk Kompilering och interpretering Variabler Notation för flödesschema (flow chart) Kontrollstrukturer (conditionals,
TDDC77 Objektorienterad Programmering
TDDC77 Objektorienterad Programmering Föreläsning 5 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Arrayer Metoder Räckvidd och Livslängd Arrayer Vända om inlästa värdena Vända om
Välkommen till. Datastrukturer, algoritmer och programkonstruktion. eller DOA
Välkommen till Datastrukturer, algoritmer och programkonstruktion eller DOA Jag: Christer Labbassar: Caroline: Johan: Agenda, före lunch Inledning om DOA-kursen Backspegel Mål Syfte Examination Om lärande
Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp
Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen
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
Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk
Föreläsning 2 steknik DD1310 Python introduktion Variabler Datatyper Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program är
JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?
Innehåll JavaScript En introduktion till skriptspråket JavaScript och till DOM Scripting Introduktion till JavaScript och DOM JavaScript Syntax DOM och DOM Scripting Händelsehantering och CSS Historia
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
Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Kurslitteraturen. C-nivå Villkorssatser [kap 8] if & elif & else and & or Loopar [kap 9] for
Inför provet Provet skrivs för hand och är uppdelad i två delar. Den första delen är på E-nivå och den andra delen är på C- och A-nivå. För att det ska bli enklare för er att träna inför provet så har
Planering Programmering grundkurs HI1024 HT TIDAA
Planering Programmering grundkurs HI1024 HT 2016 - TIDAA Föreläsning V35 Föreläsning 1 Programmering Kurs-PM Programmeringsmiljö Hello World! Variabler printf scanf Föreläsning 2 Operatorer Tilldelning
729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer
729G04 Programmering och diskret matematik Python 2: Villkorssatser, sanningsvärden och logiska operatorer Föreläsningsöversikt Vad händer när vi kör vår pythonkod? Programmerare Villkorssatser Jämförelser
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
TDDC77 Objektorienterad Programmering
TDDC77 Objektorienterad Programmering Föreläsning 3 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Operatorer Java Standard Library Inmatning Operatorer operatorer En operator är en
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
Inlämningsuppgift MiniPlotter
LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap EDAA01 Programmeringsteknik fördjupningskurs Inlämningsuppgift MiniPlotter I den här uppgiften ska ett program som ritar grafer av matematiska funktioner
Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk
Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program
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
Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Övningsuppgifter kapitel 8
Inst. för Systemteknik Introduktion till programmering (SMD 180), 5 p Övningsuppgifter kapitel 8 1. Listor är en viktig datatyp i Python. Hur definierar kursboken lista? Vad kallas de värden som tillsammans
Vilken skillnad gör det var du placerar det? Prova båda.
Micro:bit- Namnskylt Vi börjar med att döpa programmet till något. Till exempel ditt namn. Det gör du längst ner i mitten. Nu ska vi göra ett enkelt program som med lysdioderna skriver ditt namn. När du
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
Obligatorisk uppgift 5
(5 oktober 2018 Symbolisk kalkylator 1 ) Obligatorisk uppgift 5 En kalkylator som hanterar uttryck symboliskt dvs värden är uttryck inte bara tal. Uppgiften exemplifierar: objektorientering återanvändning
Föreläsning 2 Programmeringsteknik och C DD1316
Föreläsning 2 Programmeringsteknik och C DD1316 Föreläsning 2 Programmeringsteknik och C Datatyp Aritmetiska operatorer Omvandling av typer Reserverade ord Mikael Djurfeldt Logiska operatorer
Repetition C-programmering
Repetition C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. Repetition
Läsöversikt. Föreläsningar 2-6. Genomförande av laborationer
Läsöversikt LP Part I Part IV, kap 18 PL: kap 1, 2 (Sem 1), 3 (Sem 3), 5.1-5.3, 5.8 intro, 6.1-6.3, 7.1-7.3, 8.1-8.3, 9.1-9.2 Wikipedia kan användas som stöd för PL-avsnitten. Föreläsningar 2-6 Genomförande
När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt.
"!$#"%'&)(*,&.-0/ 177 Syftet med denna övning är att ge en introduktion till hur man arbetar med programsystemet MATLAB så att du kan använda det i andra kurser. Det blir således inga matematiska djupdykningar,
Dependensregler - Lathund
Dependensregler - Lathund INTRODUKTION I textprogrammet TeCST är det möjligt för en skribent att skriva, redigera och klistra in text för att få ut läsbarhetsmått och få förslag på hur texten kan skrivas
TDP007 Konstruktion av datorspråk Hemtentamen
TDP007 Konstruktion av datorspråk Hemtentamen 2008-08-20 Hemtentamen är kompletterings- och omexaminationstillfälle för de studenter som missat hela eller delar av inlämningar och seminarier, moment LAB1,
1 Funktioner och procedurell abstraktion
1 Funktioner och procedurell abstraktion Det som gör programkonstruktion hanterlig och övergripbar och överhuvudtaget genomförbar är möjligheten att dela upp program i olika avsnitt, i underprogram. Vår
Översikt över Visual Basic
Översikt över Visual Basic Om denna översikt Denna översikt ger en kort introduktion till de viktigaste delarna i programspråket Visual Basic 6.0. På alla ställen där det beskrivs hur man skriver kod gäller
Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad
1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen
Introduktion till MATLAB
29 augusti 2017 Introduktion till MATLAB 1 Inledning MATLAB är ett interaktivt program för numeriska beräkningar med matriser. Med enkla kommandon kan man till exempel utföra matrismultiplikation, beräkna
DOM (Document Object Model) är modellen efter vilken en webbläsaren är uppbyggd. Alla objekt/element i webbläsaren finns hierarkiskt ordnade i DOM.
JavaScript del1 Syftet med detta häfte är att sammanfatta det viktigaste i JavaScript så kort och koncist som möjligt men ändå tillräckligt omfattande för att ge god kännedom om en av de vanligaste teknikerna
Programmering i C++ Kompilering från kommandoraden
Programmering i C++ Kompilering från kommandoraden Sven Gestegård Robertz Datavetenskap, LTH 9 november 2015 Sammanfattning Ibland vill man, av olika anledningar, inte använda en stor integrerad utvecklingsmiljö
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
Programmering II (ID1019) :00-17:00
ID1019 Johan Montelius Programmering II (ID1019) 2014-03-10 14:00-17:00 Förnamn: Efternamn: Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
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,
Introduktion C-programmering
Introduktion C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. 2 C Standarder
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
Föreläsning 3: Typomvandling, villkor och val, samt textsträngar
Föreläsning 3: Typomvandling, villkor och val, samt textsträngar Camilla Kirkegaard camilla.kirkegaard@liu.se Linköpings universitet Sweden October 14, 2013 1 Innehåll n n n n n Repetition Typomvandlingar
1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet
1 Texthantering I detta avsnitt tas det upp två sätt att arbeta med text i C++ program. Det första sättet som behandlas är hanteringen av textfält. Texter i C++ består utav en serie med enstaka tecken
Introduktion till PHP
PHP - Grund Copyright 2016 Mahmud Al Hakim mahmud@dynamicos.se www.webacademy.se Introduktion till PHP PHP = PHP: Hypertext Preprocessor PHP är ett programmeringsspråk. PHP är ett skriptspråk som körs
F4. programmeringsteknik och Matlab
Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner
Tentamen i Introduktion till programmering
Tentamen i Introduktion till programmering Kurskod: Skrivtid: D0009E 09:00-13:00 (4 timmar) Totalt antal uppgifter: 7 Totalt antal poäng: 38 Tentamensdatum: 2014-05-17 Jourhavande lärare: Tillåtna hjälpmedel:
TENTAMEN 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:
Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:
Föreläsning 1 OH: Övergripande information Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk: * maskinspråk = ettor och nollor, kan bara en maskin förstå. * programmeringsspråk
Programmering B med Visual C++ 2008
Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,
Imperativ och Funktionell Programmering i Python #TDDD73. Fredrik Heintz,
Imperativ och Funktionell Programmering i Python #TDDD73 Fredrik Heintz, IDA fredrik.heintz@liu.se @FredrikHeintz Översikt Repetition: Satser och uttryck Variabler, datatyper, synlighet och skuggning Upprepning,
Systemutvecklare SU13, Malmö
Systemutvecklare SU13, Malmö Tentamen, delkurs Programmeringsteknik C#, del 1 (30 YH-poäng) Plats: Plushögskolan Malmö Tid: 3 oktober 2014, kl. 9.00-13.00 Tillåtna hjälpmedel: Papper, penna, suddgummi,
TDP002 - Imperativ programmering
TDP002 - Imperativ programmering Algoritmer Pontus Haglund Institutionen för datavetenskap Anpassatt från material ursprungligen av: Eric Elfving 1 Datatyper Tal UTF-8 2 Procedurell abstraktion Repetition
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
OOP Objekt-orienterad programmering
OOP Objekt-orienterad programmering OOP F1:1 Delkursansvarig Epost Kursens webbsidor sm@fc.dsv.su.se http://people.dsv.su.se/~sm/oop/ Föreläsning 1 Introduktion till kursen OOP Vad är Java? Ett första