MIPS, registerallokering og MARS

Størrelse: px
Starte visningen fra side:

Download "MIPS, registerallokering og MARS"

Transkript

1 MIPS, registerallokering og MARS Torben Mogensen 2011 Resumé Vi beskriver modulerne Mips.sml og RegAlloc.sml, samt hvordan de bruges sammen med MIPS-emulatoren MARS. 1 MIPS modulet Modulet Mips.sml indeholder en datastruktur for en delmængde af MIPS instruktionssættet, som beskrevet i Appendix A.10 i [1]. Typen mips beskriver udvalgte instruktioner og assemblerdirektiver: datatype mips = LABEL of string EQU of string*string GLOBL of string TEXT of string DATA of string SPACE of string ASCII of string ASCIIZ of string ALIGN of string COMMENT of string LA of string*string LUI of string*string ADD of string*string*string ADDI of string*string*string SUB of string*string*string AND of string*string*string ANDI of string*string*string OR of string*string*string ORI of string*string*string XOR of string*string*string XORI of string*string*string SLL of string*string*string SRA of string*string*string SLT of string*string*string SLTI of string*string*string BEQ of string*string*string BNE of string*string*string J of string JAL of string * string list (* label + argumentregistre *) JALR of string * string list (* hopregister + argumentregistre *) JR of string * string list (* hopregister + resultatregistre *) 1

2 LW of string*string*string (* lw rd,i(rs) kodes som LW (rd,rs,i) *) SW of string*string*string (* sw rd,i(rs) kodes som SW (rd,rs,i) *) LB of string*string*string (* lb rd,i(rs) kodes som LB (rd,rs,i) *) SB of string*string*string (* sb rd,i(rs) kodes som SB (rd,rs,i) *) NOP SYSCALL Her følger en kort forklaring af instruktionerne LABEL angiver en label. EQU bruges til at definere konstanter. F.eks. bliver EQU ("x",-16") oversat til assemblerlinjen x = -16. Det andet argument er en tegnfølge, da det er muligt også at bruge hexadecimale tal (f.eks. 0xff) og symbolske konstanter (som f.eks. labels eller konstanter defineret med andre EQU er) på højresiden. GLOBL, TEXT, DATA, SPACE, ASCII, ASCIIZ og ALIGN svarer til direktiverne.globl,.text,.data,.space,.ascii,.asciiz og.align. COMMENT er en kommentar. LA er pseudoordren la, som lægger en adresse i et register. Registeret er enten et tal mellem 0 og 31 (angivet som tegnfølge uden $ foran) eller et variabelnavn, der vil blive allokeret i et numerisk register. Man kan ikke bruge de symbolske registernavne dom f.eks. v0 og a0, da alle registernavne, der ikke er tal, bliver registerallokeret. LUI...J er almindelige MIPS instruktioner. Registre angives som beskrevet herover. Talkonstanter er enten decimale tal (med muligt fortegn), hexadecimale tal eller symbolske konstanter. JAL er jal instruktionen. Udover labelen skal JAL af hensyn til registerallokatoren også have en liste args af de variable og registre, der er levende ved destinationen. Det vil typisk være argumentregistre og eventuelt registre, der bruges til globale variable. Hvis jal findes i kode, der ikke registerallokeres, bruges denne liste ikke, og den kan i givet fald lades tom. JR er jr instruktionen. Udover hopregistret skal JR af hensyn til registerallokatoren også have en liste af de registre og variabler, der er levende ved hoppet (typisk returværdiregistre og globale variabler). Hvis jr findes i kode, der ikke registerallokeres, bruges denne liste ikke, og den kan i givet fald lades tom. Bemærk, at JR er uegnet til indirekte funktionskald, brug i stedet JALR, som er beskrevet herunder. JALR er jalr instruktionen, der laver et funktionskald gennem et register. JALR (rs, args) gemmer returadressen i register 31 (link registret) og hopper til adressen i register rs. args parameteren er som beskrevet for JAL. LW, SW, LB og SB er lw, sw, lb og sb instruktionerne. Bemærk, at det konstante offset angives sidst i parameterlisten, så f.eks. lw $2,16($28) angives som LW ("2","28","16"). 2

3 NOP er nop, altså no operation. SYSCALL er systemkaldsinstruktionen syscall. Register $2 bruges til at angive operationen, evt. parametre angives i registrene $4 og $5 og en evt. returværdi vil lægges i $2. Se Appendix A.9 i [1] for mulige operationer. Udover de ovennævnte instruktioner definerer Mips.sml også pseudoinstruktioner, der oversættes til ORI-instruktioner: MOVE (x,y) oversættes til ORI (x,y,"0"). Registerallokatoren kan fjerne en move-instruktion, hvis x og y allokeres til samme register. LI (x,k) oversættes til ORI (x,"0",k). Et assemblerprogram vil blive bygget som en liste af instruktioner, dvs. noget af typen Mips.mips list. Mips definerer også en funktion pp list, der konverterer en liste af MIPS instruktioner til et format, der kan indlæses i MARS og SPIM. 2 Registerallokatoren Modulet RegAlloc.sml indeholder en registerallokator. Registerallokatoren arbejder med kroppen af en enkelt funktion og vil oversætte registernavne til registernumre. Registerallokatoren har typen val registeralloc : Mips.mips list -> string list -> int -> int -> int -> int -> Mips.mips list * string list * int * int registeralloc tager som argumenter en liste af MIPS instruktioner, en liste af registre, der er levende ved udgangen af koden, samt fire tal: Det mindste allokerbare register (i reglen 2), det største caller-saves register, det største allokerbare register (i reglen 25) samt antallet af allerede spillede variable. Det sidstnævnte er i reglen 0. Registre mellem de to første tal (begge inklusive) er caller-saves registre og de efterfølgende registre op til det tredje tal er callee-saves. Hvis man vil følge standardkaldkonventionen for MIPS skal tallene være 2, 15 og 25. Hvis man selv reserverer et register til f.eks. hopegepind, kan man bruge register 25 og dermed sætte grænsen for allokerbare registre til 24. registeralloc returnerer en modificeret liste af instruktioner, hvor navngivne registre er blevet erstattet med numeriske registre. For læselighedens skyld er hver modificeret instruktion efterfulgt af en kommentar, der viser den oprindelige instruktion. Udover at omdøbe registre, udkommenterer registerallokatoren MOVE instruktioner, hvor kilde- og destinationsregistrene er ens efter allokering. Udover den modificerede instruktionsliste returneres også en liste af variabler, der er levende ved indgangen til koden. Denne kan bruges til at finde fejl i koden, men vil for det meste blive ignoreret. Derefter returneres det største registernummer, der blev brugt til at allokere variabler i. Det kan bruges til i funktionsprologen at gemme præcis de callee-saves registre, der bliver brugt i funktionskroppen. 3

4 Til sidst returneres antallet af spillede variable. Dette tal skal bruges til at gøre plads på stakken til spillede variable. Registerallokatoren antager, at spillede variable ligger på stakken på offset 0, 4, osv. fra stakpegepinden (register 29). Hvis antallet af spillede variable f.eks. er 2, skal der gøres plads på stakken, så offset 0 og 4 kan bruges til disse. Hvis der er spillede variable, må funktionskroppen ikke flytte på stakpegepinden undtagen helt lokalt ved funktionskald, da offsets til spillede variable dermed ikke kommer til at passe længere. Spill vil sjældent forekomme, hvis registerallokatoren kan bruge 15 eller flere registre. 3 Brug af registerallokatoren ved oversættelse af funktioner Vi bruger en forenklet udgave af MIPS kaldkonventionen: Registrene $2... $15 er caller-saves og $16... $25 er callee-saves. Parametre overføres i registrene $2... $15 (efter behov) og resultatet findes efter kaldet i $2. Vi antager, at der aldrig er mere end 14 parametre, så alle parametre kan overføres i registre. Register $29 er stakpegepind. Stakken vokser nedad og stakpegepinden peger på det øverste stakelement (det med den laveste adresse). Vi bruger ikke nogen frame pointer. 3.1 Funktionskald Registerallokatoren implementerer caller-saves ved ikke at allokere variabler i callersaves-saves registre, hvis de er levend hen over et funktionskald. Så hvis vi har et kald t = f(x,y,z), kan vi oversætte det til instruktionerne [Mips.MOVE ("2","x"), Mips.MOVE ("3","y"), Mips.MOVE ("4","z"), Mips.JAL ("f",["2","3","4"]), Mips.MOVE ("t","2")] Bemærk, at listen af de registre, der bruges som parametre i kaldet, angives som et ekstra argument til JAL instruktionen. Et kald til en funktion, hvor adressen ligger i et register, oversættes med instruktionen JALR i stedet for JAL. Hvis man skal kunne håndtere flere end 14 parametre, skal de overskydende parametre lægges på stakken. 3.2 Prolog og epilog Vi antager, at vi har en definition f(x,y,z) = e og at vi har oversat kroppen e til en liste af MIPS-instruktioner i ML-variablen body, sådan at koden lægger sit resultat i variablen result. Vi skal nu tilføje kode til at overføre parametre og resultat fra funktionen: 4

5 val body2 = [Mips.MOVE ("x","2"), Mips.MOVE ("y","3"), Mips.MOVE [Mips.MOVE ("2","result")] Vi kalder nu registerallokatoren: val (body3,_,maxreg, spilled) = RegAlloc.registerAlloc body2 ["2"] Bemærk, at vi angiver, at $2 skal være levende ved udgangen af koden, da den jo indeholder returværdien. body3 indholder nu den allokerede krop. Bemærk, at det er sandsynligt, at de fleste af de MOVE-instruktioner, vi tilføjede herover, (og mange andre) er elimineret af registerallokatoren. maxreg indeholder det største allokerede register. Hvis det er over 15, er der brugt callee-saves registre, der så skal gemmes i aktiveringsposten og hentes bagefter. Vi vil i samme omgang gemme returadressen i den første plads i aktiveringsposten. Lad os antage, at maxreg er 17, så vi skal gemme register $31 (returadressen), register $16 og register $17 i aktiveringsposten. Vi antager endvidere, at der ikke forekommer spill, så spilled = 0: val prologue = [Mips.LABEL "f", Mips.ADDI ("29","29","-12"), Mips.SW ("31","29","0"), Mips.SW ("16","29","4"), Mips.SW ("17","29","8")] val epilogue = [Mips.LW ("31","29","0"), Mips.LW ("16","29","4"), Mips.LW ("17","29","8"), Mips.JR ("31",[]), Mips.ADDI ("29","29","12")] val body4 = epilogue Bemærk, at $29 er stakpegepinden, og at den modificeres med størrelsen af aktiveringsposten. Hvis spilled er forskellig fra 0 skal stakpegepinden yderligere flyttes med 4*spilled og offsets til gemte variabler tilsvarende modificeres. Her er et eksempel, hvor spilled=2: val prologue = [Mips.LABEL "f", Mips.ADDI ("29","29","-20"), Mips.SW ("31","29","8"), Mips.SW ("16","29","12"), Mips.SW ("17","29","16")] val epilogue = [Mips.LW ("31","29","8"), Mips.LW ("16","29","12"), 5

6 Mips.LW ("17","29","14"), Mips.ADDI ("29","29","20"), Mips.JR ("31",[])] val body4 = epilogue $31 er link-registret, som indeholder returadressen. Da JR bruges i kode, der ikke registerallokeres, er listen af resultatregistre ligegyldig og derfor tom. Eksemplet herover er specifik for en bestemt funktion. En oversætter skal håndtere forskellige funktioner, og vil derfor definere kode til at konstruere prolog og epilog ud fra funktionsnavnet og værdien af maxreg. Figur 1 viser et eksempel på hvordan en sådan kode kunne se ud. Hvis man skal håndtere flere parametre, end der kan overføres i registre, skal movepars udvides, så den henter de overskydende parametre fra stakken. 4 MARS MARS er en simulator for en delmængde af MIPS. MARS er kompatibel med SPIM simulatoren, som tidligere er brugt på kurset og som er beskrevet i Appendix A.9 i [1]. MARS er et javaprogram, der kan hentes på En vejledning til at køre MARS kan findes på SPIM kan køres fra kommandolinjen ved at skrive java -jar Mars.jar program.asm hvorefter indata og uddata læses og skrives på standard input og output. Man kan også køre MARS interaktivt, se dokumentationen. Det kan være en god ide at lægge Mars.jar i et særskilt filkatalog og lave et alias: alias mars java -jar stinavn/mars.jar Så man man skrive mars program.asm i stedet for java -jar Mars.jar program.asm. Der er nogle ting, man skal være opmærksom på i MARS: Registrene $1, $26 og $27 er reserveret til hhv. ekspansion af pseudoordrer (f.eks. la) og til operativsystemet. Stakpegepinden ($29) er initialiseret ved start af kørsel, og man bør ikke reinitialisere den. Stakken vokser nedad i lageret (til lavere adresser) og stakpegepinden peger på topelementet. Når der skal lægges en ny værdi på stakken bør det gøres med følgende sekvens: Træk størrelsen af værdien fra stakpegepinden, gem værdien på den adresse, stakpegepinden nu peger på. Plads til globale variabler, tabeller, hob og lignende er i datasegmentet, og bør vokse opad i lageret fra datasegmentets start. 6

7 val SP = "29" val RA = "31" fun translatefunction(name,parameters,bodyexp,ftable) = let val body = TransExp(bodyExp,emptyTable,ftable,"2") val body2 = movepars parameters body val (body3,_,maxreg,spilled) = RegAlloc.registerAlloc body2 ["2"] val (savecode,restorecode,framesize) = saverestore maxreg (4*spilled+4) val prologue = [Mips.LABEL name, Mips.ADDI (SP,SP,Int.toString (~framesize)), Mips.SW (RA,SP,int.toString savecode val epilogue = [Mips.LW (RA,SP,int.toString (4*spilled)), Mips.ADDI (SP,SP,Int.toString framesize), Mips.JR (RA,[])] in epilogue end and movepars [] _ = [] movepars (par::pars) reg = Mips.MOVE (par,int.tostring reg) :: movepars pars (reg+1) and saverestore reg size = if reg<16 then ([],[],size) else let val args = (Int.toString reg, SP, int.tostring size) val (save,restore,size1) = saverestore (reg-1) (size+4) in (Mips.SW args :: save, Mips.LW args :: restore, size1) end Litteratur Figur 1: Oversættelse af funktion [1] David A. Patterson and John L. Hennessy. Computer Organization & Design, the Hardware/Software Interface. Morgan Kaufmann,

MIPS modulet og registerallokatoren

MIPS modulet og registerallokatoren MIPS modulet og registerallokatoren Værktøjer til oversætterdelen af K1 Dat1E 2001 MIPS modulet Den vigtigste del af modulet MipsData.sml er datatypen mips, som beskriver MIPS ordrer, se figur 1. Alle

Læs mere

Oversættere Skriftlig eksamen onsdag d. 25. januar 2006

Oversættere Skriftlig eksamen onsdag d. 25. januar 2006 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Skriftlig eksamen onsdag d. 25. januar 2006 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave. Den skriftlige

Læs mere

DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E

DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E Vejledende løsninger til

Læs mere

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

Læs mere

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract Sproget Six Til brug i rapportopgaven på kurset Oversættere Vinter 2006 Abstract Six er baseret på det sprog, der vises i figur 6.2 og 6.4 i Basics of Compiler Design. Den herværende tekst beskriver basissproget

Læs mere

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 18. april 2007

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 18. april 2007 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 18. april 2007 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved

Læs mere

To mikroarkitekturer til MIPS Karakteropgave på Maskinarkitektur 1B

To mikroarkitekturer til MIPS Karakteropgave på Maskinarkitektur 1B To mikroarkitekturer til MIPS Karakteropgave på Maskinarkitektur 1B Martin Zachariasen 10. september 2004 1 Introduktion Dette er den karaktergivende rapportopgave på kurset Maskinarkitektur 1B, efterår

Læs mere

Oversættere Skriftlig eksamen onsdag d. 19. april 2006

Oversættere Skriftlig eksamen onsdag d. 19. april 2006 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Skriftlig eksamen onsdag d. 19. april 2006 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave. Den skriftlige

Læs mere

Oversættere Skriftlig eksamen onsdag d. 24. januar 2007

Oversættere Skriftlig eksamen onsdag d. 24. januar 2007 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Skriftlig eksamen onsdag d. 24. januar 2007 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave. Den skriftlige

Læs mere

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 25. januar 2006

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 25. januar 2006 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 25. januar 2006 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet

Læs mere

Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output...

Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... Indhold Maskinstruktur... 3 Kapitel 1. Assemblersprog...3 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... 9 Kapitel 2. Maskinkode... 13 2.1 Den fysiske maskine... 13 2.2 Assemblerens

Læs mere

DATALOGI 1E. Skriftlig eksamen fredag d. 16. januar 2004

DATALOGI 1E. Skriftlig eksamen fredag d. 16. januar 2004 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen fredag d. 16. januar 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

Læs mere

Maskinsprog. Martin Zachariasen, DIKU. Programmer og ordrer. Ordretyper. Operander og deres placering. Ordreformat. Procedurekald. Andre arkitekturer

Maskinsprog. Martin Zachariasen, DIKU. Programmer og ordrer. Ordretyper. Operander og deres placering. Ordreformat. Procedurekald. Andre arkitekturer Maskinsprog Martin Zachariasen, DIKU Litteratur: Patterson & Hennessy, kap. 3 Programmer og ordrer Ordretyper Operander og deres placering Ordreformat Procedurekald Andre arkitekturer 1 Stored-program

Læs mere

Sproget Rascal (v. 2)

Sproget Rascal (v. 2) Sproget Rascal (v. 2) Til brug i K1 på kurset Oversættere Opdateret 29/11 2004 Abstract Rascal er et simpelt Pascal-lignende imperativt sprog. Dette dokument beskriver uformelt Rascals syntaks og semantik

Læs mere

DATALOGI 1E. Skriftlig eksamen fredag den 7. juni 2002

DATALOGI 1E. Skriftlig eksamen fredag den 7. juni 2002 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen fredag den 7. juni 2002 Opgaverne vægtes i forhold til tidsangivelsen, og hver opgaves besvarelse bedømmes som en helhed.

Læs mere

Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 24. januar 2007

Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 24. januar 2007 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 24. januar 2007 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet

Læs mere

DM13-3. Obligatorisk opgave E.05 Håndoptimering af SPARC assembler-kode

DM13-3. Obligatorisk opgave E.05 Håndoptimering af SPARC assembler-kode - 3. Obligatorisk opgave E.05 Håndoptimering af SPARC assembler-kode Jacob Aae Mikkelsen - 191076 12. december 2005 1 Indhold 1 Opgave beskrivelse 2 2 Muligheder for optimering 2 2.1 efter branch.........................

Læs mere

Computerarkitektur Eksamen 2014Q2. Niels Olof Bouvin A. Studienummer Navn

Computerarkitektur Eksamen 2014Q2. Niels Olof Bouvin A. Studienummer Navn Computerarkitektur Eksamen 2014Q2 Niels Olof Bouvin A Studienummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive studienummer og navn tydeligt på forsiden, inden eksamen afsluttes.

Læs mere

DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003

DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen mandag den 23. juni 2003 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

Læs mere

Eksamen Computerarkitektur 2013Q4. Niels Olof Bouvin. Studienummer Navn

Eksamen Computerarkitektur 2013Q4. Niels Olof Bouvin. Studienummer Navn Eksamen Computerarkitektur 2013Q4 Niels Olof Bouvin Studienummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive studienummer og navn tydeligt på forsiden, inden eksamen afsluttes.

Læs mere

Moduler i Standard ML

Moduler i Standard ML Moduler i Standard ML Hans Hüttel December 2001 I løbet af datalogikurset har vi haft glæde af en hel række forskellige standardmoduler som f.eks. Math, Int, Real og String. Disse moduler kan, har vi set,

Læs mere

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen mandag den 28. maj 2001. 1 60 min. 2 60 min. 3 60 min. 4 60 min.

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen mandag den 28. maj 2001. 1 60 min. 2 60 min. 3 60 min. 4 60 min. Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Vejledende løsninger til Skriftlig eksamen mandag den 28. maj 2001 Opgaverne vægtes i forhold til tidsangivelsen, og hver opgaves besvarelse

Læs mere

Computerarkitektur Eksamen 2014Q3. Niels Olof Bouvin. Studienummer Navn

Computerarkitektur Eksamen 2014Q3. Niels Olof Bouvin. Studienummer Navn Computerarkitektur Eksamen 2014Q3 Niels Olof Bouvin Studienummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive studienummer og navn tydeligt på forsiden, inden eksamen afsluttes.

Læs mere

Sider og segmenter. dopsys 1

Sider og segmenter. dopsys 1 Sider og segmenter dopsys 1 Lokal vs global sideallokering (1) Med (a) som udgangspunkt giver (b) lokal hhv. (c) global allokering forskellige resultater dopsys 2 Lokal vs global sideallokering (2) Den

Læs mere

Sproget Limba. Til brug i G1 og K1. Dat1E 2003

Sproget Limba. Til brug i G1 og K1. Dat1E 2003 Sproget Limba Til brug i G1 og K1 Dat1E 2003 Abstract Limba er et simpelt imperativt sprog med hoballokerede tupler. Dette dokument beskriver uformelt Limbas syntaks og semantik samt en fortolker for Limba,

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2 DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld

Læs mere

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen fredag den 7. juni 2002

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen fredag den 7. juni 2002 Københavns Universitet Naturvidenskabelig Embedseksamen DTLOGI 1E Vejledende løsninger til Skriftlig eksamen fredag den 7. juni 2002 Opgaverne vægtes i forhold til tidsangivelsen, og hver opgaves besvarelse

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 20. april, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Sider og segmenter. dopsys 1

Sider og segmenter. dopsys 1 Sider og segmenter dopsys 1 Lokal vs global sideallokering (1) Med (a) som udgangspunkt giver (b) lokal hhv. (c) global allokering forskellige resultater dopsys 2 Lokal vs global sideallokering (2) Den

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 10. april, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Niveauer af abstrakte maskiner

Niveauer af abstrakte maskiner Mikroarkitektur Niveauer af abstrakte maskiner Spørgsmål... Hvordan realiseres IJVM maskinen (lev. 2), eller hvordan ser en IJVM-CPU ud? Opbygning (mikroarkitekturen Mic-1) Anvendelse (mikroprogrammet

Læs mere

Lær Python dag 1 - modul 1

Lær Python dag 1 - modul 1 Lær Python dag 1 - modul 1 Introduktion, basis python Steffen Berg Klenow Jonas Bamse Andersen Syddansk Universitet Indhold 1. Velkommen 2. Programmering i python 3. Typer, variabler og udtryk 1 Velkommen

Læs mere

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 20. april 2005

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 20. april 2005 Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 20. april 2005 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved

Læs mere

Programmering og Problemløsning, 2017

Programmering og Problemløsning, 2017 Programmering og Problemløsning, 2017 Parsing med Højere-Ordens Funktioner Martin Elsman Datalogisk Institut Københavns Universitet DIKU 1. December, 2017 Martin Elsman (DIKU) Programmering og Problemløsning,

Læs mere

Kernealphaerne Indhold af G1

Kernealphaerne Indhold af G1 Kernealphaerne Indhold af G1 3 små opgaver: 1. Oversæt en kerne og afvikl den på en kernealpha 2. Håndoversæt en C/C++ funktion til alpha assembler 3. Implementer procedurer til dynamisk lagerallokering

Læs mere

Python programmering. Per Tøfting. MacFest

Python programmering. Per Tøfting. MacFest Python programmering MacFest 2005 Per Tøfting http://pertoefting.dk/macfest/ Indhold Måder at afvikle Python program på Variabler Data typer Tal Sekvenser Strenge Tupler Lister Dictionaries Kontrolstrukturer

Læs mere

Ugeseddel 4 1. marts - 8. marts

Ugeseddel 4 1. marts - 8. marts Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2017 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 6. april, 2017 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Eksamen dcomnet Q2/2010. Navn

Eksamen dcomnet Q2/2010. Navn 2582 Eksamen dcomnet Q2/2010 ID Navn Example I A32-prg1 Betragt følgende program skrevet i IA-32 symbolsk maskinsprog:.section.data x:.long 2 r:.long 27.section.text.globl _start _start: pushl x movl $0,%ebx

Læs mere

Skriftlig eksamen, Programmer som Data Onsdag 6. januar Spørgsmål 1 (20 %): Regulære udtryk og automater

Skriftlig eksamen, Programmer som Data Onsdag 6. januar Spørgsmål 1 (20 %): Regulære udtryk og automater Skriftlig eksamen, Programmer som Data Onsdag 6. januar 2010 Dette eksamenssæt har 5 sider. Tjek med det samme at du har alle siderne. Eksamens varighed er 4 timer. Der er fire spørgmål. For at få fuldt

Læs mere

En oversætter for 100

En oversætter for 100 En oversætter for 100 Godkendelsesopgave på kurset Oversættere Vinter 2011/12 1 Introduktion Dette er projektopgaven på Oversættere, vinter 2011 2012. Opgaven skal løses i grupper på op til 3 personer.

Læs mere

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato: 14-05-2003

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato: 14-05-2003 Side 1 af 8 Dato: 14-05-2003 Til Sigurd Som aftalt vil jeg her fremsende vores program til vores 80C535 kit og display. Det gik jo ud på at vi skulle starte med at få den til at intialiserer displayet,

Læs mere

Lageradministration Paging og segmentering

Lageradministration Paging og segmentering Lageradministration Paging og segmentering 1 Re: Logiske/fysiske adresser... Proces-struktur = kode og data for en proces 4G En proces tilgår sin proces-struktur via et logisk/virtuelt adresserum, fx 0,

Læs mere

DATALOGI MASKINARKITEKTUR

DATALOGI MASKINARKITEKTUR Københavns Universitet Natrvidenskabelig Embedseksamen DATALOGI ASKINARKITEKTUR Skriftlig eksamen fredag den 29. oktober 24 kl. -2 Frederiksholms kanal 4B Der er fem opgaver i alt og disse giver følgende

Læs mere

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal

Læs mere

Eksamen dcomnet Q2/2012. Studiekortsnummer Navn

Eksamen dcomnet Q2/2012. Studiekortsnummer Navn Eksamen dcomnet Q2/2012 Studiekortsnummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive studienummer og navn tydeligt på forsiden, inden eksamen afsluttes. Der er ét rigtigt

Læs mere

Dat1E G2 - En enkelt/dobbelt-cyklus mikroarkitektur. Espen Højsgaard Rune Højsgaard Christian Iversen

Dat1E G2 - En enkelt/dobbelt-cyklus mikroarkitektur. Espen Højsgaard Rune Højsgaard Christian Iversen Dat1E G2 - En enkelt/dobbelt-cyklus mikroarkitektur Espen Højsgaard Rune Højsgaard Christian Iversen 1 Indhold 1 Sammenfatning 3 2 Enkelt-cyklus mikroarkitektur 3 2.1 Tilføjelser til datastien.............................

Læs mere

Eksempel: Skat i år 2000

Eksempel: Skat i år 2000 Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)

Læs mere

Planen for idag. Indhold af G1. Kernealphaerne. Alpha erne. Datalogi 1F Forår 2003

Planen for idag. Indhold af G1. Kernealphaerne. Alpha erne. Datalogi 1F Forår 2003 Planen for idag Datalogi 1F Forår 2003 G1 Et gensyn med KFirst G1 Jørgen Sværke Hansen cyller@diku.dk 2 Sidst så vi hvordan man starter den første proces KCurProc = KWaitQ.Get(); KFirst(KCurProc->sp);

Læs mere

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen Studiepraktik Thomas Bøgholm boegholm@cs.aau.dk Mikkel Hansen mhan@cs.aau.dk Jacob Elefsen jelefs12@student.aau.dk 1 Studiepraktik -- program Program onsdag 10.00 10.15 Registrering af fremmøde og gennemgang

Læs mere

Løsningsforslag Skriftlig eksamen 9. januar 2012

Løsningsforslag Skriftlig eksamen 9. januar 2012 Løsningsforslag Skriftlig eksamen 9. januar 2012 Version 1, 2012-01-09 Spørgsmål 1 Spørgsmål 1.1 Først laver vi indlysende korrekt NFAer for hver af de to dele (ddd ddd) og (_ddd)* af det givne regulære

Læs mere

CPUer og maskinkode DM534. Rolf Fagerberg

CPUer og maskinkode DM534. Rolf Fagerberg CPUer og maskinkode DM534 Rolf Fagerberg CPUers opbygning En CPU er bygget op af elektriske kredsløb (jvf. sidste forelæsning), som kan manipulere bits. En CPU manipulerer flere bits ad gangen, deres antal

Læs mere

Eksamen dcomnet 2012Q4. Årskortsnummer Navn

Eksamen dcomnet 2012Q4. Årskortsnummer Navn Eksamen dcomnet 2012Q4 Årskortsnummer Navn Vejledning Eksamen varer en time fra kl. 9 til kl. 10. Husk at skrive årskort og navn tydeligt på forsiden, inden eksamen afsluttes. Der er ét rigtigt svar per

Læs mere

Programmering og Problemløsning, 2017

Programmering og Problemløsning, 2017 Programmering og Problemløsning, 2017 Rekursion Towers of Hanoi og Liniegrafik Martin Elsman Datalogisk Institut Københavns Universitet DIKU 13. Oktober, 2017 Martin Elsman (DIKU) Programmering og Problemløsning,

Læs mere

if (symbol == IDENTIFIER) { object = findprocedureobject(symboltable, identifier);

if (symbol == IDENTIFIER) { object = findprocedureobject(symboltable, identifier); procedureimplementation() { struct item_t* item; struct object_t* object; item = malloc(sizeof(struct item_t)); returntype(item); if (symbol == IDENTIFIER) { object = findprocedureobject(symboltable, identifier);

Læs mere

Binært LAS-format Denne indstilling import Laser scan datafiler, i LAS format.

Binært LAS-format Denne indstilling import Laser scan datafiler, i LAS format. Kvadratnetsmodel - Import af Laser Scan Datafiler Funktionen til at oprette kvadratnetsmodeller er nu blevet udvidet og omfatter nu også en funktion til at importere laser scanning datafiler. Metoden bag

Læs mere

Dat1E K1-1 - En pipelinet mikroarkitektur. Espen Højsgaard Rune Højsgaard Christian Iversen

Dat1E K1-1 - En pipelinet mikroarkitektur. Espen Højsgaard Rune Højsgaard Christian Iversen Dat1E K1-1 - En pipelinet mikroarkitektur Espen Højsgaard Rune Højsgaard Christian Iversen 1 Indhold Indhold 2 1 Sammenfatning 5 1.1 Ambitioner................................... 5 1.2 Resultat.....................................

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter side 1 af 11 sider Skriftlig eksamen i Datalogi Modul 1 Sommer 2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 10% Opgave 2 10%

Læs mere

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen torsdag den 16. januar 2003

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen torsdag den 16. januar 2003 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Vejledende løsninger til Skriftlig eksamen torsdag den 16. januar 2003 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Java syntax og style guide Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Brug

Læs mere

program fibomain(input,output); var i, j,result : integer; var x, y: integer;

program fibomain(input,output); var i, j,result : integer; var x, y: integer; program fibomain(input,output); var i, j,result : integer; procedure fib(n : integer); var x, y: integer; begin if (n=0) or (n=1) then result := 1 else begin fib(n-1); x:= result; fib(n-2); y:= result;

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

It og informationssøgning Forelæsning september 2006 Nils Andersen. Underprogrammer og betingelser. Standardfunktioner, typeomsætning

It og informationssøgning Forelæsning september 2006 Nils Andersen. Underprogrammer og betingelser. Standardfunktioner, typeomsætning It og informationssøgning Forelæsning 2 13. september 2006 Nils Andersen Underprogrammer og betingelser Standardfunktioner, typeomsætning Funktionskald Moduler, lange navne Brugerdefinerede funktioner

Læs mere

Interrupt - Arduino. Programmering for begyndere Brug af Arduino. Kursusaften 6 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK

Interrupt - Arduino. Programmering for begyndere Brug af Arduino. Kursusaften 6 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Programmering for begyndere Brug af Arduino Programmeringskursus Interrupt - Arduino EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Interrupts Programmeringskursus Genbrug Interrupts Betyder blot at man afbryder

Læs mere

Yderligere udvidelser af oversætter for Minimal

Yderligere udvidelser af oversætter for Minimal Yderligere udvidelser af oversætter for Minimal Karakteropgave på kurset Oversættere Vinter 2005 1 Introduktion Dette er den anden del af rapportopgaven på Oversættere, vinter 2005. Opgaven skal løses

Læs mere

Forelæsning Uge 4 Torsdag

Forelæsning Uge 4 Torsdag Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (i mandags) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?

Læs mere

Hent filoplysninger fra billeder og filer

Hent filoplysninger fra billeder og filer Hent filoplysninger fra billeder og filer I denne vejledning bliver det gennemgået, hvordan man via Power Forespørgsel kan hente filoplysninger fra en mappe ind i Excel. Der skal opbygges følgende elementer:

Læs mere

Programmering for begyndere Lektion 2. Opsamling mm

Programmering for begyndere Lektion 2. Opsamling mm Lektion 2 Opsamling mm God tone Der er indlagt spørge sessioner Lektion 2 - Agenda Programmering for Lidt ændringer til teknikken, herunder hvordan du genser en lektion Lidt generelle tilbagemeldinger

Læs mere

Martin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox

Martin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox Martin Olsen DM0 Projekt 0 Del I. marts 0 FOTO: Colourbox Indhold Indledning... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Kildekode til SimpleInv.java... Kildekode til MergeSort.java...

Læs mere

PUT og INPUT funktionerne

PUT og INPUT funktionerne PUT og INPUT funktionerne Af: Peter Kellberg Danmarks Statistik Sejrøgade 11 DK-2100 København Ø pke@dst.dk PUT og INPUT-funktionerne Denne artikel er foranlediget af en henvendelse til vores interne SAS

Læs mere

Programmeringscamp. Implementer funktionerne én for én og test hele tiden.

Programmeringscamp. Implementer funktionerne én for én og test hele tiden. Programmeringscamp De to opgaver træner begge i at lave moduler som tilbyder services der kan bruges af andre, samt i at implementere services efter en abstrakt forskrift. Opgave 1 beder jer om at implementere

Læs mere

Punktskrift eller Tale Via e-mail

Punktskrift eller Tale Via e-mail Punktskrift eller Tale Via e-mail Send et dokument via e-mail og få det retur som forkortet punktskrift eller syntetisk tale. Det er ideen bag Sensus Braille Mail Robotten, en e-mail baseret tjeneste som

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2

Læs mere

DM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11

DM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11 DM01 DM01 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 18/3-2003 Side 1 af 11 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DILEMMA:...4 2.1.1 METODER:...4

Læs mere

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer Introduktion til datastrukturer Introduktion til datastrukturer Philip Bille Datastrukturer Datastruktur. Metode til at organise data så det kan søges i/tilgås/manipuleres effektivt. Mål. Hurtig Kompakt

Læs mere

Et SML-program til at finde rødder i en kontinuert funktion

Et SML-program til at finde rødder i en kontinuert funktion Et SML-program til at finde rødder i en kontinuert funktion Hans Hüttel Ole Høgh Jensen 11 januar 2002 Indhold 1 Om denne tekst 1 2 Hvad er bisektion? 1 3 Specifikation af vores program 2 4 SML-versionen

Læs mere

Forelæsning Uge 3 Mandag

Forelæsning Uge 3 Mandag Forelæsning Uge 3 Mandag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser ArrayList Collection med variabelt antal elementer Der er mange andre Collection typer (se Collection interfacet

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

uprocessorens hardware

uprocessorens hardware uprocessorens hardware 8080 Architecture Kernen i en processor er ALUen. Det er den som kan udfører simple regne operationer. De tal den arbejdermed gemmes i en række registre. Når et tal skal hentes eller

Læs mere

Peter Kellberg. Rundt om Danmarks Statistiks makroer. Design, Standardisering, Teknik

Peter Kellberg. Rundt om Danmarks Statistiks makroer. Design, Standardisering, Teknik Peter Kellberg Rundt om Danmarks Statistiks makroer Design, Standardisering, Teknik SAS Forum 2009 Ét makrobibliotek ca 50 makroer, vi selv har lavet mange andre fx CLAN Autocall makroer en makro er et

Læs mere

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer

Læs mere

Processoren: Enkelt-cyklus implementation

Processoren: Enkelt-cyklus implementation Processoren: Enkelt-cyklus implementation Martin Zachariasen, DIKU Litteratur: Patterson & Hennessy, afsnit 5.1 5.3 Historisk tilbageblik MIPS-arkitekturen/delmængde Klokning og byggeklodser Opbygning

Læs mere

Klasse 1.4 Michael Jokil 03-05-2010

Klasse 1.4 Michael Jokil 03-05-2010 HTX I ROSKILDE Afsluttende opgave Kommunikation og IT Klasse 1.4 Michael Jokil 03-05-2010 Indholdsfortegnelse Indledning... 3 Formål... 3 Planlægning... 4 Kommunikationsplan... 4 Kanylemodellen... 4 Teknisk

Læs mere

Programmering C RTG - 3.3 09-02-2015

Programmering C RTG - 3.3 09-02-2015 Indholdsfortegnelse Formål... 2 Opgave formulering... 2 Krav til dokumentation af programmer... 3 ASCII tabel... 4 Værktøjer... 5 Versioner af ASCII tabel... 6 v1.9... 6 Problemer og mangler... 6 v2.1...

Læs mere

Tredjepart webservices

Tredjepart webservices Tredjepart webservices 4. juni 2015 USS Dok. Klik her for at angive tekst. 1/12 Indholdsfortegnelse Introduktion... 3 Miljøer... 3 Adgang... 3 API kald... 4 GET: /authorizations... 4 Input 4 Output 4 Output

Læs mere

Computerarkitektur. - en introduktion til computerarkitektur med LINDA

Computerarkitektur. - en introduktion til computerarkitektur med LINDA Computerarkitektur - en introduktion til computerarkitektur med LINDA faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig

Læs mere

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer Introduktion til datastrukturer Introduktion til datastrukturer Philip Bille Datastrukturer Datastruktur. Metode til at organise data så det kan søges i/tilgås/manipuleres effektivt. Mål. Hurtig Kompakt

Læs mere

Kapitel 4 Løkker i C#

Kapitel 4 Løkker i C# Kapitel 4 Løkker i C# Løkker en vigtig del af alle programmeringssprog, og C# er ikke andeles. En løkke er en måde at udføre en del af koden gentagne gange. Ideen er at du fortsætter med at udføre en opgave

Læs mere

Vejledning INSTALLATION AF ZHC5010 BETJENINGSTRYK MED FIBARO HOME CENTER. ZHC5010 Firmware Version: 1.0

Vejledning INSTALLATION AF ZHC5010 BETJENINGSTRYK MED FIBARO HOME CENTER. ZHC5010 Firmware Version: 1.0 Vejledning INSTALLATION AF ZHC5010 BETJENINGSTRYK MED FIBARO HOME CENTER. ZHC5010 Firmware Version: 1.0 Indledning Denne vejledning beskriver hvordan det er muligt at oprette Z-Home Controls ZHC5010 Betjeningstryk

Læs mere

Computeren inderst inde

Computeren inderst inde Computeren inderst inde DM534 Rolf Fagerberg Bits Information = valg mellem forskellig muligheder. Simpleste situation: valg mellem to muligheder. Kald dem 0 og. Denne valgmulighed kaldes en bit. Bits

Læs mere

GIS. Guide til indlæsning af data i ArcGIS herunder KMS-data fra internettet

GIS. Guide til indlæsning af data i ArcGIS herunder KMS-data fra internettet GIS Af Anders Bartholdy Guide til indlæsning af data i ArcGIS herunder KMS-data fra internettet Baggrundskort fra KMS er en rigtig god resurse der er tilgængelig via ArcGIS. Derfor starter vi med at gennemgå

Læs mere

Virkefeltsregler i Java

Virkefeltsregler i Java Virkefeltsregler i Java int i; int k; Sequence s; int j; What s in a name? Brian spillede blændende i søndags! Skolen ligger i Viby Ring til Kirsten og sig at... Et navn fortolkes i en kontekst og konteksten

Læs mere

Forelæsning Uge 2 Mandag

Forelæsning Uge 2 Mandag Forelæsning Uge 2 Mandag Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Java syntax og style guide Afleveringsopgave:

Læs mere

ISCC. IMM Statistical Consulting Center. Brugervejledning til beregningsmodul til robust estimation af nugget effect. Technical University of Denmark

ISCC. IMM Statistical Consulting Center. Brugervejledning til beregningsmodul til robust estimation af nugget effect. Technical University of Denmark IMM Statistical Consulting Center Technical University of Denmark ISCC Brugervejledning til beregningsmodul til robust estimation af nugget effect Endelig udgave til Eurofins af Christian Dehlendorff 15.

Læs mere

Programmering og Problemløsning, 2017

Programmering og Problemløsning, 2017 Programmering og Problemløsning, 2017 Martin Elsman Department of Computer Science University of Copenhagen DIKU September 27, 2017 Martin Elsman (DIKU) Programmering og Problemløsning, 2017 September

Læs mere

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Lærevejledning - en introduktion til maskinarkitektur faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig Basisuddannelse

Læs mere

Denne artikel er en detaljeret gennemgag af det fundamentale i batchfiler til hjemmebrug :-) FEEL THE POWER! ;-)

Denne artikel er en detaljeret gennemgag af det fundamentale i batchfiler til hjemmebrug :-) FEEL THE POWER! ;-) Denne guide er oprindeligt udgivet på Eksperten.dk Batch genopfriskning Denne artikel er en detaljeret gennemgag af det fundamentale i batchfiler til hjemmebrug :-) FEEL THE POWER! ;-) Skrevet den 03.

Læs mere

Introduktion til datastrukturer

Introduktion til datastrukturer Introduktion til datastrukturer Datastrukturer Stakke og køer Hægtede lister Dynamiske tabeller Philip Bille Introduktion til datastrukturer Datastrukturer Stakke og køer Hægtede lister Dynamiske tabeller

Læs mere

Abstrakte datatyper C#-version

Abstrakte datatyper C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype

Læs mere

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer

Læs mere