Backcode. Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet

Storlek: px
Starta visningen från sidan:

Download "Backcode. Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet"

Transkript

1 Žƒ ƒ Ž Ž ˆ ƒ ƒ ƒ Žƒ ƒ Ž ˆ Œ ŽŽ ƒ Backcode Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet

2 Innehållsförteckning Inledning... 3 Användarhandledningen... 4 Klasser... 4 Metoder... 4 Main-klass och main-metod... 6 Objekt... 6 Deklaration av en objekt i en metod... 6 Deklaration av objekt i klass... 6 Tilldela värde av objekt... 6 Funktionsanrop hos objekt... 6 Metodanrop... 8 Uttryck... 8 If-satser... 8 While-loop... 9 For-loopen... 9 Exempel: Hello World Hello World till Ruby Exempel: Klasser Systemdokumentation BNF-Grammatik Parserregler Systemet Programkoden Syntaxträd Klasser för språket Reflektion Appendix 1: Fortsatt utveckling Appendix 2: Exempel program Klass Test While loop If sats For loop Litet Spel Appendix 3: Kod... 34

3 Inledning När man lär sig ett programmeringsspråk kan man tycka att det är enkelt och borde inte vara en alltför stor utmaning. Något man lärt sig snabbt genom åren som datoranvändare och programmerare är att även de lättaste sakerna kan vara väldigt svåra att förstå och genomföra. Backcode är ett programmeringsspråk utvecklat av mig, och som arbetades med under våren Språket är väldigt lätt och har inte alltför många avancerade funktionaliteter. Eftersom jag översätter min kod till Ruby, kan du använda många klasser och funktioner som det språket använder. Backcode är objektorienterat. Tanken är att nybörjare ska finna språket lätt även om installation och uppstart av det kan vara lite svårare. Det här är ett projekt på IP-programmet, i kursen TDP019 Projekt: datorspråk. 3

4 Användarhandledningen Vi kommer anta att du redan från början har Ruby installerat på din dator och vet hur man skriver och kompilerar Rubykod. Kodfil namngivningen ska följa standarden hos operativsystemet utan några speciall tecken och ett fil slut på.bs. Om du inte vet vart du kan få tag på Ruby kan du följa denna länk för mer infromation: ruby-lang.org Starta Ruby och ladda in filen Parser.rb. Därefter skriver du BackCode.new.RunFile filens namn för att köra kodfilen. Om du gjort allt rätt kommer den konvertera och evaluera koden utan felmeddelanden. Texter skrivna efter // är kommentarer i koden och kommer inte köras när du kör koden. En kommentar gäller endast till radslut. Nyckelord kommer vara skrivna i fet stil. Klasser Klasser har följade syntax: class name begin //Funktioner, Variabler end name; Name i början och slut måste vara densamma, annars kommer du få ett felmeddelande. Innanför begin och end skriver du funktion- och variabeldeklarationer. Notera att klassen avslutas med ; och räknas som ett nyckelord. Metoder Metoder har följande syntax: access function typ Name ([parametrar,...]) begin //Funktionsanrop, Variabel deklarationer, return och mera. end; Access kan vara public, private, protected, vilka alla tre är nyckelord. I denna version är access endast en dekoration som senare kommer bära funktionalitet. function måste skrivas med små bokstäver. Typ är den klasstyp du tänker returnera och skriv void fall inget värde ska returneras. I denna version används return som en kom ihåg-plats och har i slutändan ingen påverkan på koden. Om returtypen ej är void ska du ha return i metoden och returnera ett värde. Typ kontroll sker ej. Name är namnet på funktionen. Du kommer använda det när du vill anropa funktionen. ([parametrar,...]) är olika parametrar som du ger till funktionen. Om du inte ska ge in några argument skriver du (). Om du vill att metoden ska ta emot argument med någon data kan man skriva (Integer i) för en eller (Integer i, String j,, Integer x) för flera. Just nu är typen före namnet på variabeln bara där för kosmetiskt utseende men kommer bära funktion i framtiden. Men viktigt är att du skriver ditt typen annars kommer det inte kompilera. Mellan begin och end; så skriver du kod. Notera att metoden avslutas med ;. return variabel; 4

5 return metodanrop; Returns syntax. Först nyckelordet return sen variabel eller metodanrop. 5

6 Main-klass och main-metod Main-klassen och main-funktionen är grundkrav för att du ens ska kunna köra ett program i det här språket. Viktigt att du kommer ihåg det! Main är ett nyckelord. Syntax: class Main begin public function void Main () begin //Kod end; end Main; Objekt före objekt alias för att nå klassvariabler. I objekt alias får det ej förekomma siffror. Deklaration av en objekt i en metod (argument) to klass i; (argument) kan vara från () till (argument,, x) men antalet parametrar ska stämma överens med antalet i funktionen som anropas, skriven i klassen man deklarerar objekt av. Initialize ska skrivas som en helt vanlig funktion, men den körs varje gång du skapar en ny instans av en klass. Deklaration av objekt i klass access typ namn; Skillnaden mellan klass- och metoddeklaration av variabel är rätt stor. I klass tilldelar du aldrig något värde till variabeln, utan du säger bara att den finns. Om du vill använda den i någon funktion kom ihåg att före namnet på variabeln. access kan vara public, private och protected men är nu bara kosmetiskt. typ är klassen av variabeln. namn är namnet på variabeln du skapar. Tilldela värde av objekt (x) to i; Värde x tilldelas till objekt i. I andra språk så som c++ kan det här efterliknas med i = x. Funktionsanrop hos objekt (parametrar) metod i; (parametrar) kan vara från () till (parametrar,, x) beroende på hur initialize är skriven i klassen man deklarerar objekt av. metod är namnet på metoden du vill använda och i är objektet du använder den på. 6

7 Metodanrop ( Hello ) out IO; //Skriver ut Hello i terminalen. (x) in IO; //Läser in ett värde från användaren till x. (5) to Integer x; // x är nu en Integer med värdet 5. (5) add x; //Lägger till fem på x. x = 10 (2) sub x; //Drar bort 2 på x. x = 8 (4) mul x; //Multiplicerar 4 på x. x = 32 (2) div x; //Dividerar x med 2. x = 16 (((5) add 4) sub 5 ) add x; // (x + (5 (4 + 5))). x = 12 () funk x; //Anropar metod funk hos x; () //Anropar metod funk hos klassvariabel x; Några avancerade metodanrop och exempel. Uttryck 0 == x //returnerar falskt. true && true //returnerar sant. x!= 13 //returnerar sant. x <= 5 //returnerar falskt. x >= 5 //returnerar sant. x < 100 //returnerar sant. x > 100 //returnerar falskt. false && true //returnerar alltid falskt. Exempel på några relationsuttryck. Sen förut har x värdet 12. If-satser If-satser har lite mer komplex syntax än de tidigare kodstycken vi arbetat med. if ( relationsuttryck ) begin //kod end; if ska skrivas med små bokstäver och är själva starten av satsen. Mellan parenteserna skriver du ett relationsuttryck som kan vara just det eller ett metodanrop som returnerar ett sanningsvärde. Sen begin, en massa kod och till sist end med ; efter sig för att vissa att du avslutar satsen. if ( relationsuttryck ) begin //kod end else begin //kod end; If-else satsen börjar som en if-sats men om relationsuttryck returnerar falskt kommer koden efter else att köras. Notera att else har end före sig och begin efter sig. if ( relationsuttryck 1 ) begin //Block 1 7

8 end elsif ( relationsuttryck 2) begin //Block 2 end; Relationsuttryck 1 Relationsuttryck 2 Block som körs FALSKT SANT BLOCK 2 SANT - BLOCK 1 FALSKT FALSKT -* * Har du en else efter så kommer dens block köras. If-elsif satsen börjar som en if-sats. Men har elsif istället för att avslutas. Notera även här att elsif har end och begin efter sig och avslutas med ;. Man kan även upprepa flera elsif efter varandra. if ( relationsuttryck 1 ) begin //Block 1 end elsif ( relationsuttryck 2 ) begin //Block 2 end elsif ( relationsuttryck x ) begin //Block x end; Exempel på en lång gående else-if-sats. Mer exempel kan du hitta i del 2 av billagan. While-loop while ( relationsuttryck ) begin //kod end; While-loopen kommer köra koden mellan begin och end tills relationsuttrycket, som kan vara just det eller ett metodanrop som returnerar ett sanningsvärde, returnerar falskt. Exempel på while-loopen kan hittas i del 2 av billagan. For-loopen for(funk1; funk2; funk3) begin //kod end; For-loopen är en mer komplex form av while-loopen. funk1 körs innan loopen startas. funk2 är ett relationsuttryck och så länge det returnerar sant så fortsätter loopen köras. funk3 körs i slutet av varje loopvarv. Koden mellan begin och end körs tills funk2 returnerar falskt. Exempel på for-loopen kan hittas i del 2 av billagan. 8

9 Exempel: Hello World BackCode-kod class Main begin public function void Main () begin ( Hello World\n ) out IO; end; end Main; Rubykod Žƒ ƒ ˆƒ ŽŽ Ž ƒ ƒ ƒ ƒ Simpelt Hello World program. Till vänster har du kod ur detta språk och till höger har du koden konverterad till Rubykod. Hello World till Ruby Jag använder mig utav BackCode-koden ovan. Efter att jag skrivit koden och startat konverteringen. Är det första steget att blocka ut tockens. Tockensen som blir från koden är: class, Main, begin, public, function, void, Main, (, ), begin, (, Hello World\n, ), out, IO, ;, end, ;, end, Main, ; De i fet still görs om till symboler i Ruby. Tokensen parsar jag igenom med de regler jag skrivit för språket och börjar arbeta ihop ett syntaxträd från botten och upp. Första träffen jag får är på regeln för hur en klass(text i kursiv stil är fördjupad regel): Class, Main, Klass Block, Main, ;. Punkterna är tokens emellan. Main och Main. Nästa träff är regeln för klass block: begin, Klass deklarationer, end, ; Den ända klass deklarationen som hittas är en funktions definition: public, function, void Main, (,), block I block hittar vi ett metodanrop: (, Hello World\n,),out,IO, ;. Nu bygger jag ihop en träd via objekt där det finns ett klass för nästan varje regel som pekar på sina barn. Klass Klass block Klass deklarationer Funktions definition Block Metodanrop. Jag kallar på To_Ruby hos Klass objektet och då startas en rekursiv event där jag omvandlar objektens betydelse till Ruby kod i en sträng och till sists lägger jag på: main = Main.new main.main Det rekursiva börjar i det objekt som är längst ner till säga metodanropen. 9

10 Exempel: Klasser BackCode-kod Žƒ ƒ Ž ˆ ƒž œ š ƒ Ž ˆ ƒ ƒ ƒ ƒ ƒ ƒ Žƒ ƒ Ž ˆ ƒž œ Ž ˆ ƒ ŽŽ ƒ ƒ Ž ˆ ƒ Rubykod Žƒ ƒ ˆ ƒž œ ˆƒ ŽŽ Žˆ ƒ ƒ ˆ Žƒ ƒ ˆ ƒž œ ƒ š ˆ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ Notera att ordningen på klasserna blir omvänd så att main körs först. 10

11 Systemdokumentation I min kompilator så konverterar jag min kod till Ruby för att sedan köra den. Sluttanken är att man lätt ska kunna lägga in fler metoder så att språket kan översättas till andra språk. Just nu hanterar kompilatorn endast Backcode till Ruby med inga former av fel kontroller. När jag konverterar mitt språk till Ruby så börjar längst ner och plockar sedan ihop alltihop till en sträng som jag sedan evaluerar med Ruby. Men mer om det längre ner. BNF-Grammatik Nyckelord kommer vara skriva i halv fet stil. ƒ Žƒ ˆ ƒ Žƒ ˆ Žƒ ˆ Žƒ ˆ Žƒ Ž ˆ Žƒ Ž Žƒ Ž ƒ Žƒ Ž ƒ ˆ ˆ Žƒ Ž ƒ ƒ ˆ Žƒ Ž ƒ ƒ ˆ ˆ ˆ ˆ ˆ ƒ ˆ ˆ ƒ ƒ Ž ƒ ˆ ˆ Ž ƒ ƒ ˆ ƒ ƒ ˆ ƒ ƒ ˆ ˆ ƒ ƒ ˆ ƒ Ž ƒ Ž ƒ ƒ ƒ ƒžž ƒ ƒžž ƒ ƒžž ƒ ˆ ƒ Š Ž ˆ ˆ ƒžž ˆ ƒ ˆ ˆ ƒžž Ž Ž ˆ ƒ ˆ ˆ ƒžž Ž Ž ˆ ƒ Ž Ž Ž ˆ ˆ ƒžž Ž Ž ˆ ƒ Ž ˆ ˆ ƒžž Ž Š Ž Š Ž ˆ ƒžž Ž ˆ ˆ ˆ ƒžž ˆ ƒžž ˆ ƒžž Ž ˆ ƒžž ˆƒ ˆ ˆ ƒžž ˆ ˆƒ ˆ ˆ ˆƒ ˆ ˆƒ ˆƒ ˆƒ ˆƒ ˆƒ ˆƒ ˆƒ ˆ ˆ ƒ ˆˆ ƒ ƒ ƒ Ž Œ ŽŽ ƒ ƒ ˆ ƒ Žƒ ß Œƒ Š Ž ƒ ŽŽ ŽŽƒ ŽŽŠß ƒž 11

12 Parserregler Systemet Jag börjar med att ta ut tokens ur källkoden där jag förvandlar vissa direkt till nyckelords klasser och andra till rena strängar. Jag tar bort alla mellanrum och radbrytningar. Sedan skickas listan med token till parsen, som bygger upp det till ett syntaxträd och via trädet så översätter jag mitt språks kod till Ruby. Sist så lägger jag till skapelse av Main klassen och anrop av dess metod Main och sen evaluerar jag Ruby koden. Jag följer helt enkelt: tokens reguljära uttryck parserregler BNF körning av to_ruby eval av sträng. Programkoden Ž ƒ ˆ ˆ Š Ž Š Ž ˆƒŽ ˆƒŽ Žƒ Žƒ Ž Ž Ž ˆ Ž ˆ ˆ ˆ ˆ ˆ Ž 12

13 13 ƒ ƒ ƒ Š Žƒ ˆ ƒ Žƒ Žƒ ƒ Žƒ Žƒ ƒ Š Žƒ ˆ Žƒ ƒ Žƒ Žƒ Ž Žƒ ˆ ƒ Š Žƒ ˆƒ Žƒ Ž ˆƒ Ž Ž Žƒ Ž ƒ Ž Žƒ Ž ƒ Š Žƒ Ž Ž ƒ Š Žƒ Ž ƒ Ž Žƒ Ž Ž Ž Žƒ Ž ƒ ƒ Š ˆ ˆ Ž Žƒ Ž ƒ ˆ ˆ š ˆ ƒ Š ƒ ˆƒ ˆƒ Ž Žƒ Ž ƒ ƒ ƒ Žƒ ƒ ƒ Ž ƒ ƒ ƒ Š ƒ ˆƒ ˆƒ Ž ƒ ƒ Žƒ ƒ ƒ Ž ƒ ƒ ƒ Š ˆ ˆ Ž ˆ ˆ Ž ˆ ˆ ƒ Š ƒ ˆ ˆ ƒ ƒ Ž ƒ ƒ ƒ Ž ˆ ƒ ƒ ƒ Ž ƒ Š ƒ ˆ ˆ Ž ƒ Ž ˆ ƒ Ž Ž Ž ƒ ƒ ƒ Š ˆ ƒ ƒ ƒ ƒ ƒ ƒ ƒ Š ƒ ƒ Ž ˆ ƒ ƒ ƒ Š ˆ ƒ ƒ ƒ Š ˆ ƒ ƒ ƒ ˆƒ ˆ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ Ž ƒ ƒ Š Ž ƒ Š ƒ ƒ Š Ž Ž ƒ Š ƒ ƒ Ž ƒ ƒ Š Ž

14 Ž ƒ ƒ Š ƒ ƒžž ƒ ƒ ƒž ƒ ƒ ƒž ƒ Š ƒžž ƒ ƒž ƒ ƒž Ž ƒžž ƒ ƒ Š ˆ ƒ ƒ ƒ ƒ Š Š Ž ƒ ƒ ƒ Š ˆ ƒ ƒ ƒ Š ˆ ƒžž ƒ ƒ ƒ Š ƒž ƒ Ž ƒž ƒ Š ƒ Š ˆƒŽ ˆƒŽ ƒ Š ˆƒ ƒ Š ˆ ƒžž Ž ˆ ƒ ƒ Š ˆ ˆ ƒžž Ž Ž ˆ ƒ Ž š ˆ ƒ ˆ Ž š ƒ Š ˆ ˆ ƒžž Ž Ž ˆ ƒ ˆ Ž Ž Ž Ž ˆ ƒ ƒ Š Ž Ž Ž ˆ ƒ Ž Ž Ž Ž ƒ Š Ž ˆ ˆ ƒžž Ž Ž ˆ ƒ Ž š ˆ ƒ Ž ˆ Ž š ƒ Š Ž ˆ ˆ ƒžž Ž Ž ˆ ƒ Ž ˆ Ž Ž Ž Š Ž ƒ Š Š Ž ˆ ƒžž Ž Ž Š Ž ƒ Ž Ž ˆ ƒ Š ˆ ˆ ƒžž ˆ ƒžž ˆ ƒžž Ž ˆ Ž Ž ƒ ˆ Ž Ž Ž ˆ ƒžž ƒ Š ˆƒ ˆ ƒ ƒžž ƒ ƒ Š ˆƒ ˆ ƒ ƒžž ƒ ƒ Š ˆƒ ˆƒ ƒ ƒžž ƒ ƒ Š ˆ ƒžž ˆ 14

15 ƒ ƒžž ƒ ƒ Š ˆ ƒžž ˆ ƒ ƒžž ƒ ƒ Š ˆƒ ƒ ƒžž ƒ ƒ Š ˆƒ ƒ ƒžž ƒ ƒ Š ˆ ƒžž ƒ ƒžž ƒ ƒ Š ƒ ˆ ƒ Š ˆƒ ƒ ˆ ƒ ƒžž ƒ ƒ ƒ Š ˆƒ ˆ ƒ ƒžž ƒ ƒ Š ˆƒ ˆ ƒ ƒžž ƒ ƒ Š ˆƒ Ž ˆ ƒ ƒžž ƒ Ž Žˆ ƒ Š ˆƒ Ž ˆƒ ƒ Ž š ƒžž ƒ Ž š ƒ ƒ ˆ ƒžž ƒ Žƒ ƒ Š ˆƒ ˆ ˆ ƒ ƒ ˆ ƒžž ƒ ƒ ˆ ƒ Š ˆƒ ˆ ƒ ƒ ˆ ƒžž ƒ ƒ ˆ Ž ƒ ƒ Ž ƒ Š ˆ Ž ˆƒ ƒ Š ˆƒ ƒ ƒ ƒ Š Ž ˆƒ ƒ Š ˆƒ ƒ ˆƒ ƒ ƒ ƒ ƒ ƒ Š ˆƒ ƒ ƒ Ž ˆƒ ƒ Š ˆ ƒ Š ƒ Š ƒ Š Ž ƒ Ž ƒ Š Ž ƒ Ž ƒ 15

16 ƒ Š ƒ ƒ Ž ƒ Š Ž ˆ ƒ Š Syntaxträd Pilarna ska föreställa flöde upp mot program. Klasser för språket Žƒ ˆ ˆ ƒž œ ƒ ƒ ƒ

17 17 ˆƒ ƒ Žƒ ƒ ˆ ƒž œ Žƒ ƒ ƒ Ž ˆ ƒž œ Žƒ ƒ ˆ Žƒ ƒ Žƒ ƒ ˆ ˆ ƒž ˆŽƒ ƒ Žƒ ƒ ˆ ˆ ˆ ˆ ƒž ƒž ƒž ˆƒŽ ƒž Žƒ Ž ˆ ƒž œ Ž Ž Ž ˆ Ž Žƒ Žƒ ˆ ƒž œ Ž ˆ Š Žƒ ƒ ƒ ƒ Š ƒ Žƒ ƒ Ž Ž

18 Ž Žƒ ƒ Žƒ ƒ ƒ ˆ ƒž œ ƒ Ž ƒ ƒ š ˆ š Ž ƒ ƒ š Žƒ ˆ ˆ ƒž œ ƒ ƒž ƒ ƒ ƒ Ž Ž ƒ ƒ ƒž ƒž ƒ ƒ ƒ ƒ ƒ ƒ Ž Ž š ˆ š ˆ š Ž Š š Žƒ ƒ ƒ Ž š ˆ ƒ ƒ Ž ƒ ƒ Ž Ž ˆ ƒ ˆ š Ž š 18

19 19 Žƒ Žƒ ƒ ƒ Ž ˆ ƒž œ ƒ ƒ Ž ƒ ƒ ƒ ƒ š ˆ š ˆ š Ž Š š Žƒ ƒ ƒ Ž š ƒ ˆ š Ž š Žƒ Žƒ Ž ˆ ƒž œ ˆ ˆ ˆ ˆ Ž Žƒ Ž ˆ ƒž œ

20 ƒ ƒ Ž ƒ ˆ ˆ ˆ ˆ ƒ ƒ ƒ Ž ˆ Ž Žƒ ƒ ˆ ƒž œ Ž š ˆ š Ž š Žƒ ˆ ƒ ˆ ƒž œ ƒ Ž ƒ Ž Ž ƒ ƒ Ž ƒ Ž ƒ Ž Ž š Ž ˆ Ž ƒ Žƒ š Ž 20

21 21 Ž ˆ ƒ ˆ ˆ š Ž ˆ Ž ƒ Ž Ž ˆ Ž ƒ Ž š Ž ˆ ƒ Ž ˆ ˆ š Ž Ž ˆ Ž ƒ Ž Ž Ž ˆ Ž ƒ Ž š Žƒ Š Ž ƒ ˆ ƒž œ Ž ƒ Ž Ž ƒ Ž ƒ Ž Ž Š Ž Ž ƒ Ž Žƒ ƒ ˆ ƒž œ ˆ Ž Ž ˆ ˆ Ž Ž Ž Ž ˆ Š Ž Ž Ž Žƒ ˆ ƒž œ ƒž ƒž ƒž ƒž Žƒ ƒžž ˆ ƒž œ ƒž ˆ ƒ ƒž ƒž

22 22 ˆ ˆ ƒ ƒ ˆ š Ž š ˆ Ž ˆ ƒ ˆ ˆ ƒž Ž ˆ ˆ ƒž ˆ ˆ ƒžž ƒ Žƒ ˆ ƒž ƒ ƒ ƒž ˆ ƒ ƒž Ž ƒ ƒž ˆ ˆ ƒ ƒ ƒ ƒž Ž ˆ ˆ ƒ ƒ ƒž Ž ˆ ˆ ƒ ƒ ƒž Ž ˆ ˆ Ž ƒ ƒ ƒž ˆ ˆ ƒž ƒ Ž ˆ ˆ ƒž ƒ Ž ˆ ˆ ƒž ƒ Ž ˆ ˆ ƒž ƒ Ž ˆ ˆ

23 ƒž ƒ Ž ˆ ˆ ƒž ƒ ˆ ƒ Žˆ ˆ ƒž ƒ ˆ ƒž Žƒ ƒ ˆ ƒž œ Žƒ ƒ ˆ Žƒ Žƒ ˆ Žƒ Ž ˆ š Žƒ š Reflektion Att göra ett eget programmeringsspråk var inte lika lätt som jag trott från början och jag har förstått några av de svårigheter man kan stöta på när man utvecklar ett språk. Störst var att parsningen blandade ihop flera olika regler så jag vart tvungen att tänka om på några grammatiska regler, som visade sig bli en riktigt utmaning. Den lättaste utmaningen var att få ner allt till kod och test köra det och var även den roligaste biten. Jag önskar jag hade haft mer tid på att arbeta på språken innan inlämning för en del saker behöver finslipas och göras bättre så som public, private och protected delarna. Projektet i sig har varit väldigt lärande och något jag känner att jag kommer kunna använda i framtiden speciellt när man ska ta fram lite mer avancerade skript till spel/program man utvecklar. 23

24 Appendix 1: Fortsatt utveckling Flera delar fungerar just nu bara som kosmetiska utseenden. De jag syftar på är i funktions definitionen där parametrarna kan ta in vad som helst fast de bara borde kunna ta in angiven typ. Public, private och protected är också bara kosmetiska och behöver tas in i koden så att de kan ge någon viktigt. Första utvecklingen från nu blir att lägga in felsökning av programmet via det syntaxträd som bygds upp och sedan lägga in så att public, private och protected bär något värde. Även om arv inte ännu finns så kan det i alla fall vara bra om man har en fungerande grund för kommande utveckling. Appendix 2: Exempel program Klass Test BackCode-kod Žƒ ƒ Ž Ž ˆ ƒ ƒ ƒ Žƒ ƒ Ž ˆ Œ ŽŽ ƒ Ruby-kod Žƒ ƒ ˆ Œ ŽŽ Žƒ ƒ ˆƒ ƒ ƒ ƒ ƒ ƒ 24

25 25 While loop BackCode-kod Žƒ ƒ Ž ˆ ƒ Š Ž ŽŽ ƒ Š ƒ Ruby-kod Žƒ ƒ ˆƒ Š Ž ŽŽ Š ƒ ƒ ƒ ƒ If sats BackCode Žƒ ƒ Ž ˆ ƒ ˆ

26 26 Ž ˆ Ž ˆ Ž ˆ Š Ž Š Ž ƒ Ruby-kod Žƒ ƒ ˆƒ ˆ Ž ˆ Ž ˆ Ž ˆ Š Ž Š Ž ƒ ƒ ƒ ƒ

27 For loop BackCode-kod Žƒ ƒ Ž ˆ ƒ ˆ ƒ ŽŽ ƒ Ruby-kod Žƒ ƒ ˆƒ Š Ž ŽŽ ƒ ƒ ƒ ƒ Litet Spel BackCode-kod Žƒ ƒ Ž ˆ ƒ Žƒ ƒ Š ƒ ƒ ƒ ƒ ƒ Š Ž Ž ŽŽ Žƒ ˆƒ ƒ ƒ ƒ ƒ ƒ 27

28 ƒ ƒ Š ƒ Š Š Š Š ˆ Š ƒ ƒ ƒ ˆ Š ƒ ƒ ƒ ƒ Žƒ Žƒ Ž Š Ž ˆ ƒž œ Š Ž ˆ Ž Ž ˆ Š Ž ˆƒŽ Ž ˆ ˆƒ Šƒ Š Š Ž ˆ Ž ˆ ƒ ƒ Š Žƒ Žƒ ƒ Ž ˆ ƒ Œ ˆ Œ ƒ Š 28

29 Ž ˆ Œ š Ž ˆ Œ š Ž ˆ Œ š ƒ Ruby-kod Žƒ ƒ ˆ ƒ Œ ˆŒ ƒ Š Ž ˆŒ š Ž ˆŒ š Ž ˆŒ š Žƒ Žƒ Š ˆ ƒž œ Š ˆ Ž ˆ Š Ž ˆƒŽ ˆ ˆƒ Šƒ Š Š Ž ˆ ˆƒ ƒ Š Š 29

30 30 Žƒ ƒ ˆƒ Žƒ ƒ Š ƒ ƒ ƒ ƒ ƒ Š Ž Ž ŽŽ Žƒ ˆƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ Š ƒ Š Š Š Š ˆ Š ƒ ƒ ƒ ˆ Š ƒ ƒ

31 ƒ ƒ ƒ ƒ 31

32 Appendix 3: Kod ˆ Š ˆ Ž ˆ Š ƒ ˆ Š ŠŠƒ Ž ˆƒŽ ƒž ƒ ƒ Šƒ ƒ ƒ ƒ ˆ ƒ ˆˆ ƒ Ž Žƒ Ž Ž ƒ Š Š Š Ž Š ˆ Š ƒ Žƒ Ž Š Ž ƒ Š ƒ ƒ ƒ Š ƒ ƒ ƒ Š ƒ Š ƒ Ž ˆ ƒž œ ƒ ƒ Ž ƒ Ž Š ƒ ˆ Š š Š Ž ƒ Š ƒ ƒ Š ƒ Ž ƒ š Š Š ƒ ˆ Š ƒ Š Œ ƒ ƒ Š Š Ž ƒ ƒ ƒ Š ˆ ƒ Š Ž ƒ Š ƒ ƒ Š š Š Ž ƒ Š šƒ Ž ƒ Š ƒ ƒ Š ƒ ƒ Š Š ˆ Š š ˆ ƒ Š ƒ Ž ƒ Š ƒ Š ƒ Ž ˆ Š ƒ Ž ˆ Š ƒ Š Ž ˆ ˆ ƒ ƒ ƒ Š ˆ Ž ƒ Š ƒ Š Ž ƒ Š ƒ Š ˆ ƒ Ž ˆ ƒ Š ˆ ƒ ˆ ƒ Š Ž ƒ Š ƒ Š Ž ˆ ƒ Š Ž Ž Ž Ž ƒ Š Ž ƒ Š ƒ Š Ž ƒ Š Ž ˆ Ž Ž ƒ Š Ž Ž 32

33 ƒ ƒžž ƒ Š ƒ ˆ Š Ž ˆ ƒ Š ƒ Š Ž Ž ƒ Š Ž Ž ƒ Š Š ˆ Š ƒ ƒ ƒ ƒ Š ƒ Š ƒ Š Ž ƒ Ž ƒ ƒ Žƒ Ž Ž ˆ ƒž ƒ š Ž Ž Ž ƒ Š Š Š ƒ ˆ Š ƒ Š Š ƒ š ƒ Š ƒ ƒ Š Š š š ˆ Š ƒ ƒ Š Ž ˆ ƒ Š Ž ƒ ƒ ˆ ƒ Ž Ž ƒ Ž ƒ ˆ Ž Žƒ Ž Ž Ž ƒ Ž ƒ Š ƒ ƒ Š ƒ š Ž Š Š ƒ ƒ ˆƒ Ž Š Ž ƒ š ˆ Ž ˆ Ž ƒ Š Ž ƒ Š ƒ Š ƒ ƒ ƒ Š ƒ Ž ƒ ƒ Š ƒ Ž ƒ Š ƒ ƒ ˆ Ž ƒ ƒ Ž Ž Ž ƒ ˆ Ž ˆ ƒ Š Ž ƒ Š Ž ƒ Š Ž ƒžž Ž Ž ƒ Š Ž Ž Ž ƒ ƒ ƒ ƒ Š ƒ ƒ ƒ ƒ Š Ž Ž ƒ Š Ž Ž ƒ Ž ˆ Š Ž ƒ Š Š Ž ƒ Š ƒ ˆ Š Žƒ ƒ Š 33

34 34 ƒ ƒ ƒ Š Ž Žƒ ƒ ƒ ƒ ƒ ƒ Ž Ž Žƒ ƒ ˆ ƒž œ Žƒ ƒ ƒ Ž Ž Ž š Ž ƒ Ž Žƒ ƒ ƒ Žƒ ƒ ƒ ƒ ƒž Ž œ Š ƒžž ˆ œ Ž Ž Ž ƒ ˆ Š ƒž ˆ Žƒ ƒ ƒ Š ˆ š ˆ ˆƒ Ž Šƒ š ƒ ƒ ƒ Ž Ž š Ž Ž š ƒ ƒ Š ƒ ƒ Š Š Žƒ š ˆƒ Šƒ ƒ Š Š ˆ ˆ ƒ Š Ž ƒ Š Ž ƒž ƒ Š š Š Ž ƒ ƒ Š Š Ž ƒžž ƒ Š ˆ Ž Š ƒ Šƒ Š Š ˆ Š ƒ Š ƒ Š Ž Š ƒ ƒ Š Š š ˆƒŽ ˆ ƒ Ž ˆ ƒ Ž Š ƒ Š ˆ ƒ ƒ ƒžž Šƒ ƒ ƒ œ Š ƒ ƒ Ž ƒ ƒ Š ˆ Š ƒž ˆ

35 35 ƒ Š ƒ ƒš š ƒ ƒ ƒž ƒ Š Ž ƒ ƒ ˆ Š ƒ ƒ š ƒ ƒž ˆ œ ƒ ƒ ƒ š š Œ ˆ ƒš Ž ˆ š Š š Š ˆ š š ˆ ƒš ƒš š ˆ š ˆ ƒš š Ž Ž ˆ ƒ ˆ Žƒ ƒ ƒ ƒ š ƒ Ž ˆ ƒ Ž Ž š š š ƒ Ž ˆ ƒ ƒ Ž Ž ƒ Ž ƒ Ž ƒ ˆ Ž ƒ Ž Ž Ž ƒ Žˆ Ž ƒ Ž ƒ ƒž Ž Ž Ž ˆ ƒ Š ƒ Ž Ž ƒ Š ƒ Ž

36 36 Žƒ ˆ ˆ ƒž œ ƒ ƒ ƒ ˆƒ ƒ Žƒ ƒ ˆ ƒž œ Žƒ ƒ ƒ Ž ˆ ƒž œ Žƒ ƒ ˆ Žƒ ƒ Žƒ ƒ ˆ ˆ ƒž ˆŽƒ ƒ Žƒ ƒ ˆ ˆ ˆ ˆ ƒž ƒž ƒž ˆƒŽ ƒž Žƒ Ž ˆ ƒž œ Ž Ž Ž ˆ Ž Žƒ Žƒ

37 37 ˆ ƒž œ Ž ˆ Š Žƒ ƒ ƒ ƒ Š ƒ Žƒ ƒ Ž Ž Ž Žƒ ƒ Žƒ ƒ ƒ ˆ ƒž œ ƒ Ž ƒ ƒ š ˆ š Ž ƒ ƒ š Žƒ ˆ ˆ ƒž œ ƒ ƒž ƒ ƒ ƒ Ž Ž ƒ ƒ ƒž ƒž ƒ ƒ ƒ ƒ ƒ ƒ Ž Ž š ˆ š ˆ š Ž Š š Žƒ ƒ ƒ Ž š ˆ ƒ ƒ Ž ƒ ƒ Ž

38 38 Ž ˆ ƒ ˆ š Ž š Žƒ Žƒ ƒ ƒ Ž ˆ ƒž œ ƒ ƒ Ž ƒ ƒ ƒ ƒ š ˆ š ˆ š Ž Š š Žƒ ƒ ƒ Ž š ƒ ˆ š Ž š Žƒ Žƒ Ž ˆ ƒž œ ˆ ˆ ˆ

39 39 ˆ Ž Žƒ Ž ˆ ƒž œ ƒ ƒ Ž ƒ ˆ ˆ ˆ ˆ ƒ ƒ ƒ Ž ˆ Ž Žƒ ƒ ˆ ƒž œ Ž š ˆ š Ž š Žƒ ˆ ƒ ˆ ƒž œ ƒ Ž ƒ Ž Ž

40 40 ƒ ƒ Ž ƒ Ž ƒ Ž Ž š Ž ˆ Ž ƒ Žƒ š Ž Ž ˆ ƒ ˆ ˆ š Ž ˆ Ž ƒ Ž Ž ˆ Ž ƒ Ž š Ž ˆ ƒ Ž ˆ ˆ š Ž Ž ˆ Ž ƒ Ž Ž Ž ˆ Ž ƒ Ž š Žƒ Š Ž ƒ ˆ ƒž œ Ž ƒ Ž Ž ƒ Ž ƒ Ž Ž Š Ž Ž ƒ Ž Žƒ ƒ ˆ ƒž œ ˆ Ž Ž ˆ ˆ Ž Ž Ž Ž ˆ Š Ž Ž Ž Žƒ ˆ ƒž œ ƒž ƒž ƒž

41 41 ƒž Žƒ ƒžž ˆ ƒž œ ƒž ˆ ƒ ƒž ƒž ˆ ˆ ƒ ƒ ˆ š Ž š ˆ Ž ˆ ƒ ˆ ˆ ƒž Ž ˆ ˆ ƒž ˆ ˆ ƒžž ƒ Žƒ ˆ ƒž ƒ ƒ ƒž ˆ ƒ ƒž Ž ƒ ƒž ˆ ˆ ƒ ƒ ƒ ƒž Ž ˆ ˆ ƒ ƒ ƒž Ž ˆ ˆ ƒ ƒ ƒž Ž ˆ ˆ Ž ƒ ƒ ƒž

42 42 ˆ ˆ ƒž ƒ Ž ˆ ˆ ƒž ƒ Ž ˆ ˆ ƒž ƒ Ž ˆ ˆ ƒž ƒ Ž ˆ ˆ ƒž ƒ Ž ˆ ˆ ƒž ƒ ˆ ƒ Žˆ ˆ ƒž ƒ ˆ ƒž Žƒ ƒ ˆ ƒž œ Žƒ ƒ ˆ Žƒ Žƒ ˆ Žƒ Ž ˆ š Žƒ š Žƒ ƒ ˆ ƒž œ

43 43 ƒ ƒ ƒ ƒ ƒ Ž ƒ ˆ ˆ Š Ž Š Ž ˆƒŽ ˆƒŽ Žƒ Žƒ Ž Ž Ž ˆ Ž ˆ ˆ ˆ ˆ ˆ Ž ˆ ƒ ƒ ƒ Š Žƒ ˆ ƒ Žƒ Žƒ ƒ Žƒ Žƒ ƒ Š Žƒ ˆ Žƒ ƒ Žƒ Žƒ Ž Žƒ ˆ ƒ Š Žƒ ˆƒ Žƒ Ž ˆƒ Ž Ž Žƒ Ž ƒ Ž Žƒ Ž ƒ Š Žƒ Ž Ž ƒ Š Žƒ Ž ƒ Ž Žƒ Ž Ž Ž Žƒ Ž ƒ ƒ Š ˆ ˆ Ž Žƒ Ž ƒ ˆ ˆ š ˆ ƒ Š ƒ ˆƒ ˆƒ Ž Žƒ Ž ƒ ƒ ƒ Žƒ ƒ ƒ Ž ƒ ƒ ƒ Š ƒ ˆƒ ˆƒ Ž ƒ ƒ Žƒ ƒ ƒ Ž ƒ ƒ ƒ Š ˆ ˆ Ž ˆ ˆ Ž ˆ ˆ

44 ƒ Š ƒ ˆ ˆ ƒ ƒ Ž ƒ ƒ ƒ Ž ˆ ƒ ƒ ƒ Ž ƒ Š ƒ ˆ ˆ Ž ƒ Ž ˆ ƒ Ž Ž Ž ƒ ƒ ƒ Š ˆ ƒ ƒ ƒ ƒ ƒ ƒ ƒ Š ƒ ƒ Ž ˆ ƒ ƒ ƒ Š ˆ ƒ ƒ ƒ Š ˆ ƒ ƒ ƒ ˆƒ ˆ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ Ž ƒ ƒ Š Ž ƒ Š ƒ ƒ Š Ž Ž ƒ Š ƒ ƒ Ž ƒ ƒ Š Ž Ž ƒ ƒ Š ƒ ƒžž ƒ ƒ ƒž ƒ ƒ ƒž ƒ Š ƒžž ƒ ƒž ƒ ƒž Ž ƒžž ƒ ƒ Š ˆ ƒ ƒ ƒ ƒ Š Š Ž ƒ ƒ ƒ Š ˆ ƒ ƒ ƒ Š ˆ ƒžž ƒ ƒ ƒ Š ƒž ƒ Ž ƒž ƒ Š ƒ Š ˆƒŽ ˆƒŽ ƒ Š ˆƒ ƒ Š ˆ ƒžž Ž ˆ ƒ ƒ Š ˆ ˆ ƒžž Ž Ž ˆ ƒ Ž š ˆ ƒ ˆ Ž š ƒ Š ˆ ˆ ƒžž Ž Ž ˆ ƒ ˆ Ž Ž Ž Ž ˆ ƒ ƒ Š Ž Ž Ž ˆ ƒ Ž Ž Ž Ž 44

45 ƒ Š Ž ˆ ˆ ƒžž Ž Ž ˆ ƒ Ž š ˆ ƒ Ž ˆ Ž š ƒ Š Ž ˆ ˆ ƒžž Ž Ž ˆ ƒ Ž ˆ Ž Ž Ž Š Ž ƒ Š Š Ž ˆ ƒžž Ž Ž Š Ž ƒ Ž Ž ˆ ƒ Š ˆ ˆ ƒžž ˆ ƒžž ˆ ƒžž Ž ˆ Ž Ž ƒ ˆ Ž Ž Ž ˆ ƒžž ƒ Š ˆƒ ˆ ƒ ƒžž ƒ ƒ Š ˆƒ ˆ ƒ ƒžž ƒ ƒ Š ˆƒ ˆƒ ƒ ƒžž ƒ ƒ Š ˆ ƒžž ˆ ƒ ƒžž ƒ ƒ Š ˆ ƒžž ˆ ƒ ƒžž ƒ ƒ Š ˆƒ ƒ ƒžž ƒ ƒ Š ˆƒ ƒ ƒžž ƒ ƒ Š ˆ ƒžž ƒ ƒžž ƒ ƒ Š ƒ ˆ ƒ Š ˆƒ ƒ ˆ ƒ ƒžž ƒ ƒ ƒ Š ˆƒ ˆ ƒ ƒžž ƒ ƒ Š ˆƒ ˆ ƒ ƒžž ƒ ƒ Š ˆƒ Ž ˆ ƒ ƒžž ƒ Ž Žˆ ƒ Š ˆƒ Ž ˆƒ ƒ Ž š ƒžž ƒ Ž š ƒ ƒ ˆ ƒžž ƒ Žƒ ƒ Š ˆƒ ˆ ˆ ƒ ƒ ˆ ƒžž ƒ ƒ ˆ ƒ Š ˆƒ ˆ ƒ ƒ ˆ ƒžž ƒ ƒ ˆ 45

46 Ž ƒ ƒ Ž ƒ Š ˆ Ž ˆƒ ƒ Š ˆƒ ƒ ƒ ƒ Š Ž ˆƒ ƒ Š ˆƒ ƒ ˆƒ ƒ ƒ ƒ ƒ ƒ Š ˆƒ ƒ ƒ Ž ˆƒ ƒ Š ˆ ƒ Š ƒ Š ƒ Š Ž ƒ Ž ƒ Š Ž ƒ Ž ƒ ƒ Š ƒ ƒ Ž ƒ Š Ž ˆ ƒ Š ˆ š Ž Š ˆ Ž ˆ Ž Ž ˆ Ž ˆ Ž Š Ž Ž ˆ Ž Ž ƒ ƒ ƒ ƒ ƒ ƒ ƒ 46

47 ƒž ˆŽ ƒ ˆ ƒ ƒ Ž Ž Ž Ž ƒ Ž Ž Ž ƒ Ž ŽŽ Ž 47

Linköpings universitet Innovativ Programmering TDP019 Projekt: Datorspråk. flip/flop. ett helt flippat språk

Linköpings universitet Innovativ Programmering TDP019 Projekt: Datorspråk. flip/flop. ett helt flippat språk 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

Läs mer

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

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

Läs mer

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan. Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen

Läs mer

PROMETHEUS. Ett typat, objektorienterat programmeringsspråk av Tim Andersson.

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:

Läs mer

Objektorienterad Programmering (TDDC77)

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

Läs mer

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

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

Läs mer

Användarhandledning Version 1.2

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

Läs mer

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

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

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 (

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

Läs mer

Java, klasser, objekt (Skansholm: Kapitel 2)

Java, klasser, objekt (Skansholm: Kapitel 2) Java, klasser, objekt (Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Objectorienterad programmering Sida 1 Vad är en klass? En klass är ett sätt att beskriva en mängd objekt och deras gemensamma

Läs mer

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

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

Läs mer

TDIU01 - Programmering i C++, grundkurs

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

Läs mer

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

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,

Läs mer

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

Programmering A. Johan Eliasson johane@cs.umu.se Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer

Läs mer

TUTORIAL: KLASSER & OBJEKT

TUTORIAL: KLASSER & OBJEKT TUTORIAL: KLASSER & OBJEKT I denna tutorial lär vi oss att använda klasser och objekt samt hur vi bygger en enkel applikation kring dessa. I tutorialen kommer det finnas en mängd kod som du antingen kan

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

Tentamen Grundläggande programmering

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:

Läs mer

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära

Läs mer

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C. Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett

Läs mer

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

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java (Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart

Läs mer

DD1361 Programmeringsparadigm. Carina Edlund

DD1361 Programmeringsparadigm. Carina Edlund DD1361 Programmeringsparadigm Carina Edlund carina@nada.kth.se Funktionell programmering Grundidéen med funktionell programmering är att härma matematiken och dess funktionsbegrepp. Matematiskt funktionsbegrepp

Läs mer

Anteckningar 1: Grundläggande saker

Anteckningar 1: Grundläggande saker UPPSALA UNIVERSITET Institutionen för lingvistik och filologi Mats Dahllöf http://stp.ling.uu.se/ matsd/uv/uv11/pst1/ Programmering för språkteknologer I Anteckningar 1: Grundläggande saker 1 Programmering

Läs mer

Kompilatorer och interpretatorer

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

Läs mer

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

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

Läs mer

Att skriva till och läsa från terminalfönstret

Att skriva till och läsa från terminalfönstret Att skriva till och läsa från terminalfönstret Oftast används grafiska komponenter i Java för att kommunicera med användaren (användargränssnitt), men det finns objekt i standardbiblioteken för de tillfällen

Läs mer

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,

Läs mer

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering och metoder Introduktion till objektorienterad programmering Markus Saers markus.saers@lingfil.uu.se orientering Deklarativ programmering Beskriver förutsättningarna för något Prolog Imperativ programmering

Läs mer

Programmeringsteknik med C och Matlab

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

Läs mer

F4. programmeringsteknik och Matlab

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

Läs mer

Föreläsning 5-6 Innehåll

Föreläsning 5-6 Innehåll Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]

Läs mer

Användar- och systemdokumentation

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

Läs mer

LÖSNINGSFÖRSLAG TENTAMEN

LÖSNINGSFÖRSLAG TENTAMEN LÖSNINGSFÖRSLAG TENTAMEN OBJEKTORIENTERAD PROGRAMMERING I JAVA 5P FRISTÅENDE KURS, DAG (ITM - ÖSTERSUND) MÅNDAG 2 JUNI, 2003, KL. 8-13 TID: 5 TIMMAR ANTAL UPPGIFTER: 8 MAX POÄNG: 43 BETYGSKALA: UNDERKÄND

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik 2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det riktiga provet tar 45 minuter (en lektionstimme) och det

Läs mer

Programmering för språkteknologer I, VT2012. Rum

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

Läs mer

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

Föreläsning 3: Booleans, if, switch TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt

Läs mer

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... } En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

Föreläsning 3. Programmering, C och programmeringsmiljö

Föreläsning 3. Programmering, C och programmeringsmiljö Föreläsning 3 Programmering, C och programmeringsmiljö Vad är programmering? Ett väldigt kraftfullt, effektivt och roligt sätt att kommunicera med en dator Att skapa program / applikationer till en dator

Läs mer

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:

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

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Java Språket Utmatning av Sträng litteraler Variabler

Läs mer

Metoder (funktioner) Murach s: kap Winstrand Development

Metoder (funktioner) Murach s: kap Winstrand Development (funktioner) Murach s: kap 6 2013-01-23 1 Winstrand Development Metoder I C# kan vi dela in koden i block en kodsekvens ska köras likadant på flera ställen i applikationen. Detta block kallas för en metod

Läs mer

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer

Läs mer

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

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

Läs mer

Föreläsning 3-4 Innehåll

Föreläsning 3-4 Innehåll Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå

Läs mer

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga

Läs mer

Inlämningsuppgift MiniPlotter

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

Läs mer

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305 Klass Object, instans av klass public/private Klassvariabler och klassmetoder 1 Array och ArrayList Arrayer och ArrayList är till för att innehålla

Läs mer

Föreläsning 6: Introduktion av listor

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

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar

Läs mer

Programmering för språkteknologer II, HT2011. Rum

Programmering för språkteknologer II, HT2011. Rum Programmering för språkteknologer II, HT2011 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv11/pst2/ Kursplan Mål Efter avslutad kurs skall studenten för att förtjäna betyget

Läs mer

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten? Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

Läs mer

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

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

Läs mer

Föreläsning 6: Metoder och fält (arrays)

Föreläsning 6: Metoder och fält (arrays) TDA 545: Objektorienterad programmering Föreläsning 6: Metoder och fält (arrays) Magnus Myréen Chalmers, läsperiod 1, 2015-2016 I (föregående och) denna föreläsning Läsanvisning: kap 2 & 13 meddelanden

Läs mer

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Inledning Starta Microsoft Visual Studio 2005. Välj create Project Välj VB + Vindows Application och välj ett nytt

Läs mer

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

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

Läs mer

Programmering B med Visual C++ 2008

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,

Läs mer

TDDC77 Objektorienterad Programmering

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

Läs mer

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private Inkapsling tumregler Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler Tobias Wrigstad (baserat på material från Tom Smedsaas) 5 november 2010 1. Man skall

Läs mer

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel Programmeringsteknik för Bio1 och I1 Övning 2 Kort repetition Övningsgrupp 3 (Sal E33) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1310/

Läs mer

Introduktion C-programmering

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

Läs mer

Introduktion till programmering och Python Grundkurs i programmering med Python

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

Läs mer

Design av interaktiv multimedia. Läs i förväg om det som övningarna kommer att beröra. Träna hemma både före och efter övningarna.

Design av interaktiv multimedia. Läs i förväg om det som övningarna kommer att beröra. Träna hemma både före och efter övningarna. Använd olika lager. Döp lagren! Organisera era bibliotek! Design av interaktiv multimedia Ge era symboler instansnamn för att hitta dem med AS. Nytt för denna kurs: Ingen ActionScript-kod i.fla-filen!

Läs mer

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

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Underprogram - Funktioner Eric Elfving Institutionen för datavetenskap 18 september 2014 Översikt 2/22 Återblick till satsblocken Funktioner - Namngivna satsblock

Läs mer

Objektorienterad programmering D2

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

Metoder. Inledande programmering med C# (1DV402)

Metoder. Inledande programmering med C# (1DV402) Metoder 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 i detta verk av

Läs mer

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

Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken

Läs mer

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Tentamen ID1004 Objektorienterad programmering October 29, 2013 Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.

Läs mer

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta

Läs mer

Repetition C-programmering

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 mer

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

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

Läs mer

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering Programmeringsteknik för I1 Övning 2 Administrativt Övningsgrupp 2 (Sal E32/D32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kontrollera att ni har fått Lab2 inrapporterad

Läs mer

Lab5 för prgmedcl04 Grafik

Lab5 för prgmedcl04 Grafik Lab5 för prgmedcl04 Grafik Viktigt läs detta först:den här labblydelsen är ganska lång, detta betyder inte att labben tar lång tid.en hel del av lydelsen är anvisning om hur man går tillväga för att kunna

Läs mer

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

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

Läs mer

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

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

Läs mer

Classes och Interfaces, Objects och References, Initialization

Classes och Interfaces, Objects och References, Initialization Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class

Läs mer

Visual Basic, en snabbgenomgång

Visual Basic, en snabbgenomgång Visual Basic, en snabbgenomgång Variabler och Datatyper En variabel är som en behållare. Olika behållare passar bra till olika saker. I Visual Basic(härefter VB) finns olika typer av behållare för olika

Läs mer

Labora&on 2 Funk&oner, if och loop övningar/uppgi:er

Labora&on 2 Funk&oner, if och loop övningar/uppgi:er Labora&on 2 Funk&oner, if och loop övningar/uppgi:er 1M322 Webbteknik 2, 7,5hp Medieteknik 2017 Rune Körnefors rune.kornefors@lnu.se 1. Ladda ner arbetsdokument Till övningarna i denna labora&on finns

Läs mer

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga 203-03-9 203-03-9 DIAGNOSTISKT PROV Tid Klockan 09.00-2.00 Hjälpmedel Inga Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas. Rättning Tentamen omfattar 6

Läs mer

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen. TT Kapitel 3. Husdjur & Fisk Javaklasser Translation by Leif Lourié Java program består av klasser som beskriver saker (objekt) som finns på riktigt. Även om det finns många olika sätt att skriva program

Läs mer

Laboration 1 - Grunderna för OOP i Java

Laboration 1 - Grunderna för OOP i Java Uppdaterad: 2006-08-31 Laboration 1 - Grunderna för OOP i Java Inledning Laborationen går ut på att lära sig grunderna för objektorienterad programmering, samt motsvarande språkkonstruktioner i Java. Labben

Läs mer

GPT föreläsning 8. Förra veckan: Man kan ta tiden på en sorterad teckensträng Förra gången: Problemlösning på lägre nivå kan sortera funktioner

GPT föreläsning 8. Förra veckan: Man kan ta tiden på en sorterad teckensträng Förra gången: Problemlösning på lägre nivå kan sortera funktioner GPT föreläsning 8 Förra veckan: Man kan ta tiden på en sorterad teckensträng Förra gången: Problemlösning på lägre nivå kan sortera funktioner Denna gång Reflektioner kring OU1 Funktioner Reflektioner

Läs mer

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här: Att skapa en klass kvadrat Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här: public class Kvadrat { private int sida; Det var väl inte

Läs mer

Parameteröverföring. Exempel. Exempel. Metodkropp

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

Läs mer

5. En metod som anropar sig själv a) får inte förekomma i Java-program b) kallas destruktiv c) kallas iterativ d) kallas rekursiv 6. Vilka värden har

5. En metod som anropar sig själv a) får inte förekomma i Java-program b) kallas destruktiv c) kallas iterativ d) kallas rekursiv 6. Vilka värden har Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Exempel på tentafrågor i Java Först följer frågor av flervalstyp. Frågorna är inte ordnade efter svårighetsgrad. 1. Skillnaden mellan typerna int och

Läs mer

Introduktion till MATLAB, med utgångspunkt från Ada

Introduktion till MATLAB, med utgångspunkt från Ada Introduktion till, med utgångspunkt från Desktop-miljö som innefattar editor, kommandofönster, graffönster och mycket mer. Interpreteras Snabbt att testa kommandon Terminal + emacs + gnatmake Kompileras

Läs mer

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016 Command line argumenter Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 /* Cla. java * Programmet illustrerar

Läs mer

Föreläsning 3. Programmering, C och programmeringsmiljö

Föreläsning 3. Programmering, C och programmeringsmiljö Föreläsning 3 Programmering, C och programmeringsmiljö Vad är programmering? Ett väldigt kraftfullt, effektivt och roligt sätt att kommunicera med en dator Att skapa program / applikationer till en dator

Läs mer

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

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

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Felhantering Eclipse Felsökning Command line argumenter

Läs mer

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder Introduktion TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder OO är den mest använda programmeringsparadigmen idag, viktigt steg att lära sig och använda OO. Klasser är byggstenen i

Läs mer

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

Pascal... Pascal. Pascal... Pascal... ... Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken

Läs mer

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

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:

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet

Läs mer

OOP Objekt-orienterad programmering

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

Läs mer

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Kort om klasser och objekt En introduktion till GUI-programmering i Java Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på

Läs mer