Erlang. Programspråk 5DV086. Sebastian Backstad

Storlek: px
Starta visningen från sidan:

Download "Erlang. Programspråk 5DV086. Sebastian Backstad"

Transkript

1 Erlang Programspråk 5DV086 Sebastian Backstad Love Engman Joel Viklund Christer Jakobsson Petter Johansson c11sbd c11len c11jvd dv12cjn oi12pjn \_(ツ)_/ 1

2 Innehållsförteckning Inledning 3 Om Erlang 4 Syntax 5 Features 8 Trådar Hot swap Länkade processer 9 Erlang och Haskell 10 För och nackdelar 10 Fördelar Nackdelar Erlang idag 11 Erlang imorgon 12 2

3 Inledning Programspråket Erlang skapades av Joe Armstrong på Ericssons forskningsavdelning Det skapades med ändamålet att tillhandahålla ett bättre sätt a programmera styrsystemen till telefonväxlar. Namnet Erlang sägs vara en referens till den danska matematikern Agner Krarup Erlang eller en förkortning av Ericsson Language. Erlang implementerades först i Prolog och var influerat av programspråket PLEX som användes i tidiga Ericsson telefonväxlar. Från början var det designat som ett praktiskt verktyg för att få jobbet gjort, nämligen att programmera applikationer till telefonväxlar i laborations miljö. Nya verktyg lades successivt till för att lösa ett specifikt problem dom hade när dom programmerade. När de märkte att de aldrig använde en funktion så togs den bort, detta skedde i en så snabb process att det knappt finns någon dokumentation av vad som ändrades i språket under denna tid. Enligt Joe Armstrong var språket ett rent forskningsprojekt från 1986 till 1997 då det på grund av att ett topphemligt projekt att utveckla andra generationens telefonväxel vid namn AXE N avbröts. Då valdes Erlang som bas för en ny ATM växel med namnet AXD301 vars programsystem var helt baserat på Erlang och sades ha en pålitlighet av nine 9 s. Vilket innebör en drifttid på minst % av ett år, seven nines innebär en nertid på max 3,15 sekunder per år så bannade Ericsson användandet av Erlang vid utveckling av ny programvara, detta gjorde att Joe Armstrong och många andra lämnade företaget och Erlang blev open source vid slutet av året och används nu av flera internationella företag. Joe Armstrong blev återanställd på Ericsson Erlang är ett funktionellt programspråk utan typdeklarationer och med dynamisk typing med en garbage collector, det är designat för parallellt arbete på flera sammankopplade system genom att ha inbyggt stöd för detta i jämförelse med många språk som har stöd för trådar via externa bibliotek, Erlangs trådar har inte delade variabler utan samarbetar med varandra genom att skicka meddelanden mellan varandra. Detta gör det väl lämpat för användning på moderna maskiner med flera kärnor. Uppdateringar till styrsystemen måste kunna appliceras utan att systemet stängs ner för att maximera upptiden på telenätet vilket är väldigt kritiskt för samhället att det fungerar. detta åstadkoms med hjälp av något som kallas Hot Swap. Erlang används idag för att bygga skalbara soft real time system med höga krav på drifttid. Det används tex av Facebook för dess chat tjänst som hanterar mer än 100 miljoner aktiva användare, WhatsApp använder även Erlang för dess meddelande tjänster som kan ha 2 miljoner anslutna användare per server. 3

4 Om Erlang Erlang är ett funktionellt programspråk med så kallad immutable data vilket innebär att data ej går att ändra på. Erlang har vad som kallas för ivrig evaluering vilket är motsatsen till lat evaluering som används i bland annat programspråket Haskell. Ivrig evaluering innebär att ett uttryck evalueras direkt då det binds till en variabel. Erlang har även mönstermatchning. 1 Erlang har dynamisk typning, det betyder att variabler som deklareras kan vara av vilken typ som helst. Man behöver inte ange specifikt att en variabel ska vara till exempel ett heltal. Kontroll av typer (t.ex. vid mönstermatchning) sker under körning och inte under kompilering. 2 Koden som skrivs i Erlang kompileras till bytecode och körs på en virtuell maskin. Den virtuella maskin som vanligen används är BEAM. BEAM är en register baserad virtuell maskin som körs i endast en process på operativsystemet. Processer i Erlang implementeras helt av den virtuella maskinen och har ingen koppling till operativsystemet. BEAM kör vanligtvis en tråd per kärna. Om man har ett Erlangsystem med 1000 processer så är det fortfarande endast en process på operativsystemet. 3 Erlang använder sig av en Garbage Collector (GC). Med det menas att minne allokeras och frigörs automatiskt när det inte längre används. I Erlang jobbar GC på varje process för sig. En process i Erlang har sin egen heap, GC frigör minne på varje heap oberoende av andra processer. När garbage collection utförs på en process stannar processen under tiden detta utförs. GCn har också i uppgift att utöka storleken på en heap då detta behövs or lack thereof factory.com/upload/presentations/708/hitchhikerstourofthebeam.pdf

5 Syntax Eftersom Erlang är ett funktionellt språk och ganska likt Haskell så är även syntaxet likt Haskell. En viktig del i Erlangs syntax är att alltid avsluta uttryck med punkt. Se figur 1 för ett exempel på ett uttryck som avslutas med punkt. Figur 1. Addition utförd direkt i Erlang shell. Man behöver inte skriva ett uttryck på en rad. Erlang tolkar ett uttryck fram till nästa punkt. Det går till exempel bra att göra som i figur 2 där uttrycket är uppdelat på flera rader och sedan avslutat med punkt. Figur 2. Addition och subtraktion utförd i Erlang shell. Det är enkelt att deklarera en variabel i Erlang men vissa krav måste uppfyllas. Namnet på variabeln måste börja med stor bokstav. Variabler i Erlang går inte att ändra på, när ett värde är satt på en variabel kommer den ha det värdet konstant. Som vi kan se i figur 3 så går det bra att deklarera variabler som heltal och strängar så länge dom börjar med stor bokstav. När vi försöker skapa en variabel som börjar med liten bokstav så får vi ett felmeddelande. Figur 3. Olika variabler skapas i Erlang Shell, fel när variabel börjar med liten bokstav. 5

6 Varför kan man inte en variabel börja med en liten bokstav? Jo för att då deklarerar man en atom. En atom i Erlang kan ses som en konstant som har sitt eget namn som värde. Skriver man katt i Erlang har man deklarerat en atom som heter katt och har värdet katt. Atomer används oftast ihop med annan data för att beskriva datan. Till exempel i figur 4 har vi gjort en tupel med en atom och ett heltal. Figur 4. En tupel med en atom och ett heltal. Syntax för jämförelser är ganska speciellt i Erlang. Vid lika med jämförelse används == och vid inte lika med används /=, dessutom finns det exakt lika med som skrivs =:= och exakt inte lika med som skrivs =/=. Den vanliga notationen == kan användas när man till exempel jämför en integer och en double. Se Figur 5 för ett exempel där vi jämför en double och en integer med atomen false (som är reserverad i Erlang). Figur 5. Jämförelseoperatorer i Erlang. Att göra en modul med ett antal funktioner i Erlang är enkelt. Man skriver module(namn) högst upp i filen och därefter väljer man vilka funktioner som ska exporteras genom att skriva export([funktionsnamn1/x, funktionsnamn2/y]). där det inom hakparenteserna är en lista. Snedsträck följt av x och y betyder att funktionen tar x eller y antal parametrar. Skulle man till exempel exportera en funktion som heter test som tar två parametrar skulle man skriva export([test/2]).. Detta innebär att man kan ha funktioner med samma namn som tar olika många parametrar och exportera dom. Se figur 6 för ett exempel på detta. Figur 6. En modul som exporterar två funktioner med samma namn men olika antal parametrar. Från figur 6 ser vi hur man definierar funktioner i Erlang. Man skriver funktionsnamnet följt av parenteser och eventuella parametrar därefter gör man en pil och skriver vad funktionen ska 6

7 göra. Man kan skriva flera uttryck efter varandra i en funktion, utan att använda punkt. För att göra detta skiljer man varje uttryck med ett komma. Efter det sista uttrycket skriver man punkt som vanligt. Endast det sista uttrycket blir det som returneras från funktionsanropet. Se figur 7 för ett exempel där vi skapar en modul med en funktion och sedan laddar vi modulen och anropar funktionen ifrån Erlang shell. Figur 7. En modul med en funktion som sedan laddas in i Erlang Shell och anropas. 7

8 Features Erlang är byggt med ett specifikt syfte i åtanke; att vara det bästa programspråket på att hantera 5 stora system som både har många anslutna användare och måste ha hög tillgänglighet. Istället för att skapa ett språk som skall lösa alla världens problem så skapades ett språk som skall lösa ett specifikt problem väldigt bra. För att göra detta krävs en del unika funktioner. Trådar 6 Trådar i Erlang kallas processer eftersom de inte delar något data. I denna rapport kallas de trådar eftersom de, för det mesta, liknar trådar. Erlang implementerar trådar på ett lite annat sätt än det traditionella C sättet. Erlangs Virtual machine tar hand om skapande och context switching av Erlangs trådar. Detta gör att den inte behöver använda operativsystemets inbyggda trådar och processer vilka är mycket långsammare än Erlangs. En av de bra egenskaperna hos Erlangs trådar är att de har ett väldigt litet overhead, ca. 300 ord, så att skapa (spawn) en tråd går väldigt fort. Att skapa en ny tråd i Erlang tar bara ett par µs och är oberoende av antalet redan körande trådar, Java kan ta många gånger så lång tid och är beroende på hur många trådar som är i gång. 7 Ett test som utfördes 2005 av Ericsson visade att man på en vanlig dator (1.5 GHz, 16 GB RAM) kan ha över 20 miljoner trådar igång samtidigt. Tiden det tog att starta en ny tråd var ca. 6.3 µs och att skicka eller ta emot meddelanden tog ca. 5.3 µs. Dessa siffror är säkert lägre idag, 9 år senare. Som tidigare nämnts tar det ganska lång tid att skicka meddelanden mellan trådar i Erlang. Nästan lika lång tid som att starta en ny tråd. Detta är på grund av att trådar i Erlang inte har något delat minne, vilket betyder att trådarna måste skicka och ta emot meddelanden för att kommunicera. Hot swap Erlang är skapat och optimerat för att användas i stora system med många användare anslutna hela tiden. Detta gör att man inte gärna startar om hela systemet så fort man vill uppdatera mjukvaran då detta skulle neka många användare tjänsten under tiden systemet uppdateras. Av denna anledning har Erlang en funktion som kallas hot swap där man kan ladda in en ny version av programmet samtidigt som det körs. Detta görs genom att systemet kan ha flera versioner av samma program laddade (i minnet). När ett program har flera versioner så kör alla nya anslutningar (trådar) med den nya versionen medans de gamla (vars sessioner startade innan uppdateringen aktiverades) fortsätter köra med det gamla programmet tills deras session (tråd) avslutas https://groups.google.com/forum/#!original/comp.lang.functional/5kldn1qj73c/t3py yqmtzmj 8

9 Länkade processer I Erlang kan man skapa länkar mellan processer genom att kalla på link(other_pid). I detta fall skapas en länk mellan processen som gjorde anropet och processen med namnet Other_Pid. När en process avslutas så skickas en signal till alla processer som den var länkad till. Signalen innehåller information om den process som har skickat signalen och anledningen till att processen avslutades. Om en process avslutas normalt så ignorerar andra processer signalen som skickats ut. Om en process har avslutats på ett onormalt sätt och skickat ut en felsignal så termineras de länkade processerna och felsignalen vidarebefordras till deras länkar. Detta byter att man kan länka ihop alla processer så att om en avslutas på ett onormalt sätt så avslutas alla processer 8 Det är även möjligt att fånga signaler i en process så att de inte skickas vidare till nästa länk. Detta uppnås genom att man låter processen tro att signalen är ett vanligt meddelande. Man kan då försöka att hantera problemet istället för att avsluta ytterligare processer. 9 P2 fångar exit signalen från P1, signalen skickas inte vidare till P

10 Erlang och Haskell Vad som skiljer Erlang från exempelvis Java går knappt att svara på. Listan blir (nästan) längre än koden för en quick sort i C ;) Desto meningsfullare blir det att jämföra Erlang med ett annat funktionellt programspråk. En utmärkt kandidat för denna jämförelse är programspråket Haskell. Som nämndes tidigare har Haskell en lat evaluering, till skillnad från Erlangs ivriga motsvarighet. Den allmänna uppfattningen verkar vara att den lata evalueringen är att föredra, men att det går att simulera lat evaluering i Erlang med hjälp av macros. 10 En annan skillnad är att Haskell har statisk typkontroll medan Erlang använder dynamiska typer. En fördel med statisk typkontroll är att fel i koden upptäcks snabbare. Däremot går det lättare att skriva generell kod i programspråk med dynamisk typning. (I Erlang kan man till och med göra evaluera uttrycket asdasd > true!). Haskell är dessutom helt utan sidoeffekter medan Erlang inte är det. I Erlang skickar processer meddelanden till varandra vilket resulterar i sidoeffekter. Andra exempel på sidoeffekter är interaktionen med filer, sockets och databaser. Sidoeffekterna i Erlang öppnar alltså upp en del möjligheter, men ställer samtidigt högre krav på programmeraren. För- och nackdelar Fördelar Erlang utvecklades för att bygga massiva skalbara realtidssystem med höga krav på tillgänglighet. Och det är just inom detta område som språket har sina styrkor. Som tidigare nämnt designades språket med parallitet och trådhantering. Det faktum att trådar inte delar minnesutrymmen (och försiktighet med sido effekter) löser en rad olika trådsäkerhetsproblem. Erlang programmeraren slipper tjafsa med lås hit och synkronisering dit. Något man inte kan säga om programmering i Java och C. "How can you program like that? It's impossible to program!" undrade Joe Armstrong, en av skaparna av Erlang, efter att testat Javas icke trådsäkra Swing bibliotek. 11 Processerna som skapas kräver dessutom inte så mycket minne. Detta innebär att väldigt många processer kan skapas utan att sega ner datorn, något som lämpar sig väl i 10 Haskell John Hughes ( ) 11 peyton jones erlang haskell ( ) 10

11 server mjukvara. Servrar som man vill ha körandes utan avbrott kan dessutom vid uppdatering dra nytta av det i Erlang integrerade hot swapping. En egenskap som inte stöds av så många andra programspråk. 12 En annan fördel med Erlang är att det är ett väl beprövat språk ute i industrin. Erlang har använts i skarpt läge i många år vilket innebär att språket har kunnat finslipas en hel del. 13 Ur detta har OTP (the Open Telecom Platform) fötts. OPT är en samling av beprövade bibliotek, redo att användas av just dig. Att språket är designat av industrin, för industrin, märks även på att det ska gå snabbt att lära sig språket och kunna börja skriva nyttiga applikationer. Industrin har mer nytta av du kan skriva programvaran för en distribuerad server än ett Hello, World i terminalrutan. Ett avsnitt om Erlangs fördelar vore inte komplett utan att nämna felhanteringen. Erlang är designat för att hantera fel såväl i mjukvara och hårdvara. Ett fel ska aldrig kunna resultera i att hela systemet brakar ihop. Språket har många verktyg för att hantera fel, både inbyggt i själva språket, samt som extra tillägg i OTP. Nackdelar Det är viktigt att komma ihåg att Erlang är designat för att lösa en viss sorts av problem. Det finns andra områden där programspråket inte är lika kraftfullt. Exempelvis är Erlang inte lämpat för heavy number crunching, dvs. bearbeta en massa data. Där är imperativa programspråk såsom C och C++ snabbare. En annan nackdel med Erlang är att den inte har något naturligt stöd för strängar. Bearbetning och manipulation av strängar gör sig lämpligare i andra programspråk. 14 Ytterligare en nackdel är att Erlangs virtuella maskin är något långsammare än JVM. Och det faktum att processerna inte delar minnesutrymme innebär också en något långsammare exekvering. Erlang idag Erlang är numera släppt som öppen källkod. Ett tag var programspråket bannlyst från Ericsson men har sedan 2004 börjat användas igen. Av Ericsson används språket bland annat inom 3G teknologin. Även andra stora telekombolag, som till exempel Motorola och T Mobile, använder Erlang i sina projekt. Språket har även fått genomslag inom andra 12 ( ) 13 ( ) 14 out for real ( ) 11

12 användningsområden. Ett exempel är appen WhatsApp där Erlang möjliggör att en chatt server kan hantera två miljoner klienter samtidigt. Ytterligare exempel på projekt där Erlang används är: 15 SimpleDB en distribuerad databas skapad av Amazon.com GitHub webbhotell för projekt som använder Git Call of Duty första persons skjutare för dagisbarn Smarkets betting sajt för sport En gemensam faktor för ovan nämnda projekt är krav på skalbarhet, feltolerans och höga drifttider de tre grundpelarna som utgör programspråket Erlang Erlang imorgon Vi tror att Erlang kommer fortsätta att vara populärt. Språket har visat sig vara konkurrenskraftigt inom sitt område. Smidiga sätt att implementera parallella system kommer säkert bli viktigare allt eftersom kärnorna i datormaskinerna ökar. Författarna bakom språket har även förhoppningar om att språket ska inspirera och influera andra språk. Till exempel att den kraftfulla felhanteringen sprider sig till andra språk. 15 ( ) 12

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

Introduktion till programmering. Programspråk och paradigmer

Introduktion till programmering. Programspråk och paradigmer Introduktion till programmering Programspråk och paradigmer Vad är ett programspråk? Aprogramming languageis a formal constructedlanguagedesigned to communicate instructions to a machine, particularly

Läs 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

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

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

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

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

Operativsystem. Hierarkin för hårdvara läses nerifrån

Operativsystem. Hierarkin för hårdvara läses nerifrån Operativsystem DOS DiskOperatingSystem - ett jobb i taget. Dagens Operativsystem - prioriterar olika jobb. Om ett jobb pausas körs ett annat. Operativsystems viktigaste funktion är att bilda gränssnitt

Läs mer

Översikt. Varför lära sig detta? Motivering Syntax och semantik Imperativa språkets byggstenar och Python. PL-boken Kap 1 (repetition):

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

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

Inledande programmering med C# (1DV402) Introduktion till C#

Inledande programmering med C# (1DV402) Introduktion till C# Introduktion till C# 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

Läs mer

Utvecklingen av ett tidregistrerings- och faktureringssystem

Utvecklingen av ett tidregistrerings- och faktureringssystem Datavetenskap Opponenter: Anders Heimer & Jonas Seffel Respondenter: Daniel Jansson & Mikael Jansson Utvecklingen av ett tidregistrerings- och faktureringssystem Oppositionsrapport, C-nivå 2006:10 1 Sammanfattat

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

TDP002 Imperativ programmering

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

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

Imperativ programmering

Imperativ programmering Imperativ programmering 1DL126 3p Imperativ programmering Jesper Wilhelmsson ICQ: 20328079 Yahoo: amigajoppe MSN / epost: jesperw@it.uu.se Rum: 1335 Tel: 471 1046 Imperativ programmering Vilka programmeringsspråk

Läs mer

Grundkurs i programmering - intro

Grundkurs i programmering - intro Grundkurs i programmering - intro Linda Mannila 4.9.2007 Dagens föreläsning Allmän kursinformation: mål, syfte, upplägg, examination, litteratur, etc. Hur arbetar en dator? Hur vi får datorn att förstå

Läs mer

Introduktion till programmering. Undervisning. Litteratur och examination. Lärare. Föreläsning 1

Introduktion till programmering. Undervisning. Litteratur och examination. Lärare. Föreläsning 1 Kursinfo Introduktion till programmering Undervisning Föreläsning 1 Kursinformation Inloggning, filsystem, kommandotolk några inledande exempel Föreläsningar Fem föreläsningar, vardera 45 minuter. Allmänna

Läs mer

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

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

Läs mer

Programmering av LEGO NXT robot Laborationsrapport för programering av robot för att följa svartmarkerad linje på maken

Programmering av LEGO NXT robot Laborationsrapport för programering av robot för att följa svartmarkerad linje på maken KUNGLIGA TEKNISKA HÖGSKOLAN Programmering av LEGO NXT robot Laborationsrapport för programering av robot för att följa svartmarkerad linje på maken Hannes Rabo 2015-08-30 hrabo@kth.se Introduktionskurs

Läs mer

Lab1 Introduktion. 1 Syfte. 2 Innehåll Win32API Skapa trådar Kritiska sektioner Mailslothantering. 3 Förberedelse & Tips

Lab1 Introduktion. 1 Syfte. 2 Innehåll Win32API Skapa trådar Kritiska sektioner Mailslothantering. 3 Förberedelse & Tips Lab1 Introduktion Förberedelse för planetlabben genom att kapsla in (skapa wrappers) systemanrop. 1 Syfte Få en känsla av hur Win32API fungerar, dvs programmerarens interface gentemot Windows. Känsla för

Läs mer

Programmering. Hur, var, när och varför. 22 November. Lars Ohlén Tieto lars.ohlen@tieto.com

Programmering. Hur, var, när och varför. 22 November. Lars Ohlén Tieto lars.ohlen@tieto.com Programmering Hur, var, när och varför 22 November Lars Ohlén Tieto lars.ohlen@tieto.com Agenda Om mig Programmering Vad är? Varför kunna? Hur använda kunskapen? Framtiden Sammanfattning Q+A 2 Om mig Arbetat

Läs mer

Föreläsning 6 pekare och pekare tillsammans med arrayer

Föreläsning 6 pekare och pekare tillsammans med arrayer Föreläsning 6 pekare och pekare tillsammans med arrayer Vi ska nu undersöka vad pekare egentligen är och hur de relaterar till arrayer. Det är ett centralt tema i C-programmering. Vi följer boken och går

Läs mer

LABORATIONSRAPPORT Operativsystem 1 Laboration 1, Ghost, pingpong och Windows 2003 installation

LABORATIONSRAPPORT Operativsystem 1 Laboration 1, Ghost, pingpong och Windows 2003 installation LABORATIONSRAPPORT Operativsystem 1 Laboration 1, Ghost, pingpong och Windows 2003 Laborant/er: Klass: Laborationsansvarig: Sebastian Svensson, Linn Friberg DD11 Peter Josefsson Utskriftsdatum: 2011-09-05

Läs mer

Kompilatorteknik. Görel Hedin Datavetenskap Lunds Tekniska Högskola. Temaföreläsning, Datorer i system, 2014

Kompilatorteknik. Görel Hedin Datavetenskap Lunds Tekniska Högskola. Temaföreläsning, Datorer i system, 2014 Kompilatorteknik Görel Hedin Datavetenskap Lunds Tekniska Högskola Temaföreläsning, Datorer i system, 2014 En typisk kompilator programkod while (a >= 0) { } kompilator maskinkod 0024 6050 2530 0000 0000

Läs 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

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

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

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 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 Erik Forslin ÓÒ º Ø º Rum 1445, plan 4 på Nada 08-7909690 Game.java

Läs mer

Nya webbservern Dvwebb.mah.se

Nya webbservern Dvwebb.mah.se Nya webbservern Dvwebb.mah.se Bakgrund: BIT (Bibliotek och IT) beslutar att ta ner Novell systemet 28/3 som är en katalogtjänst som styr bland annat alla studenter s.k. hemkataloger på Malmö högskola såväl

Läs mer

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer. Översikt Klasshierarkier UML klassdiagram Relation mellan klasser mellan klasser och objekt Association ning ing andling Programmering tillämpningar och datastrukturer 2 UML UML Unified Modeling Language

Läs mer

Distribuerade affärssystem

Distribuerade affärssystem Distribuerade affärssystem Kursens mål Bygga upp, strukturera och programmera distribuerade system med en flerskiktsarkitektur Beskriva och förklara teorier och uttryck som används inom affärskritiska

Läs mer

Repetition DK2 Middleware, P2P, Multimediatransport. Stefan Alfredsson 18 Mars 2005

Repetition DK2 Middleware, P2P, Multimediatransport. Stefan Alfredsson 18 Mars 2005 Repetition DK2 Middleware, P2P, Multimediatransport Stefan Alfredsson 18 Mars 2005 Några definitioner på middleware Klistret som gör det möjligt för en klient att få betjäning av en server / i klient/server

Läs mer

Programmering för alla!

Programmering för alla! Programmering för alla! Inspirationsseminarium för lärare i grundskola och gymnasium Björn Regnell Professor Datavetenskap, LTH, Lunds universitet lth.se/programmera Video http://www.svt.se/nyheter/sverige/krav-pa-att-elever-lar-sig-programmera

Läs mer

Planering Programmering grundkurs HI1024 HT 2015 - data

Planering Programmering grundkurs HI1024 HT 2015 - data Planering Programmering grundkurs HI1024 HT 2015 - data Föreläsning V36 Föreläsning 1 Programmering Kurs-PM Programmeringsmiljö Hello World! Variabler printf scanf Föreläsning 2 Operatorer Tilldelning

Läs mer

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Laboration 1. kompilera-ikonen exekvera-ikonen Syfte Laboration 1. Objektorienterad programmering, Z1 Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i

Läs mer

TDP002 - Imperativ programmering

TDP002 - Imperativ programmering . TDP002 - Imperativ programmering Introduktion till kursen och Python Eric Elfving Institutionen för datavetenskap 14 augusti 2015 Översikt 2/29 Programmering - en översikt Python - Köra och skriva program

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

Snabbguide Visma Compact API Copyright 2006-2010 Visma Spcs AB

Snabbguide Visma Compact API Copyright 2006-2010 Visma Spcs AB Snabbguide Visma Compact API Copyright 2006-2010 Visma Spcs AB Komma igång med Compact API Hur APIet fungerar Visma Compacts API läser och skriver direkt till databasen via ett antal färdiga metoder som

Läs mer

Talsystem Teori. Vad är talsystem? Av Johan Johansson

Talsystem Teori. Vad är talsystem? Av Johan Johansson Talsystem Teori Av Johan Johansson Vad är talsystem? Talsystem är det sätt som vi använder oss av när vi läser, räknar och skriver ner tal. Exempelvis hade romarna ett talsystem som var baserat på de romerska

Läs mer

Föreläsning 1: Intro till kursen och programmering

Föreläsning 1: Intro till kursen och programmering Föreläsning 1: Intro till kursen och programmering Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/vt11 Studentportalen http://www.studentportalen.uu.se Lärare: Tom Smedsaas, Tom.Smedsaas@it.uu.se

Läs mer

E12 "Evil is going on"

E12 Evil is going on E12 "Evil is going on" Föreläsning 12, HT2014 AJAX Kurs: 1dv403 Webbteknik I Johan Leitet E12 Evil is going on Dagens agenda AJAX XMLHttpRequest-objektet JSON Vad är AJAX? Asynchronous JavaScript and XML

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer Programmering hh.se/db2004 Föreläsning 3: Java. Grundtyper, variabler och arrayer Hej Då, Karel! Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Center for Research on Embedded

Läs mer

EDA 390 - Datakommunikation och Distribuerade System. Peer-To-Peer system

EDA 390 - Datakommunikation och Distribuerade System. Peer-To-Peer system EDA 390 - Datakommunikation och Distribuerade System Peer-To-Peer system Andreas Bernet 810929-0018 beran@etek.chalmers.se Sektion: Elektroteknik Johan Zhang 820401-1830 zhaj@etek.chalmers.se Sektion:

Läs mer

PROV. 13 JSP Standard Tag Library

PROV. 13 JSP Standard Tag Library 13 JSP Standard Tag Library 13.1 Bibliotek med nya JSP-kommandon 13.2 JSP Standard Tag Library (JSTL) 13.3 Filstruktur för webbapplikationer med JSTL 13.4 Deklaration av JSP-kommandon 13.5 Lägga till biblioteksfiler

Läs mer

Objektorienterad programmering Föreläsning 4

Objektorienterad programmering Föreläsning 4 Objektorienterad programmering Föreläsning 4 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda Introduktion till objektorientering Klasser och Objekt Instansvariabler Metoder Introduktion

Läs mer

Grafiskt verktyg för service av diskmaskiner för professionella kök

Grafiskt verktyg för service av diskmaskiner för professionella kök Grafiskt verktyg för service av diskmaskiner för professionella kök Student: Daniel Kjellin, dkn02002@student.mdh.se Wexiödisk, Mälardalens högskola, Ide Handledare: Daniel Svensson, Dan Levin Examinator:

Läs mer

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Laboration 1. kompilera-ikonen exekvera-ikonen Programmerade system I1 Syfte Laboration 1. Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i att skriva

Läs mer

Decentraliserad administration av gästkonton vid Karlstads universitet

Decentraliserad administration av gästkonton vid Karlstads universitet Datavetenskap Opponent(er): Markus Fors Christian Grahn Respondent(er): Christian Ekström Per Rydberg Decentraliserad administration av gästkonton vid Karlstads universitet Oppositionsrapport, C/D-nivå

Läs mer

Laboration 1 Introduktion till Visual Basic 6.0

Laboration 1 Introduktion till Visual Basic 6.0 Laboration 1 Introduktion till Visual Basic 6.0 Förberedelse Förbered dig genom att läsa föreläsningsanteckningar och de kapitel som gåtts igenom på föreläsningarna. Läs även igenom laborationen i förväg.

Läs mer

Enkla datatyper minne

Enkla datatyper minne Enkla datatyper minne 143.56 sant Sonja A falskt 18 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 1 Addera två tal Algoritmen Summera tal Mata in två tal Beräkna Skriv ut resultat Mata in tal 1 Mata in

Läs mer

Anvisningar för inkoppling till Mikrodataåtkomst vid SCB

Anvisningar för inkoppling till Mikrodataåtkomst vid SCB Anvisningar för inkoppling till Mikrodataåtkomst vid SCB Välkommen till systemet för mikrodataåtkomst, MONA. Denna handledning hjälper dig att snabbt komma igång och arbeta med MONA-systemet. Om du stöter

Läs mer

Gränslös kommunikation

Gränslös kommunikation Ericsson enterprise multimedia server Gränslös kommunikation Den nya generationen multimedielösningar för företagskommunikation Kunnig personal och högeffektiva arbetssätt är viktiga faktorer om ett företag

Läs mer

Nedan skapar vi klassen Person innehållande datamedlemmar för förnamn, efternamn, ålder, längd och vikt:

Nedan skapar vi klassen Person innehållande datamedlemmar för förnamn, efternamn, ålder, längd och vikt: 8. Objektorientering Skälet till att C++ är ett av de mest använda programspråken är att det är objektorienterat. Detta bygger vidare på begreppet struct (ursprungligen från språket C som inte är objektorienterat),

Läs mer

Avancerade Webbteknologier

Avancerade Webbteknologier Projektledning, Business Knowledge Användbarhet & Layout Avancerade Webbteknologier Lkti Lektion 1 Kommunikation Tobias Landén tobias.landen@chas.se Avancerade webbteknologier del 1 (4 KY poäng) Syfte

Läs mer

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2015.Q1

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2015.Q1 Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2015.Q1 För att 3L Pro skall fungera krävs att nedanstående hårdvarukrav och mjukvarukrav är uppfyllda. Viktigt är att tänka på att

Läs mer

TMP Consulting - tjänster för företag

TMP Consulting - tjänster för företag TMP Consulting - tjänster för företag Adress: http://tmpc.se Kontakta: info@tmpc.se TMP Consulting är ett bolag som utvecklar tekniska lösningar och arbetar med effektivisering och problemslösning i organisationer.

Läs mer

Javautvecklare. Utbildningsfakta. 400 YH-poäng, 2 år

Javautvecklare. Utbildningsfakta. 400 YH-poäng, 2 år Javautvecklare 400 YH-poäng, 2 år Utbildningsfakta Kurser (12 stycken) Grundläggande programmering och javaverktyg 50 yhp Grafiskt gränssnitt och interaktion 20 yhp Internet, webb och webbramverk 40 yhp

Läs mer

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio Ditt första C#-program med Visual Studio 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å

Läs mer

Beräkningsvetenskap föreläsning 2

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

Läs mer

Systemkrav och tekniska förutsättningar

Systemkrav och tekniska förutsättningar Systemkrav och tekniska förutsättningar Hogia Webbrapporter Det här dokumentet går igenom systemkrav, frågor och hanterar teknik och säkerhet kring Hogia Webbrapporter, vilket bl a innefattar allt ifrån

Läs mer

Collector en Android-app för att samla saker. Kim Grönqvist (kg222dk) 2013-06-10 Slutrapport

Collector en Android-app för att samla saker. Kim Grönqvist (kg222dk) 2013-06-10 Slutrapport Collector en Android-app för att samla saker Kim Grönqvist (kg222dk) 2013-06-10 Slutrapport Abstrakt Jag har gjort en Android-app för att samla saker, Collector. Med den kan man upprätta att göra-listor

Läs mer

FileMaker Server 11. Handboken Uppdatera plugin-program

FileMaker Server 11. Handboken Uppdatera plugin-program FileMaker Server 11 Handboken Uppdatera plugin-program 2010, FileMaker, Inc. Med ensamrätt. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Kalifornien 95054, USA FileMaker och filmappslogotypen

Läs mer

Introduktion till programmering, hösten 2011

Introduktion till programmering, hösten 2011 Föreläsning 1 Programmering är ett hantverk. Det betyder att man inte kan läsa sig till den förmågan, man måste träna och man tränar genom att skriva mer och mer avancerade program. Programmering förutsätter

Läs mer

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

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

Läs mer

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2013.Q3

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2013.Q3 Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2013.Q3 För att 3L Pro skall fungera krävs att nedanstående hårdvarukrav och mjukvarukrav är uppfyllda. Viktigt är att tänka på att

Läs mer

Tekis-FB 7.1.0. Systemkrav

Tekis-FB 7.1.0. Systemkrav 7.1.0 Systemkrav Systemkrav 2015-09-17 MAAN 2 (2) Systemkrav 7.1.0 Dokumentet beskriver de krav som systemet ställer på maskinvara och programvara i de servrar och klientdatorer som ska användas för systemet.

Läs mer

Objektorientering/1.2. 3 Klasser

Objektorientering/1.2. 3 Klasser 3 Klasser 3.1 Att hantera många objekt 3.2 Klasser 3.3 Krav för att bilda en klass 3.4 Får två objekt vara helt identiska? 3.5 Måste vi använda klasser i objektorientering? 3.6 En klassbeskrivning 3.7

Läs mer

Antares Användning och installation

Antares Användning och installation Antares Användning och installation Sidan 1 av 13 Innehåll 1. Introduktion...... 2. Antares programvara installation...... 3. Antares programvara uppdatering...... 4. Data Linker anslutning... 5. Funktioner...

Läs mer

Programmering för alla!

Programmering för alla! Programmering för alla! del 1 Lärarlyftet Teknik 7-9, 2014-09-01 Björn Regnell Professor Datavetenskap, LTH, Lunds universitet lth.se/programmera Agenda 09:00-10:00 Introduktion; kursens upplägg Varför

Läs mer

Användarhandledning Plancenter Admin version 2011

Användarhandledning Plancenter Admin version 2011 Användarhandledning Plancenter Admin version 2011 Senast reviderad 2012-01-16 Utgivare pcskog AB Copyright 2012 pcskog AB Innehållsförteckning...2 1 Välkommen...2 2 pcskog Plancenter 2.1 Plancenter Admin...

Läs mer

Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys

Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys Realtidssystem HT03 Vad är realtidssystem? Föreläsare: Wang Yi Rum: 1235, yi@it.uu.se, Tel: 471 3110 Assistent: Tobias Amnell Rum: 1216, tobiasa@it.uu.se, Tel: 4717122 Webbsida: www.it.uu.se/edu/course/homepage/realtid/h03

Läs mer

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET UMEÅ UNIVERSITET Datavetenskap 010824 TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET Datum : 010824 Tid : 9-15 Hjälpmedel : Inga Antal uppgifter : 7 Totalpoäng : 40 (halva poängtalet krävs normalt

Läs mer

Modul 3 - Modularisering

Modul 3 - Modularisering Modul 3 Modularisering MODULARISERING 2 FUNKTIONER 3 Funktionsdefinition 4 Funktionsanrop 5 Funktionskroppen 5 Slumpa funktionen rand() 6 Värdeanrop 6 Variablers räckvidd 8 Referensanrop 8 DELPROGRAM 10

Läs mer

729G06 Föreläsning 1 Objektorienterad programmering

729G06 Föreläsning 1 Objektorienterad programmering Översikt Formalia Vad är objektorienterad programmering 729G06 Föreläsning 1 Objektorienterad programmering Definieria klasser Skapa och använda objekt Annika Silvervarg Ciltab, IDA, Linköpings universitet

Läs mer

Tilläggs dokumentation 4069 Dns

Tilläggs dokumentation 4069 Dns Tilläggs dokumentation 4069 Dns Magnus Larsson FMTS/UtbE/ElektrosystemA it-sektionen 4069 DNS- Tilläggsdokumentation 4069 DNS-Tilläggsdokumentation...2 Domäner och Zoner...3 C:\Mina Dokument\PowerFolders\Försvarsmakten,FMTS\Kurser\4069A,

Läs mer

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto Objekt och klasser - Introduktion Objekt Ð Begreppet objekt Ð Hur klasser anvšnds fšr att skapa objekt Ð Fšr-definierade klasser Ð Metoder och parameteršverfšring Ð Definiera klasser Ð Modifierare Ð Statiska

Läs mer

Kurskatalog 2010 INNEHÅLLSFÖRTECKNING

Kurskatalog 2010 INNEHÅLLSFÖRTECKNING SFÖRTECKNING 1. RFID-Kurser... 2 1.1. RFID Grundkurs... 2 1.2. RFID Fortsättningskurs... 3 1.3. RFID dator programmering... 4 1.4. RFID Systemadministration... 5 1.5. RFID Aktiv Systemadministration...

Läs mer

NetBeans 7. Avsikt. Projektfönster

NetBeans 7. Avsikt. Projektfönster NetBeans 7 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach Föreläsning 1: Intro till kursen och Kursens hemsida http://www.it.uu.se/edu/course/homepage/prog1/esvt10 Studentportalen http://www.studentportalen.uu.se Kursmaterial Kursbok Kursprogramvara Tips: Installera

Läs mer

VI SI CLOSETALK AB SYSTEMKRAV

VI SI CLOSETALK AB SYSTEMKRAV 2010-01-18 VI SI CLOSETALK AB SYSTEMKRAV 1 MJUK- OCH HÅRDVARUKRAV I detta dokument beskrivs de minimikrav och rekommendationer för mjukvara samt hårdvara som gäller för VISI System AB:s produkter. Visi

Läs mer

Strängar. Elektronikcentrum i Svängsta AB

Strängar. Elektronikcentrum i Svängsta AB Strängar 1 Elektronikcentrum i Svängsta AB Strängar Strängar Vanligtvis arbetar man i en applikation med text av olika slag. I programmeringsvärden sparar man text i strängar, (eng. strings). Dessa är

Läs mer

NetBeans 5.5. Avsikt. Projektfönster

NetBeans 5.5. Avsikt. Projektfönster NetBeans 5.5 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

PARALLELLISERING AV ALGORITMER PROCESSORER FÖR FLERKÄRNIGA

PARALLELLISERING AV ALGORITMER PROCESSORER FÖR FLERKÄRNIGA PARALLELLISERING AV ALGORITMER FÖR FLERKÄRNIGA PROCESSORER 870928 3017 Johan Gustafsson 870303 4952 Gustaf David Hallberg 880525 8210 Per Hallgren 801117 0597 Wuilbert Lopez 1/7 Innehållsförteckning Table

Läs mer

Minnesisolering för virtuella maskiner en hypervisorstudie

Minnesisolering för virtuella maskiner en hypervisorstudie 1.Introduktion 1.1 Inledning Den senaste trenden inom IT-världen är cloud computing (molntjänster). Molntjänster har uppnått stor popularitet både hos IT-chefer och ekonomichefer inom stora företag. Molntjänster

Läs mer

Vad är molnet?... 2. Vad är NAV i molnet?... 3. Vem passar NAV i molnet för?... 4. Fördelar med NAV i molnet... 5. Kom igång snabbt...

Vad är molnet?... 2. Vad är NAV i molnet?... 3. Vem passar NAV i molnet för?... 4. Fördelar med NAV i molnet... 5. Kom igång snabbt... Produktblad för NAV i molnet Innehåll Vad är molnet?... 2 Vad är NAV i molnet?... 3 Vem passar NAV i molnet för?... 4 Fördelar med NAV i molnet... 5 Kom igång snabbt... 5 Bli kostnadseffektiv... 5 Enkelt

Läs mer

Språket Python - Del 1 Grundkurs i programmering med Python

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

Läs mer

Domänspecifika språk. TDP007 Konstruktion av datorspråk Föreläsning 5. Peter Dalenius Institutionen för datavetenskap 2013-02-11

Domänspecifika språk. TDP007 Konstruktion av datorspråk Föreläsning 5. Peter Dalenius Institutionen för datavetenskap 2013-02-11 Domänspecifika språk TDP007 Konstruktion av datorspråk Föreläsning 5 Peter Dalenius Institutionen för datavetenskap 2013-02-11 Domänspecifika språk Ett domänspecifikt språk (eng. domain specific language,

Läs mer

SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for AVR

SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for AVR SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for AVR 2 Projekt mikrobasic PRO for AVR organiserar applikationer som projekt vilka består av en enda projektfil (med filändelsen.mbpav) och en eller flera

Läs mer

+Överskådlighet Normalt sätt blir ett program skrivet i det procedurella paradigmet överskådligt. Modifikationer på delproblem kan ske med lätthet.

+Överskådlighet Normalt sätt blir ett program skrivet i det procedurella paradigmet överskådligt. Modifikationer på delproblem kan ske med lätthet. Uppgift 1 Ett programmeringsparadigm är i grund och botten ett sätt att arbeta, ett sätt att möta problem. Det finns flera olika paradigm där varje paradigm har sina egna styrkor och svagheter. Det som

Läs mer

Mki9100 UPPDATERING. Ladda ned uppdateringsfiler

Mki9100 UPPDATERING. Ladda ned uppdateringsfiler Mki9100 UPPDATERING Detta dokument beskriver hur man uppdaterar handsfreesatsen via USB porten. Uppdateringar är nödvändiga för att förbättra kompabiliteten för Parrot enheten mot nya telefoner på marknaden.

Läs mer

TDIU01 (725G67) - Programmering i C++, grundkurs

TDIU01 (725G67) - Programmering i C++, grundkurs TDIU01 (725G67) - Programmering i C++, grundkurs Introduktion till kursen och programmering Eric Elfving Institutionen för datavetenskap 2 september 2014 Översikt Kursinformation Personal Kursmål Upplägg

Läs mer

Ingenjörsfirman Stéen 2001-12-13 Java Sida 1 av 1

Ingenjörsfirman Stéen 2001-12-13 Java Sida 1 av 1 Java Sida 1 av 1 Java Mål och Syfte Målet med denna kurs i Java är att du direkt efteråt ska kunna börja utveckla dina första Javaapplikationer. Kursen ger dig många konkreta exempel på hur detta effektiva

Läs mer

Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på:

Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på: Bilaga C Eclipse 1 Inledning Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på: www.eclipse.org help.eclipse.org www.eclipse.org/downloads/

Läs mer

Molntjänster -- vad är molnet?

Molntjänster -- vad är molnet? En e-bok från Visma Spcs Molntjänster -- vad är molnet? Vad du bör tänka på för att göra rätt val till ditt företag Molntjänster -- vad är molnet? En guide till att förstå molntjänster Innehåll Hänger

Läs mer

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1 Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens

Läs mer

Snake App Rapport - Snake App Rapport Utskriven/PDF Export: 2011-10-17 Copyright 2011 - Version 1.2 Sidan 1 av 9.

Snake App Rapport - Snake App Rapport Utskriven/PDF Export: 2011-10-17 Copyright 2011 - Version 1.2 Sidan 1 av 9. Snake App Rapport - Snake App Rapport Utskriven/PDF Export: 20-0-7 Copyright 20 - Version.2 Sidan av 9 Snake App Rapport DAT255 - Software engineering project Jesper Sjövall Martin Sonesson Alesandro Sanchez

Läs mer

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser // En första version av BankKonto-klassen class BankKonto { private String namn; private long nr; private double saldo; private double ränta; // Klassen TestaBankKonto // Klassens uppgift är att skapa

Läs mer