MIPS modulet og registerallokatoren
|
|
- Dorte Bonde
- 7 år siden
- Visninger:
Transkript
1 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 de i K1-opgaven nævnte ordrer (og lidt til) er understøttet af denne datastruktur. Endvidere er de fleste pseudo-ordrer fra MASM understøttet. Alle registre eller konstanter angives i mips datatypen som tegnfølger (af typen string). Dermed er det muligt at bruge symbolske navne og regneudtryk. I registerfelter vil en tegnfølge, der er rent numerisk blive betragtet som et nummereret register og udskrevet med et $-prefix. Ikke-numeriske tegnfølger i registerfelter vil blive betragtet som symbolske navne og udskrevet med et :-prefix. Talfelter udskrives uændret, så man kan bruge alle de udtryk, som MASM understøtter. Til at repræsentere en liste af MIPS-intruktioner bruges typen mips list. En liste kan omformes til en tekst (string) i MASM -kompatibelt format med funktionen pp_mips_list. Der er i MipsData.sml defineret tre funktioner, som implementerer pseudoordrer MOVE, LI og SUBI. Disse bliver oversat til hhv. ORI og ADDI. Pseudoordrer har to formål: 1) De letter læseligheden af oversættere. 2) Registerallokatoren kan fjerne MOVE-ordrer, som flytter mellem to identiske registre. Det kan den ikke hvis MOVE er implementeret på en anden måde end den definerede pseudo-ordrer (f.eks. med ADDI eller OR med register 0). JAL intruktionen har, udover destination, i mips datastrukturen et ekstra argument, som er en liste af registre. Denne liste skal indeholde de registre, som er brugt til at overføre parametre til den kaldte funktion (hvis registre 1
2 datatype mips = LABEL of string ASSERT of string ORG of string EQU of string*string EQUR of string*string END NOP DC of string list DS of string DSRND of string*string COMMENT of 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 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 *) JR of string 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) *) STOP fun MOVE (rd,rs) = ORI (rd,rs,"0") fun LI (rd,v) = ADDI (rd,"0",v) fun SUBI (rd,rs,v) = ADDI (rd,rs,"-(" ^ v ^ ")") Figure 1: MIPS datastrukturen 2
3 bruges til dette). Dette er af hensyn til registerallokatoren, som ellers ikke kan se, at disse registre er levende frem til kaldet. Funktionen pp_mips_list udskriver en liste af MIPS instruktioner i et format, der kan læses af MASM assembleren. MIPS modulet findes i filen ~dat1e/k1/mipsdata.sml. Registerallokatoren Registerallokatoren er defineret i RegAlloc.sig og RegAlloc.sml. Det er en simpel registerallokator uden spill. Dette skulle ikke være noget problem med programmer i den størrelse som skal oversættes i K1. Registerallokatoren kaldes med følgende argumenter: En liste af MIPS-ordrer Angivelse af de registre, som registerallokatoren må bruge. Dette er givet som et interval af registre, som er opdelt i to grupper: Callersaves registre og callee-saves registre. Dette angives med tre tal: rmin, callermax og rmax. Alle registre mellem rmin og callermax er callersaves registre. Registre mellem callermax+1 og rmax er callee-saves. Registerallokatoren returnerer følgende: En liste af register-alias definitioner som knytter numeriske registre til symbolske navne. Disse er lavet med equr direktivet fra MASM. En modificeret udgave af den liste af MIPS-ordrer, som blev givet som inddata. MOVE ordrer vil være kommenteret ud i den modificerede liste, hvis de to operander er allokeret til samme register. En liste af de variabler, der er levende ved indgangen af koden. Denne information er primært nyttig til testudskrifter under aflusning af oversætteren. Det højeste allokerede registernummer. Dette kan udnyttes til kun at gemme de callee-saves registre, der rent faktisk bliver brugt. Registerallokatoren findes i filerne RegAlloc.sml og RegAlloc.sig i kataloget ~dat1e/k1. 3
4 Kaldkonventioner Registerallokatoren understøtter rene callee-saves kaldkonventioner eller blandede caller-saves/callee-saves konventioner, men ikke rene caller-saves konventioner. Det skyldes at registerallokatoren ikke har adgang til aktiverinsgposten og derfor ikke har et sted at gemme caller-saves registre ved kald. Det betyder også at gemning/hentning af callee-saves registre ikke gøres af registerallokatoren. Kode for dette kan tilføjes efter registerallokatoren er kaldt, når man ved, hvilke callee-saves registre er brugt. Herunder er en kort vejledning om hvordan registerallokatorer kan bruges ved forskellige kaldkonventioner. Ren stakbaseret callee-saves. Denne konvention svarer til figurerne i Basics of Compiler Design. Registerallokatoren kaldes med koden svarende til den del af figur 9.5 som starter med parameter 1 := M[F P + 4] og slutter med M[F P + 4] := result. Da JAL bruger et register til at gemme returadressen, skal gemningen af denne flyttes fra kaldstedet til prologen af den kaldte funktion, altså fra figur 9.6 til figur 9.5. Se endvidere herunder. Da der ikke er nogen caller-saves registre, sættes callermax parameteren til registerallokatoren til 0. rmin sættes til 1 og rmax til det højeste register, som ikke bliver brugt til specielle formål, såsom F P eller link-register. I eksemplet herunder er rmax sat til 25. Hvis body er kroppen af funktionen, inklusive hentning af parametre fra stakken og gemning af resultatet i stakken (som beskrevet herover), så kan man kalde registerallokatoren som følger: let val (allocs, newbody, liveatentry, maxused) = RegAlloc.registerAlloc body Efter kaldet indeholder allocs registerdefinitioner (en liste af EQUR pseudoordrer), newbody en ny version af kroppen (hvor nogle MOVE ordrer er kommenteret ud). liveatentry skal ikke bruges i denne sammenhæng, men maxused indeholder nummeret på det højeste brugte register. Man skal nu foran newbody tilføje kode til at gemme registrene 1... maxr på stakken og efter newbody tilføje kode til at hente dem fra stakken igen. For at gøre funktionen komplet skal yderligere tilføjes: En label for funktionen. De registerdefinitioner, som er givet i allocs. 4
5 let val body = kode for kroppen af funktionen val loadcode = kode til at hente parametre fra stakken val resultcode = kode til at lægge resultat på stakken val body2 = resultcode val (allocs,body3,liveatentry,maxused) = RegAlloc.registerAlloc body val framesize = 4*(antal parametre+1+maxused) val savecode = kode til at gemme reg. 1..maxUsed i aktiveringspost val restorecode = kode til at hente reg. 1..maxUsed i aktiveringspost in [MipsData.LABEL f, MipsData.SW ("31",FP,"0"), MipsData.EQU (f ^ "_framesize", Int.toString [MipsData.LW ("31",FP,"0"), MipsData.JR "31"] end Figure 2: Kodegenerering for funktionen f med ren callee-saves strategi Kode til at gemme register 31 i aktiveringskroppen. (Efter kroppen) kode til at hente register 31 fra aktiveringsposten. En JR ordre til at hoppe til returadressen. I figur 2 er skitseret et stykke SML, der genererer kode for en funktion jævnfør ovenstående beskrivelse. Visse detaljer er udeladt (markeret med kursiv). FP er en SML variabel, der indeholder nummeret (som tegnfølge) på det register, derf bruges som frame-pointer. Når man inde i kroppen af funktionen skal oversætte et funktionskald, skal man (jvf. fig 9.6 i Basics of Compiler Design ) lægge framesize til F P. Men f ramesize kendes først efter at registerallokatoern er kaldt og (med maxused) angiver hvor mange registre, der skal gemmes. Derfor er det en god ide, inde i kroppen at bruge en symbolsk konstant for framesize og efter kaldet til registerallokatoren tilføje en definition af den symbolske konstant til koden (med en EQU pseudo-ordre). Husk at bruge forskellige symbolske navne for f ramesize i forskellige funktioner. Figur 2 viser hvordan det gøres. Når man skal oversætte et funktionskald, beregnes parametrene først i mellemkodevariabler. Lige før kaldet lægges den aktuelle framesize til F P og paramterene flyttes fra mellemkodevariablerne til den nye aktiveringspost (som vist i figur 9.6 i Basics of Compiler Design ). Derefter laves en JAL 5
6 instruktion til den kaldte funktions label. Da der ikke bruges registre til parameteroverførsel, er registerlisten til MipsData.JAL tom. Bagefter JAL instruktionen sættes kode til at flytte resultatet fra aktiveringsposten og trække framsize fra F P igen. Som nevnt ovenover, er framesize en symbolsk variable, der hedder noget forskelligt fra funktion til funktion. For at bruge den rigtige symbolske variabel, skal oversætterfunktionen kende navnet på denne. Dette kan gøres med en ekstra nedarvet attribut til oversætterfunktionen eller via en global variabel. Hvis man har separat F P og SP, som beskrevet i afsnit i Basics of Compiler Design, behøves f ramesize ikke. Til gengæld skal prolog/epilog og kaldsekvens modificeres så både F P og SP opdateres. Se afsnit for flere detaljer. Stakbaseret blandet caller-saves og callee-saves. Registerallokatoren er lavet sådan at variabler, der er levende henover funktionskald, ikke bliver allokeret i caller-saves registre. Dermed er det ikke nødvendigt at gemme levende variabler, som ligger i caller-saves registre (der vil nemlig ikke være levende variabler i caller-saves registre), så koden for et kald i den blandede kaldkonvention ser ud præcis som i den rene callee-saves strategi ovenfor. Man skal sørge for, at der er callee-saves registre nok til at holde alle variabler, der er levende over funktionskald. Derfor bør højest 1/3 af de allokerbare registre være caller-saves. I forhold til den rene callee-saves strategi beskrevet i figur 2, skal der kun laves to ændringer: 1) I kaldet til registerallokatoren skal callermax sættes til det højeste caller-saves register (f.eks. 8), så man skriver 8 i stedet for 0 i kaldet. 2) Kun registre mellem callermax+1 (f.eks. 9) og maxused skal gemmes og hentes i aktiveringsposten. 3) Beregningen af framesize ændres så man i stedet for maxused bruger (maxused-callermax). Med meget lidt ekstra indsats kan man altså spare et betydeligt antal gemninger og hentninger af registre. 6
7 Brug af registre til parameteroverførsel/retur. Denne konvention svarer til figur i Basics of Compiler design. I forhold til den ovenfor beskrevne blandende konvention skal der laves følgende ændringer: I kaldsekvensen: 1) De første parametre lægges i caller-saves registre (rmin... callermax) i stedet for på stakken. De resterende parametre (hvis der er flere) skal stadig lægges på stakken. 2) I koden for funktionskaldet skal JAL ordren markeres med de variabler, der bruges til overførsel af parametre til kaldet. 3) Efter kaldet laves et flyt fra det første caller-saves register til den symbolske variabel, der skal indeholde resultatet af kaldet. Registerallokatoren vil fjerne dette flyt, hvis det ikke er nødvendigt, dvs, hvis den symbolske variabel kan allokeres i det første caller-saves register. I prolog og epilog: 1) I stedet for at hente alle parametrene fra stakken, flyttes de første af dem fra caller-saves registrene til symbolske registre 1. Registerallokatoren vil eliminere de indsatte MOVE, hvis der alligevel ikke er brug for dem (dvs., hvis det symbolske register kan allokeres i samme register, som parameteren blev overført i). 2) Efter beregning af kroppen lægges værdien af denne i det første callersaves register i stedet for på stakken. 3) Beregningen af framesize ændres, så parametre, der er overført i registre ikke tæller med til framesize. 1 Det er ikke en god ide bare at lade dem blive liggende i de nummererede registre, da de så vil blive overskrevet ved funktionskald. 7
MIPS, registerallokering og MARS
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
Læs mereOversæ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 mereOversæ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 mereDATALOGI 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 mereSproget 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 mereOversæ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 mereTo 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 mereOversæ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 mereDATALOGI 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 mereMaskinsprog. 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 mereDATALOGI 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 mereDATALOGI 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 mereDATALOGI 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 mereOversættere Skriftlig eksamen onsdag d. 20. april 2005
Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Skriftlig eksamen onsdag d. 20. april 2005 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave. Den skriftlige
Læs mereOversæ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 mereSider 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 mereIndhold. 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 mereOversæ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 mereDATALOGI 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 mereYderligere 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 mereSider 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 mereDATALOGI 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 mereSproget 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 mereDM13-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 mereOversæ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 mereSproget 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 mereModuler 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 mereProgrammering og Problemløsning, 2017
Programmering og Problemløsning, 2017 Træstrukturer Part III Martin Elsman Datalogisk Institut Københavns Universitet DIKU 3. November, 2017 Martin Elsman (DIKU) Programmering og Problemløsning, 2017 3.
Læs mereÅben uddannelse, Efterår 1996, Oversættere og køretidsomgivelser
3/10/96 Seminaret den 26/10 vil omhandle den sidste fase af analysen og de første skridt i kodegenereringen. Det drejer sig om at finde betydningen af programmet, nu hvor leksikalsk og syntaktisk analyse
Læs mereVejledning til Kilometer Registrering
Vejledning til Kilometer Registrering iphone Appen som holder styr på dit firma og privat kørsel. Udviklet af Trisect Development 2011. www.trisect.dk For iphone version 4.2 og nyere. Med Kilometer Registrering
Læs mereDATALOGI 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 mereKernealphaerne 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 mereIde med Diff. Mål. Tidsplan. 1.uge: 2.uge:
Side 1 af 5 Ide med Diff. Min ide med differenertierings modulet er at lave et program som kan vise 3d objekter, og få lavede en konverter som kan konventer 3ds filer over til noget som flash kan bruge.
Læs mereHukommelsesspil. Introduktion. Scratch
Scratch 2 Hukommelsesspil All Code Clubs must be registered. By registering your club we can measure our impact, and we can continue to provide free resources that help children learn to code. You can
Læs mereDM507 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 mereXML webservice for pensionsordninger. Version 1.0 Draft A
XML webservice for pensionsordninger Version 1.0 Draft A Dokumentoplysninger Titel: Projekt: Webservice for pensionsordninger EDI kontorets branchekoordinerede dataudveksling Forfatter: Bidragsydere til
Læs mereSkriftlig 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 mereSvane Electronic Universal timer med 2 relæer og 18 funktioner hver 1
Svane Electronic Universal timer med 2 relæer og 18 funktioner hver 1 Digital dobbelt timer print modul 12V 2000.2236 Multi funktions timer med 18 funktioner pr. relæ, anvendelig i mange installationer,
Læs mereLæ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 mereSvane Electronic Timer universal med 8 funktioner 1
Svane Electronic Timer universal med 8 funktioner 1 Digital timer print modul 12V 2000.2231 Multi funktions timer med 8 funktioner, anvendelig i mange installationer, forsyning 12VDC drift. Printet har
Læs mereDM507 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 mereI denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.
Denne guide er oprindeligt udgivet på Eksperten.dk Grundlæggende PHP I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.
Læs mereJTA-DynamicsPDF. til. Microsoft Dynamics C5 vers. 3 SP3 eller højere. JTA-Data Jylland Vinkelvej 108a 8800 Viborg Tlf. 86672024 www.jta-jylland.
JTA-DynamicsPDF til Microsoft Dynamics C5 vers. 3 SP3 eller højere. www.jta-jylland.dk 1. Introduktion til JTA-DynamicsPDF. JTA-DynamicsPDF til Microsoft Dynamics C5 er et ekstra modul, som er udviklet
Læs mereFang Prikkerne. Introduktion. Scratch
Scratch 2 Fang Prikkerne All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register your club. Introduktion
Læs mereProgrammering 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 mereDM507 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 mereIndholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen...
Modul 2 Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen... 6 Opgave... 6 POST/GET og formular... 6 Opgaver...
Læs mereDM507 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 merePlanen 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 mereDat1E 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#AlleKanKode. Lektion 3 - Operatorer
#AlleKanKode Lektion 3 - Operatorer Disclaimer / Ansvarsfraskrivelse Alt du deler og siger mm bliver optaget. Lad være med at dele privat oplysninger, adgangskoder, kreditkort oplysninger osv. Andre vil
Læs mereDat1E 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 mereDenne 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 merePost Danmark forsendelsesmodul til Magento (Pacsoft)
Opsætningsguide til Post Danmark forsendelsesmodul til Magento (Pacsoft) Version 1.0.0 Myggenæsgade 3, 4. Lejl. 4 København kontakt@magentomoduler.dk Opsætning Modulets konfigurationsmuligheder findes
Læs mereectrl Skabelonkonvertering
ectrl Skabelonkonvertering Indholdsfortegnelse 1. Indledning 3 2. Import ved hjælp af standardskabeloner 4 Kolonneopsætning og feltdefinition 6 3. Opsætning af konverteringsdefinitioner 8 4. Udvidede muligheder
Læs mereCPUer 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 mereIt og informationssøgning Forelæsning december 2006 Jakob Grue Simonsen. Diverse emner af almen interesse
It og informationssøgning Forelæsning 12 6. december 2006 Jakob Grue Simonsen Diverse emner af almen interesse 1 Gemme objekter til filer I python skal en fil på disken åbnes, før man kan læse eller skrive
Læs merePeter 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 mereGeoCad modul DSFL ingen 1. Oversætterens opbygning (frdsfl)
GeoCad modul DSFL Denne note beskriver i korte træk DSFL oversætteren fra/til GeoCAD med udgangspunkt i oversættelse af digitale matrikelkort og levering af digitale ændringskort. Vi har valgt dette eksempel
Læs mereNyt i Analyseportalen og Web Report Studio. Analyseportalen
Nyt i Analyseportalen og Web Report Studio Analyseportalen Den nye Analyseportal er ikke meget anderledes end den gamle. Der er dog enkelte funktioner, der er blevet meget anderledes. De er omtalt i denne
Læs mereComputerarkitektur. - 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 mereSvane Electronic Timer universal med 8 funktioner 1
Svane Electronic Timer universal med 8 funktioner 1 Digital timer print modul 12V 2000.2231 Multi funktions timer med 8 funktioner, anvendelig i mange installationer, forsyning 12VDC drift. Printet har
Læs mereLær Python - Dag 4, modul 2 Objektorienteret programmering
Lær Python - Dag 4, modul 2 Objektorienteret programmering Simon J. Larsen 28. oktober 2017 Institut for Matematik og Datalogi Metoder Metoder Indtil videre har vi kun brugt objekter til at gemme værdier.
Læs mereSkriftlig eksamen, Programmer som Data 2. 3. januar 2014
Skriftlig eksamen, Programmer som Data 2. 3. januar 2014 Dette eksamenssæt har 5 sider. Tjek med det samme at du har alle siderne. Eksamenssættet udleveres elektronisk fra kursets hjemmeside torsdag 2.
Læs mereForelæ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 mereOversættere / Datalogi 1E
Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere / Datalogi 1E Skriftlig eksamen onsdag d. 26. januar 2005 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved hver opgave.
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereSwipBox forsendelses modul til Magento
Opsætningsguide til SwipBox forsendelses modul til Magento Version 1.2.7 Magentomoduler ApS Myggenæsgade 3, 4. Lejl. 4 København kontakt@magentomoduler.dk Magentomoduler ApS Opsætning Modulets konfigurationsmuligheder
Læs mereSIGIL Sådan opretter du en e- bog Step by Step
SIGIL Sådan opretter du en e- bog Step by Step Af Gitte Winter Graugaard Nov. 2013, Sigil version 0.7.2 1 Her følger en intro skridt for skridt til at oprette en e- bog i SIGIL og publicere den på SAXO
Læs mereEasy Guide i GallupPC
Easy Guide i GallupPC Version. 6.00.00 Gallup A/S Masnedøgade 22-26 DK 2100 København Ø Telefon 39 27 27 27 Fax 39 27 50 80 Indhold SÅDAN KOMMER DU I GANG MED AT ANVENDE GALLUPPC... 2 TILFØJELSE AF UNDERSØGELSER
Læs mereInstruks for udlevering af fraktioner Regionernes Bio- og GenomBank
Instruks for udlevering af fraktioner Regionernes Bio- og GenomBank Formål Denne instruks beskriver den samlede procedure for udlevering af fraktioner i registreringsmodulet for Regionernes Bio- og GenomBank
Læs mereSPSS introduktion Om at komme igang 1
SPSS introduktion Om at komme igang 1 af Henrik Lolle, oktober 2003 Indhold Indledning 1 Indgang til SPSS 2 Frekvenstabeller 3 Deskriptive statistikker gennemsnit, standardafvigelse, median osv. 4 Søjlediagrammer
Læs mereVejledning til PRO2TAL Bager/Online. Ordrer
På Menuen Dagligt findes menupunkterne Ordrekladde og Ordre. Disse menupunkter benyttes til at oprette, vedligeholde og forespørge på henholdsvis faste ordrer (Ordrekladden) og almindelige ordrer dvs.
Læs mereIndledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.
Indledning...2 Variabler...13 Eksempel: 1...13 Eksempel 2:...13 Eksempel 3:...15 Eksempel 4:...16 Metoder...17 Metode (intet ind og intet ud)...17 Metode (tekst ind)...18 Metode (tekst ind og tekst ud)...19
Læs mereVSM. Værdistrømsanalyse. Ledelsens vejledning. DI version
DI version 2012-02-05 VSM Værdistrømsanalyse 2-1-1 - VSM - Ledelsens Vejledning - 2012-02-059 Alle rettigheder tilhører DI side 1 af 5 Instruktion til ledelsen Rettigheder DI ejer alle rettigheder til
Læs mereProgrammering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen
Programmering Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Oversigt Undervisningen Hvad er programmering Hvordan er et program organiseret? Programmering og fysik Nobelprisen
Læs mereJTAnno. Annoncestyring. til. Microsoft Business Solutions C5 JTA DATA. Jylland
nno Annoncestyring til Microsoft Business Solutions C5 -Data nno vers. 1.2.1 til Microsoft Business Solutions C5 vers. 3 1. Introduktion til nno nno til Microsoft Business Solutions C5 vers. 3 er et ekstra
Læs mereKom godt igang med Inventar registrering
Kom godt igang med Inventar registrering (InventoryDB) (Med stregkodesupport) programmet fra PetriSoft Introduktion... 1 Inventar registrering... 2 Værktøjsudleje... 3 Service database til reperationer
Læs mereProgrammering 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 mere1.1 Formål Webservicen gør det muligt for eksterne parter, at fremsøge informationer om elevers fravær.
EfterUddannelse.dk FraværService - systemdokumentation BRUGERDOKUMENTATION: WEB-SERVICE Af: Logica Indhold 1. Indledning... 1 1.1 Formål... 1 1.2 Webservice version... 1 1.3 Historik... 1 2. Absence Webservice...
Læs mereDesign af IT-medier. Skriftlig prøve 27. august 1999. Alle skriftlige hjælpemidler er tilladt.
Design af IT-medier Skriftlig prøve 27. august 1999 Varighed: Hjælpemidler: Bedømmelse: Besvarelse: Opgaver: 4 timer. Alle skriftlige hjælpemidler er tilladt. Karakter efter 13-skalaen. Alle ark skal være
Læs mereHent 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 mereSkriftlig 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 mereAnvendelse af metoder - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur
Læs mereInduktive og rekursive definitioner
Induktive og rekursive definitioner Denne note omhandler matematiske objekter, som formelt er opbygget fra et antal basale byggesten, kaldet basistilfælde eller blot basis, ved gentagen brug af et antal
Læs mereHusk lige at gemme under et andet filnavn, så du har en arbejdskopi at lege med.!!
Når du vil have indholdsfortegnelser med så kan du lave dem ved at sørge for at alle de tekster som skal vær en overskrift bliver formateret til en sådan. (du skal lige trække i hjørnet af billederne så
Læs merePICTURE formater. Klog på SAS 15. marts 2012
PICTURE formater Klog på SAS 15. marts 2012 Agenda Hvad er et format Hvor adskiller et PICTURE format sig Teknik Eksempel 1 cprnr Eksempel 2 cprnr med "udsøgning" af fejlrecords Eksempel 3 et format, der
Læs meredcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet)
dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet) Efterår 2009 1 Talrepræsentation På maskinkodeniveau (Instruction Set Architecture Level) repræsenteres ordrer og operander ved bitfølger
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Vinter 1998/99 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 16% Opgave 2 12% Opgave 3 10% Opgave
Læs meredcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)
dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) Efterår 2009 1 Simpel aritmetik på maskinniveau I SCO, appendix A, er det beskrevet, hvordan man adderer ikke-negative heltal
Læs mereIndberetning af data til DMU
STOQ SQL Server Indberetning af data til DMU Brugervejledning til Indberetningsmodulet Oktober, 2007 Sag nr. 7694229 Version 3.02 Dato 2007-10-04 Udarbejdet af JNS Rambøll Danmark A/S Bredevej 2 DK-2830
Læs mereDATALOGI 1E. Vejledende løsninger til Skriftlig eksamen mandag den 23. juni 2003
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Vejledende løsninger til Skriftlig eksamen mandag den 23. juni 2003 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves
Læs mereMålet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.
Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål
Læs mereSvane Electronic Universal timer med 4 relæer og et valg af 18 funktioner hver 1. 4 kanals timer med 18 funktioner
Svane Electronic Universal timer med 4 relæer og et valg af 18 funktioner hver 1 4 kanals timer med 18 funktioner 2000.2238 Vi sikrer en høj kvalitet sammen med vores samarbejdes partnere! Vi udveksler
Læs mereGrådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.
Grådige algoritmer Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.
Læs mereAbstrakte 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 merepoedit og oversættelse af sprogfiler
poedit og oversættelse af sprogfiler af Georg S. Adamsen WordPress.Blogos.dk 2009 http://kortlink.dk/wordpressblogosdk/6g38 1 af 11 14-04-2009 14:55 Jeg får af og til spørgsmål om, hvordan man bruger poedit,
Læs mereComputerarkitektur 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 mereUniversity of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11
DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void
Læs mereIntegralregning med TI-Interactive! Stamfunktioner Integraler Arealer Jan Leffers (2005)
Integralregning med TI-Interactive! Stamfunktioner Integraler Arealer Jan Leffers (005) Indholdsfortegnelse Indholdsfortegnelse... Stamfunktion og integralregning...3 Numerisk integration...3 Areal under
Læs mere