Maskinsprog. Martin Zachariasen, DIKU. Programmer og ordrer. Ordretyper. Operander og deres placering. Ordreformat. Procedurekald. Andre arkitekturer
|
|
- Valdemar Marcussen
- 8 år siden
- Visninger:
Transkript
1 Maskinsprog Martin Zachariasen, DIKU Litteratur: Patterson & Hennessy, kap. 3 Programmer og ordrer Ordretyper Operander og deres placering Ordreformat Procedurekald Andre arkitekturer 1
2 Stored-program konceptet von Neumann maskinen: Data og programmer gemmes i arbejdslageret som en sekvens af tal. Eksempel: Memory Accounting program (machine code) Editor program (machine code) Processor C compiler (machine code) Payroll data Book text Source code in C for editor program (fig. 3.7) 2
3 Definitioner Ordre: Betegnelse for en kommando, som findes i en datamats maskinsprog. Ordren bestemmer éntydigt, hvilken operation og hvilke operander der benyttes. Program: Sekvens af ordrer. Maskinsprog: Den mest primitive form på hvilken man kan skrive de ordrer, en datamat skal udføre; det er den form som et udførbart program findes på i arbejdslageret. 3
4 Maskinsprog: oversigt Der er normalt ordrer for Aritmetik: addition, subtraktion, o.s.v. Logik: logisk and, or, xor, not, shift o.s.v. Dataoverførsel: læsning fra og skrivning til lager Hopordrer: afvig (ubetinget) fra den sekventielle udførsel af ordrer ved at hoppe til en given ordre, herunder specielt procedurekald Valg: betingede hop, dvs. udfør hop hvis en bestemt betingelse er opfyldt Afkodning: Hvordan finder maskinen ud af, hvad det er for en ordre? Vi tager udgangspunkt i MIPS arkitekturen fra
5 Addition i maskinsprog Addition: add a, b, c Alle MIPS s aritmetiske ordrer skal have tre operander, d.v.s. a = b + c + d + e må omskrives til add a, b, c add a, a, d add a, a, e # a = b+c # a = a+d = b+c+d # a = a+e = b+c+d+e Altså er tre ordrer nødvendige for at summere de fire variable. 5
6 Oversættelse fra C Et lille stykke C-program indeholder: a = b + c; d = a - e; Oversætteren (compileren) skal producere tilsvarende kode, f.eks. add a, b, c sub d, a, e Resultatet er nu i symbolsk maskinsprog (assembler). Ikke et brugervenligt sprog! 6
7 Oversættelse fra C (forts.) En lidt mere kompliceret C-ordre: f = (g + h) - (i + j); Denne C-ordre kan f.eks. oversættes til: add t0, g, h # temporær variabel t0 = g+h add t1, i, j # temporær variabel t1 = i+j sub f, t0, t1 # f = t0-t1 = (g+h)-(i+j) Oversætteren opretter to nye variable, t0 og t1, for at kunne udtrykke programmet i maskinens begrænsede tre operander pr. ordre notation. 7
8 Registre Operander kan lagres i registre og i arbejdslageret. MIPS har 32 registre à 32 bit (et ord). Oversætteren tildeler registre til programvariable. F.eks. i det tidligere eksempel: f = (g + h) - (i + j); kan variablerne f,g,h,i,j tildeles registrene $s0,$s1,$s2,$s3,$s4. Det oversatte program bliver f.eks. add $t0,$s1,$s2 add $t1,$s3,$s4 sub $s0,$t0,$t1 # $t0 = g+h # $t1 = i+j # $s0 = $t0-$t1, dvs. f=(g+h)-(i+j) 8
9 MIPS registre Nr. Navn Brug 0 $zero konstanten 0 1 $at assembler 2-3 $v0-$v1 resultater 4-7 $a0-$a3 argumenter 8-15 $t0-$t7 temporære $s0-$s7 gemte (saved) $t8-$t9 temporære $k0-$k1 operativsystem 28 $gp global pegepind 29 $sp stak-pegepind 30 $fp frame-pegepind 31 $ra returadresse : bevares ved procedurekald 9
10 Registre og arbejdslager Simple variable kan gemmes i registre; store data- strukturer (f.eks. arrays) må placeres i arbejdslageret. Aritmetiske operationer kan kun udføres på operander lagret i registre (på RISC-maskiner). Der kræves ordrer til dataoverførsel mellem registre og arbejdslageret (data transfer instructions). Arbejdslagerets indhold tilgås via adressen (byte- eller ord-adresse) Address Data Processor Memory (fig. 3.3) 10
11 Dataoverførsel imellem registre og arbejdslager Data flyttes fra arbejdslageret til et register ved anvendelse af en hent-ordre (load). Hent-ordrens opbygning i MIPS: operationens navn: lw registret der skal hentes register der indeholder adressen i arbejdslageret hvorfra data skal hentes (base register) en konstant der angiver en forskydelse af den angivne adresse (offset) Den komplementære operation kaldes en gem-ordre (store). 11
12 Oversættelse med hent og gem C-tildelingssætning: A[12]=h+A[8]; Antagelser: Ordrer: h A $s2 $s3 lw $t0,32($s3) # $t0 = A[8] add $t0,$s2,$t0 # $t0 = h+a[8] sw $t0,48($s3) # A[12] = h+a[8] Bemærk at vi benytter byte-adresse forskydningen når vi udregner adresserne for A[8] og A[12]. 12
13 Oversættelse med variabelt array-indeks C-tildelingssætning: g=h+a[i]; Antagelser: Ordrer: g h A i $s1 $s2 $s3 $s4 add $t1,$s4,$s4 # $t1 = 2*i add $t1,$t1,$t1 # $t1 = 4*i add $t1,$t1,$s3 # $t1 = A[i] s adresse lw $t0,0($t1) # $t0 = A[i] add $s1,$s2,$t0 # g = h+a[i] 13
14 Indkodning af ordrer Repræsentation af MIPS-ordren add $t0, $s1, $s2 som decimaltal: som binære tal: Denne indkodning benævnes maskinkode, og placeringen af de forskellige felter kaldes ordreformatet. 14
15 Indkodning af en R-type ordre op rs rt rd shamt funct 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit op: ordre-operation (opcode) rs: første kilde-operand rt: anden kilde-operand rd: modtager resultatet (destination) shamt: antal skift funct: funktion (vælger varianten af operationen) 15
16 Indkodning af en I-type ordre Ordrer som f.eks.: lw sw $t0,32($s3) $t0,48($s3) op 6 bit rs 5 bit rt 5 bit address 16 bit op: ordre-operation (opcode) rs: register der indeholder lageradressen rt: register der skal hentes/gemmes address: adresseforskydning 16
17 Fra C til bit-mønster C-ordre: A[300]= h + A[300]; Symbolsk maskinsprog (assembler): lw $t0,1200($t1) add $t0,$s2,$t0 sw $t0,1200($t1) Indkodning (maskinsprog): address/ op rs rt rd shamt funct
18 Betingede hop Det der adskiller en datamaskine fra en simpel regnemaskine er, at den kan træffe beslutninger. Basale ordrer: beq register1, register2, L1 Hop til ordren med label L1 hvis værdien af register1 er lig med værdien af register2. bne register1, register2, L1 Hop til ordren med label L1 hvis værdien af register1 er forskellig fra værdien af register2. Disse to ordrer kaldes for betingede hop (conditional branches). 18
19 If-then-else konstruktion C-ordre: if (i==j) f=g+h; else f=g-h; Antagelser: f g h i j $s0 $s1 $s2 $s3 $s4 Assembler: bne $s3,$s4,else # hop hvis i!=j add $s0,$s1,$s2 # f=g+h j Exit # hop til Exit Else: sub $s0,$s1,$s2 # f=g-h Exit: Ordren j er et ubetinget hop til en fast adresse (unconditional branch/jump) 19
20 While-løkke C-sætning: while (save[i]==k) i=i+j; Antagelser: Assembler: i j k save $s3 $s4 $s5 $s6 Loop: add $t1,$s3,$s3 # $t1 = 2*i add $t1,$t1,$t1 # $t1 = 4*i add $t1,$t1,$s6 # $t1 = save[i] s adresse lw $t0,0($t1) # $t0 = save[i] bne $t0,$s5,exit # hop hvis save[i]!=k add $s3,$s3,$s4 # i=i+j j Loop # hop til Loop Exit: Multiplikation af i med 4 hver gang kan undgås! 20
21 Sammenligning af heltal Antag vi har to variable og der er gemt i registrene $s0 og $s1. Spørgsmål: Er? Værdierne af de to registre sammenlignes ved at benyttes ordren slt (set on less than): Less:... slt $t0,$s0,$s1 # $t0=1 hvis a<b (ellers 0) bne $t0,$zero,less # hop til Less hvis $t0!=
22 Switch sætning Udførsel af switch kommando ved anvendelse af en hoptabel. C-program: switch (k) { case 0: f=i+j; break; case 1: f=g+h; break; case 2: f=g-h; break; case 3: f=i-j; break; } Antagelser: f g h i j k 4 JumpTable $s0 $s1 $s2 $s3 $s4 $s5 $t2 $t4 JumpTable er en array der indeholder fire adresser svarende til de fire labels som der skal hoppes til. 22
23 Switch-sætning (forts.) Assembler: slt $t3,$s5,$zero # test om k<0 bne $t3,$zero,exit # hvis k<0 Exit slt $t3,$s5,$t2 # test om k<4 beq $t3,$zero,exit # hvis k>=4 hop til Exit add $t1,$s5,$s5 # $t1 = 2*k add $t1,$t1,$t1 # $t1 = 4*k add $t1,$t1,$t4 # $t1 = JumpTable[k] s adr. lw $t0,0($t1) # $t0 = JumpTable[k] jr $t0 # hop efter $t0 L0: add $s0,$s3,$s4 # k=0: f=i+j j Exit # hop ud L1: add $s0,$s1,$s2 # k=1: f=g+h j Exit # hop ud L2: sub $s0,$s1,$s2 # k=2: f=g-h j Exit # hop ud L3: sub $s0,$s3,$s4 # k=3: f=i-j Exit: Ordren jr er et ubetinget hop til en adresse givet ved et register (jump register). 23
24 Procedure-kald og parameteroverførsel Procedure-kald Understøttes ved ordren jump-and-link jal ProcedureAdresse der gemmer adressen på den efterfølgende ordre i registret $ra før hoppet udføres. Parameteroverførsel Sker via registrene $a0-$a3 (primært) eller stakken (sekundært). Returnerede værdier Sker via registrene $v0-$v1. Stakken Stak-pegepinden $sp peger på toppen af stakken; af historiske grunde vokser stakken nedad. 24
25 Register-spilling og parameteroverførsel Hvis en procedure kalder en ny procedure, skal den gemme tilbagehopsadressen ($ra); derfor skal $ra gemmes i lageret (register-spilling). Regler for parameteroverførsel ved gentagne indlejrede kald: Caller save: Den kaldende procedure har ansvaret for at gemmme og genfremhente registre, der skal bevares over kaldet. Callee save: Den kaldte procedure har ansvaret for at gemmme og genfremhente registre, der skal bevares over kaldet (benyttes efterfølgende). 25
26 Ikke-rekursiv procedure C-procedure (ombytter element k og k+1 i array v): swap(int v[], int k) { int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; } Assembler: swap: add $t1, $a1, $a1 # $t1 = k * 2 add $t1, $t1, $t1 # $t1 = k * 4 add $t1, $a0, $t1 # $t1 = v[k] s adresse lw $t0, 0($t1) # $t0 (temp) = v[k] lw $t2, 4($t1) # $t2 = v[k+1] sw $t2, 0($t1) # v[k] = $t2 (=v[k+1]) sw $t0, 4($t1) # v[k+1] = $t0 (temp) jr $ra Benytter slet ikke stakken (temporære variable gemmes i registre). 26
27 Procedure-kald: Generel anvendelse af stak Stakken anvendes til: 1. Parametre (hvis der er mere end fire) 2. Retur-adresse (hvis andre procedurer kaldes) 3. Gemte registre (hvis disse ændres) 4. Lokale variable (hvis der ikke er plads i registrene) High address $fp $fp $sp $fp Saved argument registers (if any) $sp Saved return address Saved saved registers (if any) Local arrays and structures (if any) $sp Low address a. b. c. (fig. 3.12) 27
28 Rekursiv procedure C-procedure: int fact (int n) { if (n<1) return (1); else return (n*fact(n-1)); } Assembler: fact: subi $sp,$sp,8 # plads til 2 paa stak sw $ra, 4($sp) # gem returadressen sw $a0, 0($sp) # gem argumentet n slti $t0,$a0,1 # test om n<1 beq $t0,$zero,l1 # hvis n>=1 hop til L1 addi $v0,$zero,1 # returner 1 addi $sp,$sp,8 # pop 2 fra stak jr $ra # hop retur L1: subi $a0,$a0,1 # argument=n-1 jal fact # kald fact med n-1 lw $a0,0($sp) # retabler argument n lw $ra,4($sp) # retabler returadresse addi $sp,$sp,8 # juster stak-pegepind mul $v0,$a0,$v0 # returner n*fact(n-1) jr $ra # hop retur 28
29 Et større eksempel: Sortering af heltal Vi vil benytte følgende C-kode, der sorterer n heltal i en array v: sort (int v[], int n) { int i, j; for (i = 1; i < n; i++) { for (j = i-1; j >= 0 && v[j] > v[j+1]; j--) { swap(v,j); } } } (lettere modificeret udgave af fig. 3.25) 29
30 Sortering af heltal (forts.) Assembler (start og slut af procedure): sort: addi $sp, $sp, -20 # plads til 5 reg paa stak sw $ra, 16($sp) # gem $ra sw $s3, 12($sp) # gem $s3 sw $s2, 8($sp) # gem $s2 sw $s1, 4($sp) # gem $s1 sw $s0, 0($sp) # gem $s0... exit1: lw $s0, 0($sp) # genetabler $s0 lw $s1, 4($sp) # genetabler $s1 lw $s2, 8($sp) # genetabler $s2 lw $s3, 12($sp) # genetabler $s3 lw $ra, 16($sp) # genetabler $ra addi $sp, $sp, 20 # genetabler stak-pegepind jr $ra # afslut procedure 30
31 Sortering af heltal (forts.) Assembler (procedurekrop):... move $s2, $a0 # kopier parameter $a0 (gem) move $s3, $a1 # kopier parameter $a1 (gem) addi $s0, $zero, 1 # i = 1 for1tst: slt $t0, $s0, $s3 # $t0 = 0 hvis i >= n beq $t0, $zero, exit1 # hop ud hvis i >= n addi $s1, $s0, -1 # j = i - 1 for2tst: slti $t0, $s1, 0 # $t0 = 1 hvis j < 0 bne $t0, $zero, exit2 # hop ud hvis j < 0 add $t1, $s1, $s1 # $t1 = j * 2 add $t1, $t1, $t1 # $t1 = j * 4 add $t2, $s2, $t1 # $t2 = v[j] s adresse lw $t3, 0($t2) # $t3 = v[j] lw $t4, 4($t2) # $t4 = v[j+1] slt $t0, $t4, $t3 # $t0 = 0 hvis v[j+1]>=v[j] beq $t0, $zero, exit2 # hop ud hvis v[j+1]>=v[j] move $a0, $s2 # 1. parameter til swap (v) move $a1, $s1 # 2. parameter til swap (j) jal swap # kald swap addi $s1, $s1, -1 # j = j - 1 j for2tst # hop tilbage exit2: addi $s0, $s0, 1 # i = i + 1 j for1tst # hop tilbage... 31
32 hex Text Anvendelse af arbejdslager Arbejdslageret benyttes til: 1. Stakken $sp 7fff ffff hex Stack 2. Dynamiske data 3. Statiske data 4. Programmet 5. Operativsystemet Dynamic data $gp hex Static data pc hex 0 Reserved (fig. 3.22) 32
33 Adressering: De fem muligheder i MIPS 1. Immediate addressing op rs rt Immediate 2. Register addressing op rs rt rd... funct Registers Register 3. Base addressing op rs rt Address Memory Register + Byte Halfword Word 4. PC-relative addressing op rs rt Address Memory PC + Word 5. Pseudodirect addressing op Address Memory PC Word (fig. 3.17) 33
34 Andre arkitekturer Kronologisk oversigt over populære maskiner og deres overordnede arkitektur: Maskine Antal Arkitektur År registre EDSAC 1 accumulator 1949 IBM accumulator 1953 CDC load-store 1963 IBM register-memory 1964 Intel accumulator 1972 DEC VAX 16 register-memory, mem-mem 1977 Intel extended accumulator 1978 Motorola register-memory 1980 Intel register-memory 1985 MIPS 32 load-store 1985 HP PA-RISC 32 load-store 1986 SPARC 32 load-store 1987 PowerPC 32 load-store 1992 DEC Alpha 32 load-store 1992 Intel Itanium 128 load-store
35 OPGAVE 1 Følgende program skal udføres: Loop: lw $t3, 0($t1) beq $t1, $t2, Exit addi $t1, $t1, 4 bne $t3, $zero, Loop Exit: Registre og lager har dette indhold: $t1 = 1000 $t2 = 1012 $t3 = 0 Memory[1000] = 2 Memory[1004] = 0 Memory[1008] = 7 Memory[1012] = 2 Hvad er værdien af register $t1 da programmet når til Exit?
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 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 mereMIPS, 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 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 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 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 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 mereProcessoren: Fler-cyklus implementation
Processoren: Fler-cykls implementation artin Zachariasen, DIKU Litteratr: Patterson & Hennessy, afsnit 5.4 5. Ulemper ved enkelt-cykls maskinen Ændring til fler-cykls maskine Styresignaler Implementering
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 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 mereMIPS 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 mereuprocessorens 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 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 mereDATALOGI 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 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 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 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 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 mereNiveauer 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 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 mereMaskinarkitektur. Lars Kristensen kris@daimi.au.dk. Christian Storm cstorm@daimi.au.dk. dmasark 1
Maskinarkitektur Lars Kristensen kris@daimi.au.dk Christian Storm cstorm@daimi.au.dk dmasark 1 Praktiske oplysninger http://www.daimi.au.dk/dmasark dmasark 2 Forelæsninger Tirsdag 12.15-14.00, Store Aud,
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 mereSelvstudium 1, Diskret matematik
Selvstudium 1, Diskret matematik Matematik på første studieår for de tekniske og naturvidenskabelige uddannelser Aalborg Universitet I dette selfstudium interesserer vi os alene for tidskompleksitet. Kompleksitet
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 mereEksamen 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 mereGrundlæggende køretidsanalyse af algoritmer
Grundlæggende køretidsanalyse af algoritmer Algoritmers effektivitet Størrelse af inddata Forskellige mål for køretid Store -notationen Klassiske effektivitetsklasser Martin Zachariasen DIKU 1 Algoritmers
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 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 mereLæ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 mereBits, bit operationer, integers og floating point
Denne guide er oprindeligt udgivet på Eksperten.dk Bits, bit operationer, integers og floating point Denne artikel beskriver hvordan data gemmes som bits og hvordan man kan manipulere med bits. Den forudsætter
Læs mereMikroprogrammering. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet
Mikroprogrammering Niels Olof Bouvin Institut for Datalogi Aarhus Universitet Oversigt Mikroprogrammering: IJVM implementeret på Mic-1 Forbedringer af Mic-1 Metode til udvikling af symbolske maskinsprogsprogrammer
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 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 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 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 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 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 mereProgrammering i C Intro og grundlæggende C 5. marts 2007
Programmering i C Intro og grundlæggende C 5. marts 2007 Mads Pedersen, OZ6HR mads@oz6hr.dk Plan for kurset Ma. 5/3: Ma. 19/3: Ma. 2/4: To. 12/4: Formål, intro, grundlæggende Videre, sprogkonstruktioner
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 mereGrundlæggende Algoritmer og Datastrukturer. Analyseværktøjer [CLRS, 1-3.1]
Grundlæggende Algoritmer og Datastrukturer Analyseværktøjer [CLRS, 1-3.1] Eksempler på en beregningsprocess Puslespil ved ombytninger Maximum delsum Hvad er udførselstiden for en algoritme? Maskinkode
Læs mereSkriftlig 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 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 mereAlgoritmer og Datastrukturer 1. Gerth Stølting Brodal
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Design af Algoritmer Korrekt algoritme 1) algoritmen standser på alle input 2) Output er det rigtige på alle input Effektivitet 1) Optimer algoritmerne
Læs mereSkriftlig Eksamen Algoritmer og Datastrukturer (dads)
Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Tirsdag den 27. maj 2003, kl. 9.00 3.00 Opgave (25%) For konstanten π = 3.4592... gælder identiteten π 2 6 =
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 mereRettelser til Pilen ved træets rod
Rettelser til Pilen ved træets rod Hans Hüttel Pr. 12. juni 2003 Nedenstående rettelser er indsamlet af mig selv, Peter Poulsen, Martin Maach og ikke mindst Lars Schunk i løbet af foråret 2003. Simple
Læs mereParallelle algoritmer
Parallelle algoritmer 1 Von Neumann s model John von Neumann 1903-57 Von Neumanns model: Instruktioner og data er lagret i samme lager, og én processor henter instruktioner fra lageret og udfører dem én
Læs merePentium IA-32 Maskinarkitekturen
Pentium IA-32 Maskinarkitekturen 1 Historie (1) Starter i 1970 med udviklingen af Intel 4004: 2 Historie (2) Baglæns kompatibilitet tilbage til 8086. 3 Intel 4004 and Pentium 4 http://www.intel.com/museum/archives/index.htm
Læs mereComputere og Netværk (dcomnet)
Computere og Netværk (dcomnet) http://www.cs.au.dk/dcomnet Jens Kargaard Madsen (jkm@iha.dk) Jens Bennedsen (jbb@iha.dk) dcomnet 1 Computere og netværk Beskrivelse At give den studerende kendskab til computere
Læs mereEksamen 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 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 mereBRP Tal. Om computer-repræsentation og -manipulation. Logaritmer
BRP 13.9.2006 Tal. Om computer-repræsentation og -manipulation. Logaritmer 1. Opgaverne til i dag dækker det meste af stoffet 2. Resten af stoffet logaritmer binære træer 3. Øvelse ny programmeringsopgave
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 2 2 n 1/n (logn) n. n 2
Side af sider Opgave (%) Ja Nej n er O(n n)? n er O(n+n )? ( n ) er O( n )? logn er O(n / )? n +n er O(n)? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn)
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 mereif (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 mere14 Algoritmeanalyse. Noter. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. Køretid for forskellige kontrolstrukturer.
14 Algoritmeanalyse. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. O og Ω. Køretid for forskellige kontrolstrukturer. Eksempler på algoritmeanalyse. Eksponentiel og polynomiel
Læs mereIntroduktion til programmering. Af mikroprocessor Atmel ATmega328P i en Arduino Uno
Introduktion til programmering Af mikroprocessor Atmel ATmega328P i en Arduino Uno Min baggrund: Intel 4004, 4 bit, maskinsprog Intel 8008, 8 bit, maskinsprog bit for bit I sprogene: assembler, Fortran
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 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 mereUdarbejdet af CFU Absalon
Chatbots i Scratch Introduktion: En chatbot er et lille program, der kan chatte. De bruges mange steder på internettet, enten for at kunne hjælpe i nogle bestemte situationer eller for at underholde. De
Læs mereAlgoritmeskabeloner: Sweep- og søgealgoritmer C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Finn Nordbjerg 1/9 Indledning I det følgende introduceres et par abstrakte
Læs mereProgrammering 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 mereNoter til C# Programmering Selektion
Noter til C# Programmering Selektion Sætninger Alle sætninger i C# slutter med et semikolon. En sætning kontrollerer sekvensen i programafviklingen, evaluerer et udtryk eller gør ingenting Blanktegn Mellemrum,
Læs mereProgrammering i C. Lektion 4. 5. december 2008
Programmering i C Lektion 4 5. december 2008 Funktioner Eksempel Fra sidst 1 Funktioner 2 Eksempel Funktioner Eksempel Eksempel: 1 / f u n k t i o n s p r o t o t y p e r / i n t i n d l a e s ( void )
Læs mereKontrol-strukturer i PHP
Denne guide er oprindeligt udgivet på Eksperten.dk Kontrol-strukturer i PHP Denne artikel gennemgår kontrolstrukturer i PHP. 'if', 'switch', 'while' og 'for' bliver gennemgået. Den forudsætter lidt grundlæggende
Læs mereAlgoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Analyseværktøjer [CLRS, 1-3.1] Eksempler på en beregningsprocess Puslespil ved ombytninger Maximum delsum Hvad er udførselstiden for en algoritme? Maskinkode
Læs mereDATALOGI 1E. Vejledende løsninger til Skriftlig eksamen fredag d. 16. januar 2004
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Vejledende løsninger til Skriftlig eksamen fredag d. 16. januar 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver
Læs mereProgrammering i C. Lektion september 2009
Programmering i C Lektion 1 8. september 2009 Målgruppe Motivation Indhold Form Materiale 2 / 47 Kursusintroduktion 1 Målgruppe 2 Motivation 3 Indhold 4 Form 5 Materiale Målgruppe Motivation Indhold Form
Læs mereLRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) int wmid, wmevent; PAINTSTRUCT Introduktion ps; til HDC hdc; programmering med switch (message) case WM_COMMAND: wmid = LOWORD(wParam);
Læs mereEksempel: 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//--------------------------------- Definition af porte og funktioner -------------------------
Temeraturmåler (C-program).txt // Initialiserings-sekvens #include #pragma model=medium #pragma code=0x0000 #pragma xdata=0x4000 #pragma asm=on #pragma parameters=register //#define display P4
Læs mereprogram 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 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 mereSkriftlig Eksamen Algoritmer og Datastrukturer (dads)
Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.
Læs mereAlgoritmer og invarianter
Algoritmer og invarianter Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker. Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker.
Læs merePython 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 mereProgrammering i C. Lektion september 2009
Programmering i C Lektion 4 18. september 2009 Pointers Referenceparametre 2 / 19 Pointers 1 Pointers 2 Referenceparametre Pointers Referenceparametre 3 / 19 Husk: En variabel er en navngiven plads i computerens
Læs mereJavaScript. nedarvning.
JavaScript er et sprog, der kan give en hjemmeside mere funktionalitet og gøre den interaktiv, så den reagerer på læsernes handlinger. CGI (Common Gateway Interface) har hidtil været de protokoller, man
Læs mereRecollections about the Development of Pascal. Niklaus Wirth ACM, 1993
Recollections about the Development of Pascal Niklaus Wirth ACM, 1993 1 Niklaus Wirth, 73 Født i Schweiz, 1934 Ph.D., University of California, Berkeley, 1963 Assistant Professor of CS, Stanford University,
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n+logn logn (logn) 7 (3/2) n
Side af sider Opgave (%) Ja Nej n er O( n )? n er O(log n)? n er O(n )? n + er O(0n)? nlogn er O(n / )? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: nlogn logn
Læs mereLX5280. High-Performance RISC-DSP for IP Licensing
High-Performance RISC-DSP for IP Licensing Bob Gelinas, Charlie Hauck, Pat Hays, Franklin Hooker, Kevin Joyce, Sol Katzman, Charley Lind, Elliot Mednick, Tat Ng, Jonah Probell, Sam Rosen, Bill Rubin Lexra,
Læs mereProgrammering i C. Lektion oktober 2008
Programmering i C Lektion 2 20 oktober 2008 Historie Processen At kompilere 2 / 23 Fra sidst 1 Historie 2 Processen 3 At kompilere Historie Processen At kompilere 3 / 23 ALGOL 60 1963 CPL 1966 BCPL 1969
Læs merePointers. Programmering i C. 11. december Lektion 5. Eksempel: denne plads. Getting the address of a variable:
Programmering i C Lektion 5 11. december 2008 Pointers 1 Pointers 2 Referenceparametre 2 / 23 Husk: En variabel er en navngiven plads i computerens lager. En pointer er en pegepind der peger på denne plads.
Læs mereIteration af et endomorft kryptosystem. Substitutions-permutations-net (SPN) og inversion. Eksklusiv disjunktion og dens egenskaber
Produktsystemer, substitutions-permutations-net samt lineær og differentiel kryptoanalyse Kryptologi, fredag den 10. februar 2006 Nils Andersen (Stinson 3., afsnit 2.7 3.4 samt side 95) Produkt af kryptosystemer
Læs mereStart på Arduino og programmering
Programmering for begyndere Brug af Arduino Start på Arduino og programmering EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Start på Arduino og programmering Sidste gang (Introduktion) Programmeringssproget
Læs mereSoftware Construction 1 semester (SWC) Spørgsmål 1
Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /
Læs mereAlgorithms & Architectures II
Algorithms & Architectures II Algorithms & Architectures II Jens Myrup Pedersen Hans Peter Schwefel Kursusholdere Dagens lektion Overordnet mål: At etablere en forståelse for hvordan hardware og hardwarearkitekturer
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 mereKapitel 3 Betinget logik i C#
Kapitel 3 i C# er udelukkende et spørgsmål om ordet IF. Det er faktisk umuligt at programmere effektivt uden at gøre brug af IF. Du kan skrive små simple programmer. Men når det bliver mere kompliceret
Læs mereUniversity 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 mereLageradministration 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 mereLØKKER METODER C S HISTORIE. Grundlæggende programmering Lektion 4
LØKKER METODER C S HISTORIE Grundlæggende programmering Lektion 4 1 LEKTIER UML struktur diagrammer om biler 2 OPERATORER Syntaks til at udføre forskellige beregninger og handlinger Booleans og hvorfor
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 7 n 1/2 2 n /n 3 2logn n 2 /logn
Eksamen august 0 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) n er Ω(n)? n er O( n )? n er O(8logn)? + er O(n)? n er O(n / )? Opgave (%) Opskriv følgende funktioner efter stigende
Læs mereRekursion og dynamisk programmering
Rekursion og dynamisk programmering Datastrukturer & Algoritmer, Dat C Forelæsning 12/10-2004 Henning Christiansen Rekursion: at en procedure kalder sig selv eller et antal metoder kalder hinanden gensidigt.
Læs mereProgrammering i C. Lektion november 2008
Programmering i C Lektion 3 18. november 2008 Kontrolstrukturer Udvælgelse Gentagelse Eksempler Fra sidst 1 Kontrolstrukturer 2 Udvælgelse 3 Gentagelse 4 Eksempler Kontrolstrukturer Udvælgelse Gentagelse
Læs mereRepræsentation af tal
Repræsentation af tal DM534 Rolf Fagerberg Bitmønstre 01101011 0001100101011011... Bitmønstre skal fortolkes for at have en betydning: Tal (heltal, decimaltal (kommatal)) Bogstaver Computerinstruktion
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 5n 4. logn. n 4n 5 n/logn. n n/logn 5n
Algoritmer og Datastrukturer (-ordning) Side af sider Opgave (%) n er O(n 7 )? (logn) er O( n)? n(logn) er O(n)? n er O( n )? n er Ω(n )? Opgave (%) Opskriv følgende funktioner efter stigende orden med
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 23n log n. 4 n (log n) log n
Eksamen. kvarter 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) Ja Nej n er O(n )? n er O(n )? n er O(n + 0 n)? n + n er O(n )? n log n er Ω(n )? Opgave (%) Opskriv følgende funktioner
Læs mere