ISO Dagens tema. Tegn. Uttrykk. I Minila lagres kun heltall, men de kan tolkes som tegn. Det siste om Minila.
|
|
- Haldor Nordli
- 6 år siden
- Visninger:
Transkript
1 April 1995, DFL, Ifi/UiO Dagens tema Dagens tema Det siste om Minila og tekster Flink maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner Flok kode Flass kode I Minila lagres kun heltall, men de kan tolkes som tegn. (Tabellen finnes på studier/emner/matnat/ ifi/inf2100/h06/dok/ ISO8859 table.pdf.) A B C D E F A B C D E F ISO ! " # $ % & ( ) * +,. / : ; < = >? A B C D E F A B C D E A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ A B C D E F A B C D E F a b c d e f g h i j k l m n o p q r s t u v w x y z { } ~ A B C D E F A B C D E F A B C D E F A B C D E F ª «± ² ³ µ ¹ º» ¼ ½ ¾ A A A A A A A A A A AA AB AC AD AE AF B B B B B B B B B B BA BB BC BD BE BF À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ ß C C C C C C C C C C CA CB CC CD CE CF D D D D D D D D D D DA DB DC DD DE DF à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ E E E E E E E E E E EA EB EC ED EE EF F F F F F F F F F F FA FB FC FD FE FF kan også leses inn: Uttrykk Konstant kan angis som konstanter: Et tegn Variabel inchar inint + * /
2 Programmet tegn.min prog var c; begprog outtext "Skriv et tegn: "; c := inchar; outtext "et "; outchar c; outtext " har kode "; outint(1) c; outline; outtext "et 1 har kode "; outint(1) 1 ; outline; endprog Dette programmet demonstrerer bruk av tegn: > flok tegn.flok Skriv et tegn: A et A har kode 65 et 1 har kode 49 En tekst "Abc" lagres som en array av tegn: Dessuten regnes tegn med kode 0 som «tomme tegn». Programmet tekst.min prog var s[6], i; begprog outtext "Gi en tekst: "; intext s; i := 0; while i <= s[0] do outtext "s["; outint(1) i; outtext "] er "; outint(3) s[i]; outline; i := i+1; endwhile; s[2] := 0; outtext "Nå er teksten "; outchar " ; outtext s; outchar " ; outline; endprog
3 Dette programmet demonstrerer tekster: > flok tekst.flok Gi en tekst: Abc s[0] er 6 s[1] er 65 s[2] er 98 s[3] er 99 s[4] er 0 s[5] er 0 s[6] er 0 Nå er teksten "Ac" To nye setninger gjør det mulig å lese inn og skrive ut tekster: intext leser resten av linjen. outtext skriver ut alle tegn som ikke er 0. Setning Tekst Variabel := Uttrykk intext Navn outchar Uttrykk outint ( Tall ) Uttrykk outline outtext Navn Tekst If-setning Repeat-setning While-setning call Navn with Uttrykk into Variabel Charles Babbage Charles Babbage Datamaskinenes historie Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Midt på 1800 tallet var problemet tabeller med feil. Charles Babbage konstruerte sin Difference Engine som kunne lage tabeller automatisk ved å regne ut polynomer. (Den ble først ferdig i 1991.) Han arbeidet også med en Analytical Engine som skulle bli en generell beregningsmaskin. The difference engine på Science Museum i London
4 Tidlige datamaskiner De første moderne datamaskiner Problemet i 1930 årene var kanoner. Det er mulig å beregne en prosjektilbane, men det er mye arbeid for en matematiker. U.S. Army Ordnance Department Ballistic Research Laboratory trengte data for dusinvis av nye kanoner. Løsning Lag arbeidsbeskrivelse, og la egne «beregnere» gjøre jobben. Fra en eldre utgave av Webster s Dictionary: computer n, one that computes; specif: an automatic electronic machine for performing calculations Tidlige datamaskiner Problem Hver bane tok opptil 20 timer å beregne (selv med elektrisk bordregnemaskin), og man trengte ulike baner for hver kanon. Løsning Lag en maskin som gjør dette automatisk. Moore School of Electrical Engineering ved universitetet i Pennsylvania gjorde det med penger fra Ballistic Research Laboratory. Resultatet ble som ble ferdig i Den målte 2½ 1 30 m, veide 30 tonn og inneholdt radiorør. Den kunne beregne en kulebane på drøyt 10 s. Oppbyggingen av Tanken var å kopiere en menneskelig beregner. Den har Aritmetisk enhet («ALU») tilsvarte regnemaskinen med de fire regneartene: + Regnemaskinen har et tall for videre beregning; datamaskinen har et register. Minnet tilsvarte arket med mellomresultater. Datamaskinen kunne overføre innholdet av registeret til eller fra en celle i minnet. Programmet tilsvarte beregnerens arbeidsbeskrivelse. Det skulle følges helt slavisk.
5 Programmet Et program for datamaskinen inneholdt de samme elementene som beregnerens arbeidsbeskrivelse: Aritmetiske operasjoner var mulig i de fire regneartene; svaret kom i registeret. Mellomlagring av data skjedde ved at registeret ble kopiert til en angitt celle i minnet. Hopp til en angitt instruksjon var nødvendig for å kunne gå i løkker. Tester i forbindelse med hopp var typisk på om registeret var < 0, = 0 eller > 0. Programmene ble etter hvert kodet som tall (mens ble kodet med kabler). Den aller første «debugging» Også de første datamaskinene hadde feil («bugs»). Den 9. september 1945 kl fant man feilen i relé nr 70 i panel F i en Mark II Aiken elektromekanisk datamaskin og foretok den første «debugging». Flink maskinen Flink maskinen Flink maskinen To internlagre: Datalageret kan lagre heltall. Instruksjonslageret brukes til å lagre instruksjoner. Hver celle består av tre deler: Func angir hvilken operasjon det er snakk om. Adrs gir adresser. Corr gir adressekorreksjon med C registeret. (Senere) Seks registre: I aktuell verdi C korrigeringsregister (omtales senere) PC programteller CF Siste Func del av instruksjon CA Siste Adrs del av instruksjon CC Siste Corr del av instruksjon
6 Programutførelsen Programutførelsen utføres alltid én og én: PC = 0; I = 0; C = 0; stoppet = false; while (! stoppet) { CF = Func[PC]; CA = Adrs[PC]; CC = Corr[PC]; PC = PC + 1; } if (CF == 0) stoppet = true; else utfør instruksjonen (CF,CA,CC) (Denne uken kan vi regne at addr er CA.) 0 STOP Stopp 1 1 LDI I = ISTORE[addr]; 2 2 STI ISTORE[addr] = I; 2 5 ADDI I = I+ISTORE[addr]; 2 26 ADDC C = C+ISTORE[addr]; 2 6 SUBI I = I ISTORE[addr]; 2 7 MULI I = I*ISTORE[addr]; 10 8 DIVI I = I/ISTORE[addr]; INC I = «tegn fra tastaturet»; 50 9 INI I = «tall fra tastaturet»; INT ISTORE[addr+1,... ] = «tekst fra tastaturet»; OUTC System.out.print((char)I); OUTI System.out.print(I); OUTT «skriv teksten i addr» OLIN System.out.println(); JMP Hopp til addr 1 13 JRC C = PC; Hopp til addr 1 14 JLTI Hopp til addr om I< JLEI Hopp til addr om I<= JEQI Hopp til addr om I== JNEI Hopp til addr om I!= JGTI Hopp til addr om I> JGEI Hopp til addr om I>=0 1
7 Eksempel på Flink kode Et eksempel 20 SETI I = addr; 1 21 INCI I = I+addr; 1 22 SETC C = addr; 1 23 INCC C = C+addr; 1 24 CIC C = I; 1 25 CCI I = C; 1 Dette programmet skriver ut tallet 4: Flok koden Flok koden Flok koden Kjøring For å få Flink maskinen til å utføre koden, må vi «pakke den tekstlig inn» i såkalt Flok kode: #! /store/bin/flink Først: antall instruksjoner og antall heltall. 2. Så: instruksjonene. 3. Til sist: heltallene (men ingen her). Nå kan vi kjøre programmet: > flok skriv4.flok 4 Total execution time: 102
8 Flass koden Flass kode Flass koden Eksempel: abs.flass # Leser et tall og beregner absoluttverdien. For å gjøre det enklere å skrive Flok kode, har man funnet på Flass. Da kan man bruke navn istedenfor tallkoder bruke navn på datalokasjoner sette navn på instruksjoner (for å hoppe dit) Start INI # Les tallet JGEI Skriv # Hvis negativt, STI Var # lagre i Var. SETI 0 # Beregn SUBI Var # 0 Var. Skriv OUTI 1 # Skriv ut tallet. OLIN Slutt STOP # Ferdig. Var INTG 0 # Flass koden Flass koden Oversikt laget av programmet flass Kjøringen går slik: > flass abs.flass Dette er Flass (version 3.02) Leser koden første gang...ok Leser koden andre gang...ok > flok abs.flok Inint: Total execution time: 202 > flok abs.flok Inint: Total execution time: 207 # Leser et tall og beregner absoluttverdien. Code 0: Start INI # Les tallet Code 1: JGEI Skriv # Hvis negativt, Code 2: STI Var # lagre i Var. Code 3: SETI 0 # Beregn Code 4: SUBI Var # 0 Var. Code 5: Skriv OUTI 1 # Skriv ut tallet. Code 6: OLIN Code 7: Slutt STOP # Ferdig. Data 0: 0 Var INTG 0 #
9 Minila, Flink, Flok og Flass Oppsummering I Minila kan vi også håndtere tegn og tekster. Vi har sett på instruksjonene og registrene i Flink. Flink maskinen leser filer med Flok kode. Det er lettere å skrive assemblerkoden Flass enn maskinkoden Flok.
INF2100. Dagens tema: Flink-maskinen Litt datamaskinhistorie. Registre og lagre. Instruksjoner. Flass-koden
Dagens tema: Flink-maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner Flass-koden Dag Langmyhr,Ifi,UiO: Forelesning 30. august 2005 Ark 1 av 20 Datamaskinenes historie Menneskene har alltid
DetaljerDatamaskinenes historie Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.
Datamaskinenes historie Menneskene har alltid prøvd å lage maskiner for å løse sine problemer Charles Babbage Midt på 1800-tallet var problemet tabeller med feil Dagens tema: Flink-maskinen Litt datamaskinhistorie
DetaljerDagens tema: INF2100. Utvidelser av Minila array-er. tegn og tekster. Flass- og Flokkode. prosedyrer. Prosjektet struktur. feilhåndtering.
Dagens tema: Utvidelser av Minila array-er tegn og tekster Flass- og Flokkode array-er prosedyrer Prosjektet struktur feilhåndtering del 0 Dag Langmyhr,Ifi,UiO: Forelesning 6. september 2005 Ark 1 av 19
DetaljerDagens tema. Datamaskinenes historie. De første moderne datamaskiner. Løsning. Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.
Dagens tema Dagens tema Charles Babbage Datamaskinenes historie maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner kode kode Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.
DetaljerDagens tema. Rask-maskinen. Rasko-kode Raskas-kode. Litt datamaskinhistorie Registre og lagre Instruksjoner
Dagens tema Dagens tema Rask-maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner Rasko-kode Raskas-kode Dagens tema En overikt RusC-program x = x+1; ADD R1,R2,R1 Raskas-kode Kompilator rusc
DetaljerEn overikt. Dagens tema. Datamaskinenes historie. Rask-maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner. Rasko-kode.
Dagens tema Dagens tema Dagens tema En overikt RusC-program x = x+1; ADD R1,R2,R1 Raskas-kode Rask-maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner Kompilator rusc raskas Rasko-kode 401020000000001...
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
DetaljerDagens tema: Maskinkode. Litt datamaskinhistorie Hva er maskin- og assemblerkode? x86-prosessoren Programkode og variabler
Dagens tema Dagens tema: Maskinkode Litt datamaskinhistorie Hva er maskin- og assemblerkode? x86-prosessoren Programkode og variabler Charles Babbage Datamaskinenes historie Menneskene har alltid prøvd
DetaljerHovedansvarlig. Symbolgenerator. Tregenerator. Litt mer kompliserte setninger med betingelser
Dagens tema: Kodegenerering Listing Minila Hovedansvarlig Listeansvarlig Flok Tegngenerator Linjegenerator Symbolgenerator Flinkrepresentant Tregenerator Kodegenerator Del 0 Del 1 Del 2 Introduksjon FlinkRepresentation
DetaljerINF-103. Velkommen til. Første time. Fra brukergrensesnitt til maskinvare. eller Datamaskinen på tvers. Andre time
Velkommen til INF-103 Fra brukergrensesnitt til maskinvare eller Datamaskinen på tvers Motto: Hva er det egentlig som skjer? Første time Introduksjon til kurset Hva handler kurset om? Forelesere Pensum
DetaljerINF-103 Fra brukergrensesnitt til maskinvare
Velkommen til INF-103 Fra brukergrensesnitt til maskinvare eller Datamaskinen på tvers Motto: Hva er det egentlig som skjer? Ark 1 av 23 Første time Introduksjon til kurset Hva handler kurset om? Forelesere
DetaljerDatamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin?
Dagens tema Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin? Intel-prosessoren Enkel assemblerprogrammering Dag
DetaljerForhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema
Forhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Charles Babbage Midt på 1800-tallet
DetaljerDagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.
Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet ut? Variabler,
DetaljerDatamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin?
Dagens tema Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin? x86 prosessoren Enkel assemblerprogrammering Dag Langmyhr,Ifi,UiO:
DetaljerForhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema INF1070 INF1070 INF1070
Forhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer Dagens tema Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Charles Babbage Midt på 1800
DetaljerDagens tema INF1070. Vektorer (array er) Tekster (string er) Adresser og pekere. Dynamisk allokering
Dagens tema Vektorer (array er) Tekster (string er) Adresser og pekere Dynamisk allokering Dag Langmyhr,Ifi,UiO: Forelesning 23. januar 2006 Ark 1 av 23 Vektorer Alle programmeringsspråk har mulighet til
DetaljerVektorer. Dagens tema. Deklarasjon. Bruk
Dagens tema Dagens tema Deklarasjon Vektorer Vektorer (array-er) Tekster (string-er) Adresser og pekere Dynamisk allokering Alle programmeringsspråk har mulighet til å definere en såkalte vektor (også
DetaljerDatamaskinen LC-2. Dagens tema. Tall i datamaskiner Hvorfor kan LC-2 lagre tall i intervallet ? Hvorfor er det akkurat celler i lageret?
Dagens tema Datamaskinen LC-2 En kort repetisjon Binære tall Litt om tallsystemer generelt Binære tall Heksadesimale og oktale tall Programmering av LC-2 Maskinkode Assemblerkode Kjøring av LC-2-programmer
DetaljerDagens tema. Datamaskinen LC-2 En kort repetisjon. Binære tall Litt om tallsystemer generelt. Binære tall. Heksadesimale og oktale tall
Dagens tema Datamaskinen LC-2 En kort repetisjon Binære tall Litt om tallsystemer generelt Binære tall Heksadesimale og oktale tall Programmering av LC-2 Maskinkode Assemblerkode Kjøring av LC-2-programmer
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
DetaljerDagens tema INF1070. Vektorer (array-er) Tekster (string-er) Adresser og pekere. Dynamisk allokering
Dagens tema Vektorer (array-er) Tekster (string-er) Adresser og pekere Dynamisk allokering Dag Langmyhr,Ifi,UiO: Forelesning 17. januar 2005 Ark 1 av 23 Vektorer Alle programmeringsspråk har mulighet til
DetaljerDagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.
Dagens tema Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet
DetaljerIN 147 Program og maskinvare
Dagens tema Mer om C Et eksempel til (med diverse forklaringer) Representasjon av tegn og logiske verdier Vektorer Statusverdi Innhenting av definisjoner Inkrementering og dekrementering av variable for-setningen
DetaljerOffentlig utvalg for punktskrift, OUP Norsk standard for 8-punktskrift punktskrift 24. oktober 2004 sist endret
Offentlig utvalg for punktskrift, OUP Norsk standard for 8-punktskrift punktskrift 24. oktober 2004 sist endret 19.10.2007 Desimal Hex Beskrivelse Tegnets utseende Punktkode 0 0000 4578
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
Detaljer2 Parser. 1 Skanner. 4 Kodegenerator. 3 Sjekker. Oversikt Datamaskinhistorie x86 Kodegenerering Setninger Uttrykk.
Dagens tema Dagens tema: Maskinkode del 1 Litt datamaskinhistorie Hva er maskin- og assemblerkode? x86-prosessoren Programkode for setninger Konstanter og uttrykk Prosjektoversikt f.pas f.s 1 Skanner :Token
DetaljerVelkommen til INF2100. Bakgrunnen for INF2100. Hva gjør en kompilator? Prosjektet. Jeg er Dag Langmyhr
Kursopplegg Velkommen til INF2100 en en for INF2100 Jeg er (dag@ifi.uio.no). Dagens tema: Hva går kurset ut på? for kurset Hvordan gjennomføres kurset? Hvordan får man det godkjent? Pause (med registrering
DetaljerVelkommen til INF2100 Jeg er Dag Langmyhr
Velkommen til Jeg er Dag Langmyhr (dag@ifi.uio.no). Bakgrunn for I INF1000 20 har dere lært å rammere, men bare små rammer (< 1000 linjer). Hensikten med er å gi mer rammeringstrening Dagens tema: Hva
DetaljerDigital representasjon
Digital representasjon Alt er bit! Hvordan lagre tall tekst bilder lyd som bit i en datamaskin Hvordan telle binært? Binære tall Skal vi telle med bit ( og ), må vi telle binært. Dette gjøres egentlig
DetaljerDigital representasjon
Hva skal jeg snakke om i dag? Digital representasjon dag@ifi.uio.no Hvordan lagre tall tekst bilder lyd som bit i en datamaskin INF Digital representasjon, høsten 25 Hvordan telle binært? Binære tall Skal
DetaljerVelkommen til INF2100
Kursopplegg Velkommen til INF2100 Jeg er (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 av fremmøte)
DetaljerVelkommen til INF2100
Kursopplegg Velkommen til INF2100 Jeg er (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 av fremmøte)
DetaljerHva er kompilering? Dagens tema. En kompilator En kompilator leser Minila koden og lager Flok koden.
Dagens tema Dagens tema Kildekode Hva er kompilering? Anta at vi lager dette lille programmet (kalt kildekoden): Hva er kompilering? Hvordan analysere et program? Hvordan programmere dette i Java? Hvordan
DetaljerOversikt Deklarasjoner Typesjekk Programmering Datamaskinhistorie x86 Kodegenerering
Dagens tema Dagens tema: Semantisk sjekking Hvordan finne deklarasjoner? Typesjekking Hvordan programmere sjekking av riktig navnebruk? Maskinkode Litt datamaskinhistorie Hva er maskin- og assemblerkode?
DetaljerProsessoren. Bakgrunnen Innhold LMC. Assemblerkode Oppsummering instruksjonene [Englander kap 6] Hva inneholder den? Hvordan utføres instruksjonene?
Prosessoren Bakgrunnen Innhold LMC Hva inneholder den? Hvordan utføres instruksjonene? Assemblerkode Oppsummering instruksjonene [Englander kap 6] Lagdelingen av en datamaskin Internett Lokalnett (LAN)
DetaljerDigital representasjon
Hva skal jeg snakke om i dag? Digital representasjon dag@ifi.uio.no Hvordan lagre tall tekst bilder lyd som bit i en datamaskin Hvordan telle binært? Binære tall For å bruke bit (0 og 1) som tall, må vi
DetaljerSpørsmål: Hvilken datamaskin var den første? Svaret Det avhenger av hva man mener med en datamaskin. Ifi. Spørsmålet Analoge Digitale Videre
Hvilken datamaskin var den første? Spørsmål: Hvilken datamaskin var den første? Svaret Det avhenger av hva man mener med en datamaskin. Antikythera Den første datamaskin Er dette verdens første datamaskin?
DetaljerHvordan fant man på å lage datamaskiner?
Hvordan fant man på å lage datamaskiner? Manchester museum of science and industry: Deutsches Technikmuseum Berlin: Hvilken som var den første avhenger av hva man mener med en datamaskin. Antikythera Den
DetaljerINF okt. 2004
INF 2100 20. okt. 2004 Dette er siste forelesning. Dagens tema: Diverse om kode-generering: Litt om uttrykk, betingelser og while-setninger Prosedyrer og kall Gruppene ukene fremover: Ukene fra 25. okt.
DetaljerDagens tema: INF2100. Syntaksanalyse. Hva annet gjør en kompilator? Sjekking av navnebruk. Testutskrifter
Dagens tema: Syntaksanalyse Hva annet gjør en kompilator? Sjekking av navnebruk Testutskrifter Dag Langmyhr,Ifi,UiO: Forelesning 4. oktober 2005 Ark 1 av 20 Syntaksanalyse På skolen hadde vi grammatikkanalyse:
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
DetaljerSpørsmål: Hvilken datamaskin var den første? Svaret. Det avhenger av hva man mener med en datamaskin. Spørsmålet Analoge Digitale Videre
Hvilken datamaskin var den første? Spørsmål: Hvilken datamaskin var den første? Svaret Det avhenger av hva man mener med en datamaskin. Antikythera Den første datamaskin Er dette verdens første datamaskin?
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
DetaljerRåd nr 1: Start nå! Det tar typisk timer å programmere Del 1 om man ikke har gjort slikt før. Dagens tema:
Dagens tema: 12 gode råd når man rammerer en kompilator Råd nr 1: Start nå! Det tar typisk 10 50 timer å rammere Del 1 om man ikke har gjort slikt før. Hvor mange timer per dag blir det? Dag Langmyhr,Ifi,UiO:
DetaljerSpørsmål: Hvilken datamaskin var den første? Svaret. Det avhenger av hva man mener med en datamaskin. Spørsmålet Analoge Digitale Videre
Hvilken datamaskin var den første? Spørsmål: Hvilken datamaskin var den første? Svaret Det avhenger av hva man mener med en datamaskin. Antikythera Den første datamaskin Er dette verdens første datamaskin?
DetaljerVelkommen til INF2100
Kursopplegg Velkommen til INF2100 Jeg er (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? Programmeringsspråket C En kort
DetaljerDagens tema: 12 gode råd for en kompilatorskriver. Sjekking av navn. Lagring av navn. Hvordan finne et navn?
Dagens tema: 12 gode råd for en kompilatorskriver Hva skal gjøres med navn? Sjekking av navn Hvordan sjekke navn? Testutskrifter 12 gode råd En kompilator må også sjekke riktig navnebruk: Det må ikke forekomme
DetaljerSpørsmål: Hvilken datamaskin var den første? Svaret. Det avhenger av hva man mener med en datamaskin. Spørsmålet Analoge Digitale Videre
Hvilken datamaskin var den første? Spørsmål: Hvilken datamaskin var den første? Svaret Det avhenger av hva man mener med en datamaskin. Antikythera Den første datamaskin Er dette verdens første datamaskin?
DetaljerSpørsmål: Hvilken datamaskin var den første?
Hvilken datamaskin var den første? Spørsmål: Hvilken datamaskin var den første? Manchester museum of science and industry: Deutsches Technikmuseum Berlin: Det avhenger av hva man mener med en datamaskin.
DetaljerDagens tema: Semantisk sjekking. Maskinkode. Hvordan finne deklarasjoner? Hvordan programmere sjekking av riktig navnebruk?
Dagens tema Dagens tema: Semantisk sjekking Hvordan finne deklarasjoner? Hvordan programmere sjekking av riktig navnebruk? Maskinkode Litt datamaskinhistorie Hva er maskin- og assemblerkode? x86-prosessoren
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
DetaljerDagens tema. LC-2 LC-2 er en «ekstrem-risc»; den har 16 instruksjoner og 3 adresseringsmåter.
Dagens tema Mer programmering i assemblerspråk Masking Hopp, tester og flagg Varianter over ld og st Vektorer og tekster Rutiner Stakker Programmering i assembler Dere kjenner sikkert den gamle gåten:
Detaljer( ) ( ( ) ) 2.12 Løsningsforslag til oppgaver i avsnitt
. til oppgaver i avsnitt... Regn ut (a) i j k, (b) j k i, (c) k ì j, (d) k j -j k -i (e) i i 0, (f) j j 0 Vektorene i, j og k danner et høyre-system, så derfor er i j k, j k i, k ì j, k j -j k -i. i i
DetaljerITPE/DATS 2400: Datamaskinarkitektur og Nettverk
ITPE/DATS 2400: Datamaskinarkitektur og Nettverk Forelesning 9: Instruksjonsettarkitektur 3 Knut H. Nygaard / T. M. Jonassen Institute of Computer Science Faculty of Technology, Art and Design Oslo and
DetaljerHvordan en prosessor arbeider, del 1
Hvordan en prosessor arbeider, del 1 Læringsmål Kompilator, interpret og maskinkode CPU, registre Enkle instruksjoner: de fire regnearter Mer informasjon om temaet Internett Lokalnett (LAN) Mitt program
DetaljerSyntaksanalyse. Dagens tema: Språkdiagrammene Jernbanediagrammene er et ypperlig utgangspunkt for å analysere et program: INF2100 INF2100 INF2100
Syntaksanalyse På skolen hadde vi grammatikkanalyse: Dagens tema: Syntaksanalyse Hva annet gjør en kompilator? Sjekking av navnebruk Testutskrifter Fanger krabber så lenge de orker Syntaksanalyse er på
Detaljerﺪ ﻩ ﻋﺍ ﻮﹶ ﻭ ﻗ ﻪ ﹾﻘ ﹾﻟ ﻔ ﺍ ﹺﻝ ﻮ ﹸﺃ ﺻ ﹸ ﻣ ﺔ ﻮﹸ ﻈ ﻣ ﻨ $ ﺡﺮﺷ! " ' (# $% & )*! +,!* -
م ن ة ظو م ل ا ا ل صو ق ف ه و ع وا ق و ه د $ شرح ٢ الا ول] [الدرس :$, : $ $, : ; $, موقع التف ري غ للدرو س الع لمية والبحوث الشرعي ة Ï Î Í Ì ٣,,,,,, : :, :,, :,, : $,,,,,, : :,, :,,:ÑÐ, :,,,, :,, :,,,,,,,,
DetaljerOppgaver MAT2500. Fredrik Meyer. 11. oktober 2014
Oppgaver MAT2500 Fredrik Meyer 11. oktober 2014 Oppgave 1. La ABCD og A BC D være to parallellogrammer med felles vinkel ABC = A BC. Vis at linjene gjennom DD, A C og AC er konkurrente. Løsning 1. Det
DetaljerSpørsmål: Hvilken datamaskin var den første?
Hvilken datamaskin var den første? Spørsmål: Hvilken datamaskin var den første? Manchester museum of science and industry: Deutsches Technikmuseum Berlin: Det avhenger av hva man mener med en datamaskin.
DetaljerInnhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU)
2 Innhold 1 Datamaskiner Prosessoren Primærminnet (RAM) Sekundærminne, cache og lagerhierarki Datamaskiner Matlab Parallell Jørn Amundsen Institutt for Datateknikk og Informasjonsvitenskap 2010-08-31 2
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
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
DetaljerE 1996-gutter. B 1998-gutter
Gruppe: Gruppe: A B 1999-gutter C 1998-gutter 2000 1997-gutter 1995-gutter AA Åga IL 1 BA Mo IL 1 CA Stålk 1 DA Åga IL 8 EA Stålk 3 FA Åga IL 11 AB Åga IL 2 BB Mo IL 2 CB Stålk 2 DB Åga IL 9 EB Stålk 4
DetaljerTestobservator for kjikvadrattester
ST0202 Statistikk for samfunnsvitere Bo Lindqvist Institutt for matematiske fag 2 Kap. 11: Anvendelser av kjikvadratfordelingen: Kjikvadrattester Situasjon: Et tilfeldig utvalg av n individer er trukket
DetaljerDRIFTSANALYSER 2012/2013 FORELØBIGE RESULTATER
DRIFTSANALYSER FORELØBIGE RESULTATER A B C D E F C G H E I J K L B K F G K! " # $ %! & ' ( ) ( * + #, -! &!. & ) /! ( / ) - 0 1 - ' #.! ( ( * ' 1 2 ( (! 3 4 " (! - 5 6!! 7 % ' # 7 4 " (! - 1 2 # 7 4 8-1
DetaljerTDT4110 IT Grunnkurs Høst 2016
TDT4110 IT Grunnkurs Høst 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Auditorieøving 1 Vennligst fyll ut følgende informasjon i blokkbokstaver
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,
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
DetaljerUnicode. Unikt vakkert eller unisont håpløst? En vandring gjennom tegnkodingens historie. Dag Lamgmyhr, Ifi/UiO Ark 1 av 23
Unicode Unikt vakkert eller unisont håpløst? En vandring gjennom tegnkodingens historie Dag Lamgmyhr, Ifi/UiO Ark 1 av 23 Hva er tegnkoding? Tegnkoding er bare å definere en tabell over hvilke tegn man
DetaljerMålet med dette notatet er å dokumentere at det er funnet løsmasser ved grunnen og å dokumentere miljøgiftkonsentrasjonen i sedimentene.
NOTAT Oppdrag 1110630 Grunner Indre Oslofjord Kunde Kystverket Notat nr. 001 Dato 07.01.2015 Til Fra Kopi Kristine Pedersen-Rise Tom Øyvind Jahren [Navn] Sedimentundersøkelse ved Belgskjærbåen Kystverket
DetaljerLøsningsforslag til øving 5 TFE4105 Digitalteknikk og Datamaskiner Høsten 2006
Løsningsforslag til øving 5 TFE4105 Digitalteknikk og Datamaskiner Høsten 2006 Oppgave 1 Papirsimulering av utførende enhet Styreordsekvens Registeroperasjon 011 011 001 0 0010 0 1 R3 R3 + R1 ; R3 = 01100111
DetaljerTDT4110 IT Grunnkurs Høst 2016
TDT4110 IT Grunnkurs Høst 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til Auditorieøving 1 1 Teori 1. Hvilket tall kan IKKE lagres
DetaljerFjord Forsøksstasjon Helgeland AS
ECOMARIN SEAFARM AS Fjord Forsøksstasjon Helgeland AS LOKALITETKLASSIFISERING NS 9415 PÅ LOKALITETEN SVINØYA SØR I ALSTAHAUG KOMMUNE Tittel: Sammendrag: Ecomarin seafarm Lokalitetsklassifisering på lokaliteten
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?)
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
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
DetaljerKapittel 1 En oversikt over C-språket
Kapittel 1 En oversikt over C-språket RR 2015 1 Skal se på hvordan man En innføring i C Skriver data til skjermen Lese data fra tastaturet Benytter de grunnleggende datatypene Foretar enkle matematiske
Detaljer! " # $ % & ^Pv`!$ x âîv7ç È'Ç È b j k Æ' z{3 b jkæ b ÇÈÉÊ&( )! c q r É. xy+ - Êlm l D E ` &! D E â î #" ' #$ '#! v( D/Ev A B x y&?
! " )*+,-/ 0 $$ "#2!$3456578 56 34 " 56!< >?@ABCDE,-
DetaljerOverordnet maskinarkitektur. Maskinarkitektur zoomet inn. I CPU: Kontrollenheten (CU) IT1101 Informatikk basisfag, dobbeltime 11/9
IT1101 Informatikk basisfag, dobbeltime 11/9 Hittil: sett på representasjon av informasjon og manipulering av bits i kretser Idag: hever oss til nivået over og ser på hvordan program kjører i maskinen
DetaljerTDT4110 IT Grunnkurs Høst 2015
TDT4110 IT Grunnkurs Høst 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforlag Auditorieøving 1 1 Teori Løsning er skrevet med uthevet tekst
DetaljerRepetisjon: operatorene ++ og -- Java 5. Nøtt. Oppgave 1 (fra forrige gang) 0 udefinert udefinert. Alternativ 1 Prefiks-operator
Litt mer om løkker Arrayer le Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i slo Java Repetisjon: operatorene ++ og -- Instruksjon i = i + i = i - Alternativ Prefiks-operator
DetaljerHandi-Lift EA7 Målskjema
Handi-Lift EA7 Målskjema Dato: Monteringsdato: Vår ref.: Bestillings nr.: Kunde (HMS): Utprøvingsnr.: Bruker Navn: Bruker nr.: Fødselsdato: Adresse: Postnr.: Poststed: Telefon (priv.): Telefon (arb.):
DetaljerDatamaskinens oppbygning
Datamaskinens oppbygning Håkon Tolsby 18.09.2014 Håkon Tolsby 1 Innhold Hovedenheten Hovedkort Prosessor CISC og RISC 18.09.2014 Håkon Tolsby 2 Datamaskinens bestanddeler Hovedenhet Skjerm Tastatur Mus
DetaljerMål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Unntak (exceptions) (Kap 6) Dictionaries (Kap. 9) Terje Rydland - IDI/NTNU
1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Unntak (exceptions) (Kap 6) Dictionaries (Kap. 9) Terje Rydland - IDI/NTNU 2 Læringsmål og pensum Mål Lære å bruke unntak (Exceptions)
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.
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
DetaljerTDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python
TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python Professor Guttorm Sindre Institutt for datateknikk og informasjonsvitenskap Læringsmål og pensum Mål Vite hva et
DetaljerITPE/DATS 2400: Datamaskinarkitektur og Nettverk
ITPE/DATS 2400: Datamaskinarkitektur og Nettverk Forelesning Knut Nygaard / T. M. Jonassen Institute of Computer Science Faculty of Technology, Art and Design Oslo and Akershus University College of Applied
DetaljerPDF created with pdffactory Pro trial version
[ ² Ú»» ³»»² ¾ ²» ¹» ô λ¹²¾² Forord Ü»²²» ²»² ¹» ¼» º ²«¼»»³¾» îðïéò a» ª ¼»»» ô ª ¼» ¾»² ² ³³» ² º± ¾ ²» ¹»²ò Ü»²²» µ ª ¾ «µ» ¼ ¾ ¹±¼ µ»² ³»¼ô ±¹ îðïè ª ²² ± ¼» ¼»²²» ªb» ³»¼»¹» ²»² ª ò»»³¾» îðïê ¼¼»
DetaljerOversikt Kodegenerering Variable Setninger Uttrykk While-setningen
Dagens tema Dagens tema: Kodegenerering Introduksjon Enkle variable Uttrykk Tilordning Litt mer kompliserte setninger med betingelser (Alt om kodegenerering unntatt funksjoner.) Prosjektoversikt Del 0
DetaljerË < # ;<z O < HSCÉ XÚÎ
-/ D &/01 23 45 89 : ; () /1 8> 8 =>8$>/%>/D &/ # 888/ %5 - /0- -/ OX < =>? D &/@8108A0BC D &/ DE 5@8[ _F T 18> < %$@%B/ H M[ C+ C*N O 2 I# 5 I I
DetaljerNorsk informatikkolympiade runde
Norsk informatikkolympiade 2017 2018 1. runde Sponset av Uke 46, 2017 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerINF1000 (Uke 15) Eksamen V 04
INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a
DetaljerINF1000 (Uke 15) Eksamen V 04
INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a
DetaljerGodkjenning av møteinnkalling
! " # $ % & ' ( ) * * + *, -. / 0 1 ) + * * ' - 2 2 + *, 3 " 4 3 5 4 " # 5! " # $ % & ' ( ) * * + *, -. 6 7 % 1 % ' % 2 2 8 7 - / 0 1 ) 5 3 4 3 " 4 " # 9 :! " # ; 7 + ) * 1 ) 7 + *, % / < - / / ) * < 2
DetaljerProgrammeringsspråket C Del 3
Programmeringsspråket C Del 3 Michael Welzl E-mail: michawe@ifi.uio.no 29.08.13 inf1060 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen
DetaljerÃ Ô ½ Ë Ð Ô Ø Ô Ø Ð ØÖÙ ØÙÖ
Ã Ô ½ Ë Ð Ô Ø Ô Ø Ð ØÖÙ ØÙÖ Ò Ø Ø Ê ÒØ ØØ ÓÖ Ð Ò Î Ö Ò Ú Ö ÒØ ØØ ÓÖ Ð Ò Ê Ô Ø Ð Ö Ò ÓÖ Ò ÓÔÔ ÊË È Ö ÓÒ ØØ Ö ÌÓÐ ØÒ Ò ÇÔØ Ñ Ð Ô Ø Ð ØÖÙ ØÙÖ Ñ ØØ Ö Ê ÒØ ØØ ÓÖ Ð Ò Ø ÐØ Ö ÒØ Ö Ö Ö ÒØ Ö Ö Á ÓÐ ÖØ Ö ØØ Ø Ò
DetaljerTDT4160 OG IT2201 DATAMASKINER GRUNNKURS EKSAMEN
Norwegian University of Science and Technology Faculty of Information Technology, Mathematics and Electrical Engineering The Department of Computer and Information Science TDT4160 OG IT2201 DATAMASKINER
Detaljer