INF-5110 Oppgaver kodegenerering etc. INF-5110, vår 2011
|
|
- Turid Johansen
- 7 år siden
- Visninger:
Transkript
1 INF-5110 Oppgaver kodegenerering etc. INF-5110, vår 2011 Oppgave 1: Løs oppgavene 8.1 og 8.2 i Louden Oppgave 2: Løs oppgave 8.14.a i Louden. I stedet for oppgave 8.14.b, finn en tredje møte å implemetere switch/case på (ikke en serie tester og ikke en ren hopp-tabell) som kan være et godt kompromiss i mange tilfeller. Oppgave 3: Vi skal se på koden generert av TA-instruksjonene til høyre i figur 9.10 i det utdelte notatet, side 539 (men finnes også på siste side i lysarkene fra 5/5-09, dog med en trykkfeil: "SUB a, R1" skal rettes til "SUB c, R1"). a) Påvis at det finnes en bedre kodesekvens for de samme TA-setningene enn den angitte, som er generert av notatets algoritme. b) Diskuter hvordan vi kunne forandre denne kodegenererings-algoritmen, slik at den gir bedre kode i dette tilfellet. Oppgave 4: Løs Oppgave 4 fra eksamen Denne ligger på: Oppgave 5: a) Oversett (pr hånd) følgende setning til TA-kode: if a<b (c>d && e>=f) then x=8 else y=5 endif Oversett den til kode der alle hopp blir så direkte som over hodet mulig (uten å tenke på algoritmen for å gjøre det). b) Forsøk å tenke ut kodegenererings-algoritmer som kunne generere slik kode, f.eks. for setningen over.
2 Oppgave 1: Løs oppgavene 8.1 i Louden : t1 = t2 = t1 + 4 t3 = t2 + 5 Burde jo heller vært: a, b c og d 2+(3+(4+5)): + ( t1 = t2 = 3+t1 t3 = 2 + t2 a * b + a * b * c: t1 = a * b t2 = t1 * c t3 = t1 + t2 - Her er altså den siste hårfint optimalisert (felles sub-uttrykk er funnet). - En liten optimalisering av de to første (gjøre konstantbergeninger i kompiloatoren) ville lett optimalisert de to første til t1 = 14
3 Oppgave 1: Løs oppgavene 8.2 i Louden : ldc 2 idc 3 ldc 4 ldc (3 + (4 + 5)) : ldc 2 idc 3 ldc 4 ldc 5 a * b + a * b * c : lod a lod b mpi dup //dupliserer toppen lod c mpi Her er igjen den siste hårfint optimalisert, ved at vi antar at det er en dup-instruksjon (duplisering) i P-kode. De to første kan selvfølgelig også optimaliseres som før til ldc 14
4 Oppgave 2 Løs oppgave 8.14.a i Louden. I stedet for oppgave 8.14.b, finn en tredje møte å implemetere switch/case på (ikke en serie tester og ikke en ren hopp-tabell) som kan være et godt kompromiss i mange tilfeller. a) Vitsen med en hopptabell er at man skal kunne gå rett inn i tabellen med caseindeksen,ogathopp-adressen adressen står der. Det blir altså meget raskt, men tabellen må da spenne fra laveste til høyeste brukte indeks. Om det ikke er så mange brukte indekser, og avstanden mellom største og minste brukte indeks er stor kan tabellen bruke masse plass, men det meste av den vil være tom. Da kan en if-then-else-implementasjon med test på hvert tilfelle være like grei. Men jeg synes at det var veldig rart, slik boka foreslår, å gå over til if-then-else allerede ved 10??! Ny b) En tredje implementasjon kan være å sortere de brukte indeksverdiene, og så legge disse i en tabell med hopp-adressen ved siden av. Da kan man ved run- time bruke binærsøking til å finne om indeksen er der, og hvor det eventuelt skal hoppes. M k D tt b å t di til h t kj t k il t Ell å Merk: Dette bygger på at verdien til hvert case er kjent av kompilatoren. Ellers må if-then-else brukes. Men de fleste språk tillater bare konstanter.
5 Oppgave 3 Vi skal se på koden generert av TA-instruksjonene til høyre i figur 9.10 i det utdelte notatet, side 539 Påvis at det finnes en bedre kodesekvens for de samme TA-setningene enn den angitte, som er generert av notatets algoritme. SVAR: Det dumme er at vi henter opp a to ganger fra lageret. Om vi allerede første gang hadde sett at vi trengte den en gang til så kunne vi med en gang kopiert den over i et annet register (for eksempel R1) før vi ødela verdien av a i R0 med instruksjonen SUB b, R0. Da ville de første instruksjonene bli: MOV a, R0 MOV R0, R1 // er altså billigere enn en MOV fra lager til register SUB b, R0 SUB c, R1 b) Diskuter hvordan vi kunne forandre denne kodegenererings-algoritmen, slik at den gir bedre kode i dette tilfellet. SVAR: Vi har jo allerede informasjon nok til å kunne gjøre denne optimaliseringen, i og med next use. Vi kan, hver gang vi henter noe fra lageret og dette vil bli ødelagt straks, teste om dette har en neste bruk. Vi vil da se at dette gjelder den første a -en, og vi kan da forsøke å redde verdien unna i et ledig register, om et slik finnes (med en MOV mellom registere)
6 Til oppgave 3: Eksempel på kode-generering g Setninger Generert kode Reg. deskriptorer Adr. deskriptorer Alle Reg er ubrukte t = a - b MOV a, R0 R0 inneholder t tir0 SUB b, R0 u = a c MOV a, R1 R0 inneholder t t i R0 SUB c, R1 R1 inneholder u u i R1 v = t + u ADD R1, R0 R0 inneholder v v i R0 R1 inneholder u u i R1 d = v + u ADD R1, R0 R0 inneholder d d i R0 og ikke i hukommelsen Avslutning av basal blokk MOV R0, d Alle Reg er ubrukte (Alle prog.variable i hukommelsen) 6
7 Oppgave 4a, eksamen 2007 Gitt følgende program, der alle setningene er tre-addresse- instruksjoner, bortsett fra at vi også tillater if- og while-setninger på vanlig måte. Instruksjonene x = input og output x regnes som vanlige tre-addresse-instruksjoner, med den opplagte betydning. Vi antar at ingen variable er i live ved slutten av programmet. 4a 1: a = input 2: b = input 3: d = a + b 4: c = a * d 5: if(b<5){ 6: while ( b < 0 ) { 7: a = b + 2 8: b = b+1 9: 10: d = 2 * b 11: else { 12: d = b * 3 13: a = d - b 14: 15: output a 16: output d Angi for hver av variablene a, b, c og d om de er i live eller ikke umiddelbart etter linje 4. Gi en kort forklaring for hver av variablene. Svar: a. Det kunne se ut som om denne var død, siden den settes ( defineres ) både i den ene og den andre grenen av if-setningen, uten å bli brukt først (linje 7 og linje 13). Men, dersom while-løkke l går null ganger vil den verdien som a hadde etter linje 4 være den som brukes i linje 15. Altså er den i live. b. Denne er i høyeste grad live, siden den brukes allerede i linje 5 c. Denne brukes i det hele tatt ikke etter linje 4, og er derfor ikke i live (altså død). d. Denne er ikke i live, siden den helt sikkert settes i begge if-grener, uten å bli brukt først (linje 10 og 12).
8 Oppgave 4b, eksamen b Forklar hva man i kodegenererings-algoritmen it i kap 9.6 (i den utdelte kopien fra ASU-boka) mener med at en variabel har en neste bruk ( next use ) og hvordan dette skiller seg fra å være i live. Forklar hvorfor denne algoritmen skiller mellom disse to begrepene. Svar: Begrepet neste bruk er, i motsetning til begrepet i live knyttet til basale blokker. En variabel har på et gitt sted i programmet en neste bruk dersom den verdien den der har kan bli brukt senere i den basale blokka vi nå er i. (da kan man også si at verdien til variabelen vil bli brukt senere i blokka, siden alt i en basal blokk utføres pent etter hverandre). Grunnen til at algoritmen i notatet er interessert i neste bruk (i den basale blokka) er at den har som grunnfilosofi at ingen variable som er i live skal ligge i et register (men i hjemmeposisjonen sin) mellom basale blokker. Det gjøres altså ikke noe forsøk på å optimalisere over flere basale blokker. Dermed, om en ikke har noen neste bruk i blokka, så er det ingen fordeler med å la den ligge i et register (men om den er i live må man sørge for at verdien ligger i hjemmeposisjonen). (NB: Ordet hjemmeposisjon er ikke brukt i boka. Der snakker man heller om å ha variabel-verdier i et register, og to store them, når de må kopieres til sin variabel-posisjon.)
9 Oppgave 5 a) a) Oversett (pr hånd) følgende setning til TA-kode: if a<b (c>d && e>=f) then x=8 else y=5 endif Oversett den til kode der alle hopp blir så direkte som over hodet mulig (uten å tenke på algoritmen for å gjøre det). SVAR: t1 = a < b if_true t1 goto 1 // Vi vet at uttrykket er sant t2=c>d if_false t2 goto 2 // Vi vet at uttrykket er galt t3 = e >= f if_false false t3 goto 2 // Vi vet at uttrykket er galt, ellers er det sant og vi fortsetter label 1 x = 8 goto 3 label 2 y = 5 label 3
10 Oppgave 5 b) b) Forsøk å tenke ut kodegenererings-algoritmer som kunne generere slik kode, f.eks. for setningen over. SVAR: Hovedsaken med den koden som er angitt i 5 a) er altså at man aldri beregner den logiske verdien på hele det boolske uttrykket, og at så fort man har nok informasjon til å vite om uttrykket blir true eller false, så hopper man direkte til den grenen der dette tilfellet skal behandles. Hvordan slik kode kan genereres vil avhenge veldig om vi bare skal ha symbolske labeler som vi kan velge fritt, eller om hoppene skal gå til faktiske fysiske adresser, f.eks. til der else-grenen starter (som ikke er kjent når det boolske uttrykket behandles). Det første kommer på neste foil, men det siste tilfellet ll er mest fiklete: Da kan man generere hopp med tomme adresser der man vet det skal inn hopp til f.eks. en else-gren, og det kan for samme else-gren bli mange slike hopp etter hvert. Man må da holde lister med adressene til alle de hopp som skal gå for eksempel til then-grenen og til else-grenen, og når vi en gang kommer til disse grenene (og vet deres start-adresse) må man gå tilbake i listen og sette inn adressen i alloe de rette hopp-instruksjonene. Merk at man da også må være nøye med om det er på true eller false man skal hoppe
11 Mer 5b: Vi skal lage tekstlig P-kode, og la oss inspirere av (den gamle) foilen under Hit skal en break i kildeprogrammet gå Om man kommer til break skal man void gencode(treenode t, String label){ gå ut av nærmete omsluttende while- String lab1, lab2; setning (angitt av label-parameteren) if t!= null{ // Er vi falt ut av treet? switch t.kind { case ExprKind { // I boka (forrige foil) er det veldig forenklet. // Kan behandles slik uttrykk er behandlet tidligere case IfKind { // If-setning gencode(t.child[0], label); // Lag kode for det boolske uttrykket lab1= genlabel(); emit2( fjp, lab1); // Hopp til mulig else-gren, eller til slutten av for-setning gencode(t.child[1], label); // kode for then-del, gå helt ut om break opptrer (inne i uttrykk??) if t.child[2]!= null { // Test på om det er else-gren? lab2 = genlabel(); emit2( ujp, lab2); // Hopp over else-grenen emit2( label, lab1); // Start på else-grenen, eller slutt på if- setningen if t.child[2]!= null { // En gang til: test om det er else-gren? (litt plundrete programmering) gencode(t.child[2], label); // Kode for else-gren, gå helt ut om break opptrer emit2( lab, lab2); // Hopp over else-gren går hit case WhileKind { /* mye som over, men OBS ved indre break. Se boka og forrige foil */ case BreakKind { emit2( ujp, label); // Hopp helt ut av koden dette gencode-kallet lager // (og helt ut av nærmest omsluttende while-setning) 11
12 Mer 5b: Genere P-kode for boolske uttrykk Men heller ikke denne vil lage helt god kode! Hvorfor?? (se helt nederst) void genboolcode(string labt, labf) { For : case : { String labx = genlabel(); left.genboolcode(labt, labx); emit2( label, l labx); right.genboolcode(labt, labf) case && : { String labx = genlabel(); left.genboolcode(labx, labf); emit2( label, labx); right.genboolcode(labt, labf); case not : { // Har bare left -subtre left.genboolcode(labf, labt); // Ingen kode!!! case < : { left false false right labx labf true true labt labt left.genintcode(); // Antar at det er heltall som sammenliknes, svaret til stakk-toppen right.genintcode(); // Som over emit1( lt ); // P-instr som sammenlikner (og popper) toppene og pusher på svaret emit2( fjmp, labf); emit2( ujp, labt); // Denne er unødvendig dersom det som følger etter er labt // Dette kan vi oppdage med en ekstra parameter som angir labelen bak // den konstrusksjonen man kaller kodegenererings-metoden for. 12
13 Mer 5b: Kodegenerering for If-setning Vi lager behandlingen av if-setning ved bare å fikse på den fra for to foiler siden Vi trenger da ingen label-parameter l på behandlingen av if-setningen i Men må gi med parametere til metoden som behandler det boolske uttrykket case IfKind { String labt = genlabel(); // Skal hoppes til om, betingelse er True String labf = genlabel(); // Skal hoppes til om, betingelse er False genboolcode(t.child[0], labt, labf); // Lag kode for det boolske uttrykket, med parametere // emit2( fjp, lab1); // Hopp til mulig else-gren, eller til slutten av for-setning NÅ UNØDVENDIG! emit2( lab, labt); // Ny! True-hopp fra uttykket skal gå hit gencode(t.child[1]); // kode for then-gren (nå uten label-parameter) String labx = genlabel(); // Skal angi slutten av if-setningen, etter else-grenen if t.child[2]!= null { // Test på om det er else-gren? emit2( ujp, labx); // Hopp over else-grenen emit2( label, labf); // False-hopp fra uttykket skal gå hit if t.child[2]!= null { // En gang g til: test om det er else-gren? (litt plundrete programmering) g) gencode(t.child[2]); // Kode for else-gren (nå uten label-parameter) emit2( lab, labx); // Hopp over else-gren går hit 13
INF Noen oppgaver til kap. 8
INF5110 2014 Noen oppgaver til kap. 8 Utvidet utgave lagt ut 24. april Gjennomgås 25. april, 2014 Stein Krogdahl 1 Oppgave 8.1.c (fra boka) Lag for hånd TA-kode for følgende uttrykk: a * b + a * b * c
DetaljerINF Noen oppgaver til kap. 8
INF5110 2015 Noen oppgaver til kap. 8 Gjennomgås 28. april, 2015 Stein Krogdahl 1 Oppgave 8.1.c (fra boka) Lag for hånd TA-kode for følgende uttrykk: a * b + a * b * c Du skal ikke prøve å optimalisere
DetaljerINF april, 2014 Stein Krogdahl Ifi, UiO. Svar på oppgaver til kap. 8
INF5110 25. april, 2014 Stein Krogdahl Ifi, UiO Svar på oppgaver til kap. 8 som ble lagt ut 24. april Feil bes rapportert til: «steinkr@ifi.uio.no» 1 SVAR: Oppgave 8.1.c (fra boka) Lag for hånd TA-kode
DetaljerINF april, 2015 Stein Krogdahl Ifi, UiO. Svar på oppgaver til kap. 8. Ble lagt ut 24. april
INF5110 28. april, 2015 Stein Krogdahl Ifi, UiO Svar på oppgaver til kap. 8 Ble lagt ut 24. april 1 SVAR: Oppgave 8.1.c (fra boka) Lag for hånd TA-kode for følgende uttrykk: a * b + a * b * c Du skal ikke
DetaljerINF april, 2015 Kap. 8 kodegenerering. Del 2
INF5110 23. april, 2015 Kap. 8 kodegenerering. Del 2 Foilene inneholder også noe ekstra-stoff som ikke står i boka, men som er pensum! Stein Krogdahl, Ifi UiO Del-1 av foilene til kap. 8 er lagt ut (se
DetaljerStein Krogdahl, Ifi UiO
INF5110 24. og 25. april, 2012 Kap. 8 kodegenerering Det var litt tull på aller siste foilen, derfor legges dette ut om igjen 16. mai. Her er både de vanlige lysarkene og «ekstrastoff» (pensum!) fra denne
DetaljerOppgaver til kodegenerering etc. INF-5110, 12. mai, 2015
Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015 Oppgave 1: Vi skal se på koden generert av TA-instruksjonene til høyre i figur 9.10 i det utdelte notatet, side 539 a) (repetisjon fra forelesningene)
DetaljerKap. 8 kodegenerering INF april, 2009
Kap. 8 kodegenerering INF5110 21. april, 2009 Stein Krogdahl, Ifi UiO Forelesninger framover: Torsdag 23. april: 1 time kapittel 8, 1 time Oblig 2 Tirsdag 28. april: Oppgaver kapittel 7, kapittel 8 + 1
DetaljerINF og 13. april, Stein Krogdahl, Ifi UiO
INF5110 12. og 13. april, 2011 Kap. 8 kodegenerering Endelig utgave 13/4 Stein Krogdahl, Ifi UiO 1 Kodegenerering g Denne uken, fra kapittel 8. Dette er nok til Oblig 2, og er stort sett uavhengig av maskin-detaljer,
DetaljerOppgaver til kodegenerering etc. INF-5110, 16. mai, 2014
Oppgaver til kodegenerering etc. INF-5110, 16. mai, 2014 Oppgave 1: Vi skal se på koden generert av TA-instruksjonene til høyre i figur 9.10 i det utdelte notatet, side 539 a) Se på detaljene i hvorfor
DetaljerINF og 27. april, 2010 Kap. 8 kodegenerering. Stein Krogdahl, Ifi UiO
INF5110 14. og 27. april, 2010 Kap. 8 kodegenerering Stein Krogdahl, Ifi UiO 1 Frivillig hjelp trengs på MODELS-2010 Konferanse i Oslo 3.-8. oktober Ifi (OMS-gruppa) og SINTEF arrangerer Se: models2010.ifi.uio.no
DetaljerINF april, 2013 Kap. 8 kodegenerering
INF5110 16. april, 2013 Kap. 8 kodegenerering Foilene inneholder også noe ekstra-stoff som ikke står i boka, men som er pensum Stein Krogdahl, Ifi UiO Stoffet fra kap. 8 er nok til Oblig 2 8.1 Bruk av
DetaljerINF og 23. april, 2014 Kap. 8 kodegenerering
INF5110 11. og 23. april, 2014 Kap. 8 kodegenerering Foilene inneholder også noe ekstra-stoff som ikke står i boka, men som er pensum Stein Krogdahl, Ifi UiO Stoffet fra kap. 8 er nok til Oblig 2 8.1 Bruk
DetaljerMED SVARFORSLAG UNIVERSITETET I OSLO
Eksamen i : MED SVARFORSLAG UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 6. juni 2012 Tid for eksamen : 14.30-18.30 Oppgavesettet er
DetaljerINF-5110 Oppgaver kodegenerering, 7/5-09
INF-5110 Oppgaver kodegenerering, 7/5-09 Oppgave 1: Løs oppgavene 8.1 og 8.2 i Louden Oppgave 2: Løs oppgave 8.14.a i Louden. I stedet for oppgave 8.14.b, finn en tredje møte å implemetere switch/case
DetaljerPensumoversikt - kodegenerering. Kap. 8 del 1 kodegenerering INF5110 v2006. Hvordan er instruksjonene i en virkelig CPU? Arne Maus, Ifi UiO
Pensumoversikt - kodegenerering Kap. 8 del 1 kodegenerering INF5110 v2006 Arne Maus, Ifi UiO 8.1 Bruk av mellomkode 8.2 Basale teknikker for kodegenerering 8.3 Kode for referanser til datastrukturer (ikke
DetaljerKap. 8 del 1 kodegenerering INF5110 Vår2007
Kap. 8 del 1 kodegenerering INF5110 Vår2007 Stein Krogdahl, Ifi UiO Forelesninger framover: Tirsdag 8. mai: Vanlig forelesning Torsdag 10. mai: Ikke forelesning Tirsdag 15. mai: Vanlig forelesning (siste?)
DetaljerKodegenerering del 3: Tilleggsnotat fra AHU Samt litt om class-filer og byte-kode INF5110 V2007. Stein Krogdahl, Ifi UiO
Kodegenerering del 3: Tilleggsnotat fra AHU Samt litt om class-filer og byte-kode INF5110 V2007 Stein Krogdahl, Ifi UiO ASU, kap 9.5: Vi generer kode for én og én basal blokk Da er det lett å holde orden
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 Eksamensdag : Tirsdag 5. juni 2007 Tid for eksamen : 14.30-17.30 Oppgavesettet er på : 6 sider (pluss vedlegg) Vedlegg
DetaljerINF mai 2014 Stein Krogdahl, Ifi, UiO
INF5110 7. mai 2014 Stein Krogdahl, Ifi, UiO NB: I dagens stoff skal vi også se på en del begreper som vi bare løselig vil se på bruken av Dette er foiler til: Tilleggsnotat fra bok av Aho, Sethi og Ullman
DetaljerMer kodegenerering: Tilleggsnotat fra AHU Om Javas Byte-kode INF april 2009
Mer kodegenerering: Tilleggsnotat fra AHU Om Javas Byte-kode INF5110 30. april 2009 Stein Krogdahl, Ifi UiO Tirsdag 5. mai: Forelesning Torsdag 7. mai: Forelesning Tirsdag 12. mai: FRI Torsdag 14. mai:
DetaljerKodegenerering, del 2: Resten av Kap. 8 pluss tilleggsnotat (fra kap. 9 i ASU ) INF5110 V2007
Kodegenerering, del 2: Resten av Kap. 8 pluss tilleggsnotat (fra kap. 9 i ASU ) INF5110 V2007 Stein Krogdahl, Ifi UiO NB: Innfører noen begreper som først og fremst har mening om man skal gå videre med
DetaljerMer kodegenerering: Tilleggsnotat fra AHU. INF mai Stein Krogdahl,
Mer kodegenerering: Tilleggsnotat fra AHU Om Javas Byte-kode INF5110 4. mai 2010 Stein Krogdahl, Ifi UiO Avsluttende om kodegenerering g Avsluttende pensum: En del fra utdelt kap 9 fra Aho, Sethi og Ullmann
DetaljerKap. 8 del 1 kodegenerering INF april, 2008
Kap. 8 del 1 kodegenerering INF5110 22. april, 2008 Stein Krogdahl, Ifi UiO Forelesninger framover: Torsdag 24 april: Ikke forelesning Tirsdag 29. april: Vanlig forelesning Torsdag 1. mai: Fridag Tirsdag
DetaljerDette er foiler til: 1. Tilleggsnotat fra bok av Aho, Sethi og Ullman Notatet legges ut på undervisnings-planen. Beklager dårlig kopi!
Merk: Siste del (om global data-analyse) er lagt helt om til forelesningen 7. mai INF5110 3. og 7. mai 2013 Stein Krogdahl, Ifi, UiO NB: I dagens stoff skal vi se på en del begreper som vi bare løslig
DetaljerUNIVERSITETET I OSLO
Eksamen i : MED SVARFORSLAG UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 1. juni 2011 Tid for eksamen : 14.30-18.30 Oppgavesettet er
DetaljerINF april, 2013 Kap. 8 Noen oppgaver som er meget relevante for Oblig 2
INF5110 16. april, 2013 Kap. 8 Noen oppgaver som er meget relevante for Oblig 2 Oppgave: Ut fra den objektorienterte trestrukturen vi laget for å representere Tiny-programmer (se neste foiler), gjør følgende
DetaljerMed Svarforslag UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet. 3 sider (side 6, 7 og 8, rives ut, fylles ut og leveres)
Eksamen i : Med Svarforslag UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 3. juni 2009 Tid for eksamen : 14.30-17.30 Oppgavesettet er
DetaljerIntroduksjon til DARK assembly
Introduksjon til DARK assembly Magnus Jahre Institutt for datateknikk og informasjonsvitenskap 2 Plan Assembly vs. Java Dark stakkmaskin Oversikt over stakkmaskinen Dark stakkmaskin eksempel Dark Load-Store
DetaljerOPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?
OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Med svarforslag Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 5. juni 2013 Tid for eksamen : 14.30-18.30 Oppgavesettet er
DetaljerINF1000 (Uke 5) Mer om løkker, arrayer og metoder
INF1000 (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Praktisk informasjon Når disse
DetaljerRepetisjon: Statiske språk uten rekursive metoder (C1 og C2) Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)
Dagens tema Kjøresystemer (Ghezzi&Jazayeri.6,.7) Repetisjon Språk med rekursjon (C3) og blokker (C4) Statisk link Dynamisk allokering (C5) Parameteroverføring 1/5 Repetisjon: Statiske språk uten rekursive
DetaljerDagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)
Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7) Repetisjon Språk med rekursjon (C3) og blokker (C4) Statisk link Dynamisk allokering (C5) Parameteroverføring 1/25 Forelesning 11 5.11.2003 Repetisjon:
Detaljer13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER
.9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,
DetaljerMAT1030 Plenumsregning 1
MAT1030 Plenumsregning 1 Kapittel 1 Mathias Barra - 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 Velkommen til plenumsregning for MAT1030 Fredager 12:15 14:00 Vi vil gjennomgå utvalgte
DetaljerINF Repetisjon: Hvordan bygge treet og analysere? 8. september Typisk situasjon. De problematiske syntaks-diagrammene
Dagens tema: INF 2100 8. september 2004 Mer om strukturen i treet og hvordan bygge det Testing av at navn er deklarert og brukt riktig Arbeid i gruppene neste uke: Oppgaver relevant for dette stadiet i
DetaljerOppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering
Uke 34 Uke 35 Uke 36 Uke 37 Uke 38 Uke 39 Uke 40 Uke 41 Uke 42 Uke 43 Uke 44 Uke 45 Uke 46 Uke 47 sikkerhet datanett programvare digitale kretser Prosessoren II Kort oppsummering Løkker og tester Mer om
DetaljerMAT1030 Diskret Matematikk
MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 MAT1030 Diskret Matematikk
DetaljerUNIVERSITETET I OSLO
Eksamen i : UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 3. juni 2014 Tid for eksamen : 14.30-18.30 Oppgavesettet er på : Vedlegg :
DetaljerDel 1 En oversikt over C-programmering
Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av
DetaljerMED SVARFORSLAG UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet
MED SVARFORSLAG UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 2. juni 2010 Tid for eksamen : 14.30-17.30 Oppgavesettet er
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 5. juni 2013 Tid for eksamen : 14.30-18.30 Oppgavesettet er på : Vedlegg :
DetaljerINF 1000 høsten 2011 Uke september
INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus 1 INF1000 undervisningen Forelesningene: Første
DetaljerINF1000 undervisningen INF 1000 høsten 2011 Uke september
INF1000 undervisningen INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Forelesningene: Første
DetaljerPlenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode
Plenumsregning 1 Kapittel 1 Roger Antonsen - 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang av ukeoppgaver Gjennomgang av eksempler fra boka Litt repetisjon
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 2. juni 2010 Tid for eksamen : 14.30-17.30 Oppgavesettet er på : 5 sider (pluss
DetaljerTre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm
Mer om easyio Mer om forgreninger Løkker 7. september 2004 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo Java 4 1 Tre måter å lese fra terminal Først:
DetaljerProgrammeringsspråket C
Programmeringsspråket C Bakgrunn Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI standard i 1988; omtrent alle følger
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 4. juni 2008 Tid for eksamen : 14.30-17.30 Oppgavesettet er på : 7 sider Vedlegg
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 og IN 110 Algoritmer og datastrukturer Eksamensdag: 14. mai 1996 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.
DetaljerKap.4 del 2 Top Down Parsering INF5110 v2005. Arne Maus Ifi, UiO
Kap.4 del 2 Top Down Parsering INF5110 v2005 Arne Maus Ifi, UiO LL(1) tabell for uttrykks-grammatikk Har fjernet venstrerekursjon: Har fjernet venstre-rekursjon: Alternativ def. av LL(1) grammatikker Sier
DetaljerPlenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030
MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo Plenumsregning 1 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) MAT1030 Diskret Matematikk
DetaljerMED SVARFORSLAG UNIVERSITETET I OSLO
Eksmen i : MED SVARFORSLAG UNIVERSITETET I OSLO Det mtemtisk-nturvitenskpelige fkultet INF5110 - Kompiltorteknikk Eksmensdg : Onsdg 6. juni 2012 Tid for eksmen : 14.30-18.30 Oppgvesettet er på : Vedlegg
DetaljerHvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.
Oppgave 1: RPJ, kapittel 4, oppg. 2 INF1000 Plenumsgruppe 1, 22.09.02 Hvis en person har inntekt < 10 000, så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første 10 000 og 30% på
DetaljerHvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.
Oppgave 1: RPJ, kapittel 4, oppg. 2 INF1000 Plenumsgruppe 1, 22.09.02 Hvis en person har inntekt < 10 000, så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første 10 000 og 30% på
DetaljerINF1000 (Uke 4) Mer om forgreninger, While-løkker
INF1000 (Uke 4) Mer om forgreninger, While-løkker Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B. Kristoffersen I dag Repetisjon easyio Enkle if-setninger
DetaljerI dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Repetisjon. Mer om forgrening While-løkker
I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Repetisjon easyio Enkle if-setninger Mer om forgrening While-løkker Are Magnus
DetaljerOversikt Kodegenerering Variable Setninger Uttrykk While-setningen Oppsummering
Dagens tema Dagens tema: Kodegenerering Introduksjon Enkle variable Uttrykk Tilordning Litt mer kompliserte setninger med betingelser (Alt om kodegenerering unntatt funksjoner og array-er.) Prosjektoversikt
DetaljerRuntimesystemer Kap 7 - I
Runtimesystemer Kap 7 - I Generell lagerorganisering (7.1) Språk som bare trenger statisk allokering (7.2) Språk som trenger stakk-orientert allokering (7.3) Språk som trenger mer generell allokering (7.4)
DetaljerI dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Tre måter å lese fra terminal.
I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Repetisjon easyio Enkle if-setninger Mer om forgrening While-løkker Are Magnus
DetaljerDel 4 Noen spesielle C-elementer
Del 4 Noen spesielle C-elementer 1 RR 2016 Header-filer inneholder Prototypene til funksjonene i standard biblioteket Verdier og definisjoner som disse funksjonene bruker #include #include
DetaljerKap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/ Legger ut en oppgave til kap. 4 (se beskjed).
Kap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/2-2008 Legger ut en oppgave til kap. 4 (se beskjed). tein Krogdahl Ifi, UiO Merk: Av de foilene som ble delt ut på papir på
DetaljerVelkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel
Velkommen til plenumsregning for MAT1030 MAT1030 Diskret matematikk Plenumsregning 1: Kapittel 1 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 17. januar 2008 Torsdager 10:15 12:00 Gjennomgang
DetaljerINF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF, 22. mai 23 Prøveeksamen 23 (Eksamen 2. juni 22) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Oppgave a Tegn klassehierarkiet for de 9 produkttypene som er beskrevet over. Inkluder også
DetaljerINF /2, 2015 Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO
INF5110 17/2, 2015 Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO Mer om LR-parsering Hadde også igjen noen foiler fra 12/2 Oblig 1 er lagt ut. Det blir en intro til Oblig 1 ved Eyvind Axelsen torsdag 19/2 1 Flertydige
DetaljerNotat 2, ST Sammensatte uttrykk. 27. januar 2006
Notat 2, ST1301 27. januar 2006 1 Sammensatte uttrykk Vi har sett at funksjoner ikke trenger å bestå av annet enn ett enkeltuttrykk som angir hva funksjonen skal returnere uttrykkt ved de variable funksjonen
DetaljerMAT1030 Diskret matematikk
MAT1030 Diskret matematikk Plenumsregning 1: Kapittel 1 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang
DetaljerINF / Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO
INF5110 12/2-2013 Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO Dagens temaer: Noen foiler igjen fra forrige gang SLR(1), LR(1)- og LALR(1)-grammatikker NB: Oppgaver til kap 4 og 5 er lagt ut på undervisningsplanen
Detaljeri=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4
Forelesning inf - Java 4 Repetisjon: arrayer Tema: Løkker Arrayer Metoder Ole Christian Lingjærde,. september Deklarere og opprette array - eksempler: int[] a = new int[]; String[] a = new String[]; I
DetaljerForelesning inf Java 4
Forelesning inf1000 - Java 4 Tema: Løkker Arrayer Metoder Ole Christian Lingjærde, 12. september 2012 Ole Chr. Lingjærde Institutt for informatikk, 29. august 2012 1 Repetisjon: arrayer Deklarere og opprette
DetaljerEKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet består
DetaljerProgrammering Høst 2017
Programmering Høst 2017 Tommy Abelsen Ingeniørfag - Data Innledning Dette er et dokument med litt informasjon og eksempler om kontrollstrukturer, samt oppgaver til forskjellige kontrollstrukturer. Spør
Detaljerpublic static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
DetaljerTDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3
1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 Terje Rydland - IDI/NTNU 2 if (be): else (not_to_be): 3 Læringsmål og pensum
Detaljerif (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap.
1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 Terje Rydland - IDI/NTNU 2 if (be): else (not_to_be): 3 Læringsmål og pensum
DetaljerRuntimesystemer - II. Funksjoner som parametere. Virtuelle metoder
Runtimesystemer - II Funksjoner som parametere Virtuelle metoder Parameteroverføring Call by value Call by reference Call by value-result Call by name 04/04/14 1 FUNKSJONER SOM PARAMETERE 04/04/14 2 Eksempel
DetaljerNOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse
NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse Dessverre litt få figurer INF 5110, 8/5-2012, Stein Krogdahl Byte-koden for Java og.nett (C#) http://en.wikipedia.org/wiki/java_bytecode_instruction_listings
DetaljerBakgrunnen for INF2100. Velkommen til INF2100. Prosjektet. Hva gjør en kompilator?
Kursopplegg Velkommen til INF2100 Bakgrunnen Bakgrunnen for INF2100 Jeg er Dag Langmyhr (dag@ifi.uio.no). Dagens tema: Hva går kurset ut på? Bakgrunn for kurset Hvordan gjennomføres kurset? Hvordan får
DetaljerINF mai 2014 Stein Krogdahl, Ifi, UiO
INF5110 7. mai 2014 Stein Krogdahl, Ifi, UiO Dette er foiler om global data-analyse NB: Disse foilene er også pensum (men stoffet finnes bare her på disse foilene.) Global dataflyt-analyse, eksempler:
DetaljerDagens tema: 12 gode råd for en kompilatorskriver
Dagens tema: 12 gode råd for en kompilatorskriver Hvordan sjekke navn? Testutskrifter 12 gode råd Hva skal gjøres med navn? Sjekking av navn En kompilator må også sjekke riktig navnebruk: Det må ikke forekomme
DetaljerObligatorisk oppgave 1 INF1020 h2005
Obligatorisk oppgave 1 INF1020 h2005 Frist: fredag 7. oktober Oppgaven skal løses individuelt, og må være godkjent for å kunne gå opp til eksamen. Før innlevering må retningslinjene Krav til innleverte
DetaljerVelkommen til INF2100
Kursopplegg Velkommen til INF2100 Jeg er Dag Langmyhr (dag@ifi.uio.no). Dagens tema: Hva går kurset ut på? Bakgrunn for kurset Hvordan gjennomføres kurset? Hvordan får man det godkjent? Pause (med registrering
DetaljerPraktisk informasjon. Repetisjon: While-løkker. I dag. INF1000 (Uke 5) Mer om løkker, arrayer og metoder. Oblig 2 er lagt ut
Praktisk informasjon INF (Uke 5) Mer om løkker, arrayer og metoder Oblig er lagt ut Frist 8. februar Kan løses etter denne forelesningen Grunnkurs i programmering Institutt for Informatikk Universitetet
DetaljerINF1010 notat: Binærsøking og quicksort
INF1010 notat: Binærsøking og quicksort Ragnhild Kobro Runde Februar 2004 I dette notatet skal vi ta for oss ytterligere to eksempler der rekursjon har en naturlig anvendelse, nemlig binærsøking og quicksort.
DetaljerDiverse eksamensgaver
Diverse eksamensgaver Noen har fått den idé å lage et språk hvor klasser kan ha noe tilsvarende byvalue-result -parametere. Klasser har ingen konstruktører, og by-value-result parametere spesifiseres som
DetaljerKap. 4: Ovenfra-ned (top-down) parsering
Kap. 4: Ovenfra-ned (top-down) parsering Dette bør leses om igjen etter kapittelet: First og Follow-mengder Boka tar det et stykke uti kap 4, vi tok det først (forrige foilbunke) LL(1)-parsering og boka
DetaljerPraktisk informasjon. I dag. Repetisjon: While-løkker. INF1000 (Uke 5) Mer om løkker, arrayer og metoder
Praktisk informasjon INF (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Når disse timene er over har du lært nok til å løse oblig Frist.
DetaljerRuntime-omgivelser Kap 7 - I
Runtime-omgivelser Kap 7 - I Generelt Språk som bare trenger statiske omgivelser Språk som trenger stakk-orienterte omgivelser Språk som trenger mer generelle omgivelser Vel så riktig å si at forskjellige
Detaljerpublic static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
DetaljerHvordan skrive Flok og Flass kode? I mange tilfelle er det svært enkelt:
Hvordan skrive Flok og Flass kode? I mange tilfelle er det svært enkelt: inchar INC inint INI Tegnet eller tallverdien kommer i I registeret. outchar OUTC outint (n) OUTI n outline OLIN I Flink maskinen
DetaljerRuntimesystemer Kap 7 - I
Runtimesystemer Kap 7 - I Språk som bare trenger statisk allokering Språk som trenger stakk-orientert allokering Språk som trenger mer generell allokering Forskjellige slags begreper i et gitt språk krever
DetaljerOppgavene 1, 2, 4, 5, 6, 9, 12 og 13 passer best til å løses ved en datamaskin.
Oppgaver uke 35: Oppgavene 1, 2, 4, 5, 6, 9, 12 og 13 passer best til å løses ved en datamaskin. Oppgave 1. Skriv et C-program som leser mål i tommer og skriver det ut i fot og tommer. (Det er 12 tommer
DetaljerHjemmeeksamen 2 i INF3110/4110
Hjemmeeksamen 2 i INF3110/4110 Innleveringsfrist: onsdag 19. november kl. 1400 Innlevering Besvarelsen av oppgave 2,3,4 og 5 skal leveres skriftlig på papir i IFI-ekspedisjonen. Merk denne med navn, kurskode,
DetaljerOppgave 1 - Linux kommandolinje (%)
Løsningsforslag Eksamen høst 2017 Operativsystemer Oppgave 1 - Linux kommandolinje (%) a) pwd b) ps Oppgave 2 - Bash-scripting (%) a) ping -i 5 www.hin.no b) ping -c 1 www.hin.no ping -c 1 -t 1 www.hin.no
DetaljerINF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen
INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og
Detaljer6. oktober Dagens program: Første time: Andre time, gjesteforelesning: Uavgjørbarhet. Stein Krogdahl. (Ikke pensum, egne foiler legges ut)
Dagens program: Første time: INF 4130 6. oktober 2011 Stein Krogdahl Kap 23.5: Spilltrær og strategier for spill med to spillere Andre time, gjesteforelesning: Rune Djurhuus: Om sjakkspillende programmer
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.
DetaljerLøsnings forslag i java In115, Våren 1996
Løsnings forslag i java In115, Våren 1996 Oppgave 1a For å kunne kjøre Warshall-algoritmen, må man ha grafen på nabomatriseform, altså en boolsk matrise B, slik at B[i][j]=true hvis det går en kant fra
Detaljer