1. Rammeverket i.net Innledning

Størrelse: px
Begynne med side:

Download "1. Rammeverket i.net Innledning"

Transkript

1 Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Rammeverket i.net Tore Berg Hansen Lærestoffet er utviklet for faget LN384D Appliksasjonsutvikling på.net-plattformen 1. Rammeverket i.net Resymé: I denne leksjonen fortsetter med vår tur gjennom.net. Vi skal se nærmere på rammeverket som kan sies å være kjernen i.net. Vi ser spesielt på kjøretidssystemet ogdet felles typesystemet. Dette gjør det mulig å bygge alle typer applikasjoner for Windows og Internett. Innhold 1.1. INNLEDNING ORD OG UTTRYKK COMMON LANGUAGE RUNTIME (CLR) Microsoft Intermediate Language Metadata Assembler og disassembler COMMON TYPE SYSTEM ASSEMBLIES OG MODULER OPPSUMMERING... 9 LITTERATURLISTE Innledning I forrige leksjon påpekte vi at.net kanskje er det største teknologiske sprang Microsoft noensinne har presentert for utviklere i en engang. Med.NET har utviklere fått et felles rammeverk for utvikling av mange forskjellige typer applikasjoner. Rammeverket er primært rettet inn mot fremtidsvisjonen om allestedsnærværende databehandling, hvilket innebærer distribuerte applikasjoner som kjører på forskjellige intelligente enheter. Denne visjonen ble bl.a. lansert av Mark Weiser i en artikkel i Scientific American i 1991 (Weiser 1991)..NET omfatter mye..net er en plattform som har de verktøy og teknologier som trengs for å bygge distribuerte applikasjoner. Sentralt står rammeverket. Figur 1 viste vi også i den første leksjonen.

2 Rammeverket i.net side 2 av 10 XML Web Services Web Forms Windows Forms ASP.NET Data and XML Classes (ADO.NET,...) Base Framework Classes Common Language Runtime Operativsystemet Figur 1 Rammeverket ligger på toppen av operativsystemet. Nærmest er Common Language Runtime, kjøretidssystemet som alle applikasjoner kjører under. Utvikleren har til sin disposisjon et objektorientert klassebibliotek med mer enn 6000 klasser. Biblioteket er grovt delt i to deler. Den ene delen er den som kalles Base Framework Classes. Den andre har mer spesialiserte klasser for bl.a. for håndering av XML og databaser. Figuren må ses på som et oversiktsbilde fordi.net kommer i nye versjoner med jevne mellomrom. Men hovedstrukturen har bestått selv om det detaljerte innhold endres og utvides. For eksempel så introduseres nye klasser i klassebiblioteket og nye verktøy lanseres i takt med utviklingen av teknologier. Klassebiblioteket har klasser for følgende: Innput/utputt Strenghåndtering Sikkerhetshåndtering Nettverkskommunikasjon Trådhåndtering og parallellprosessering Teksthåndtering Design av brukergrensenitt. Med versjon 4.0 kan man bruke rammeverket til å utvikle konsollapplikasjoner, enkle brukergrensesnitt (Windows Forms), rike brukergrensesnitt (Windows Presentation Foundation), Active Server Pages.NET (ASP.NET) til å lage Websider, Webtjenester og tjenesteorienterte applikasjoner (Windows Communication Foundation). Vi kan si at.net gjør det mulig å lage forskjellige typer brukergrensesnitt og forskjellige former for distribuert funksjonalitet. I denne leksjonen skal vi spesielt se på CLR og hva det inneholder. Klassebibliotekene kommer vi tilbake til i senere leksjoner.

3 Rammeverket i.net side 3 av Ord og uttrykk Den tabellen som følger her er har sin opprinnelse i den første leksjonen. Vi starter alle leksjoner med en slik tabell så slipper du å gå tilbake til tidligere leksjoner. Tabellen er utvidet med nye ord og uttrykk som introduseres i denne leksjonen. Forkortelse ADO ADO.NET ASP ASP.NET Assembly CLR IL JIT JVM Manifest MFC MSIL PE SOAP UDDI WSDL XML Tabell 1 Forklaring ActiveX Data Objects. Neste generasjon ADO for aksessering av relasjonsdatabaser. Active Server Pages. Neste generation ASP for bygging av Webapplikasjoner. Utplasseringsenheten i.net. Inneholder kode og metadata og et manifest som beskriver innholdet. Common Language Runtime. Fundamentet for alle applikasjoner i.net. Intermediate language. Se også MSIL. Det mellomliggende språk som alle høynivåspråk som kan kan kjøre under.net kompileres til. Vi bruker denne kortversjonen de fleste steder i denne leksjonen. Just In Time kompilering Java Virtual Machine. Kjøremiljøet for Javaprogrammer. Metadata som beskriver hvilke moduler og ressusrfiler som er del av en bestemt assembly. Microsoft Foundation Class. Et tidligere klassebibliotek for utvikling av Windowsapplikajsoner. Microsoft Intermediate Language. Portable executable. Binært filformat for Windows. Simple Object Access Protocol. Universal Description, Discovery, and Integration. Web Services Description Language. Extensible Markup Language Common Language Runtime (CLR) CLR er altså kjøretidssystemet som alle.net-applikasjoner kjører under. Dette kreerer objekter, allokerer minne, sørger for søppelhådtering, sikkerhet og samspill mellom tjenester. Kode som er skrevet for CLR kalles på engelsk Managed Code.

4 Rammeverket i.net side 4 av 10 CLR har mange likhetstrekk med Java sin virtuelle maskin, Java Virtual Machine (JVM). Både CLR og JVM eksekverer en mellomliggende kode. Javakompilatorer lager bytekode, mens.net kompilatorer lager IL-kode. Men det er en viktig forskjell. JVM er en tolker (engelsk interpreter), hvilket vil si at den kjører er javaprogram linje for linje. JVM ligger altså oppå den underliggende maskinvareplattformen. Sett fra et Javaprogram er JVM den samme uansett hvilken maskinvare eller operativsysrem som ligger under. Det er det som ligger i slagordet om skriv en gang, kjør over alt (write once, run anywhere). CLR benytter seg av Just in Time Compilation (JIT). Det innebærer at et program som kjører under CLR kompileres to ganger. Første gangen blir koden som er skrevet i et.net kompatibelt språk kompilert til IL-kode. Deretter når programmet skal kjøres overtar JIT og sørger for at ILkoden blir kompilert til maskinkode for den aktuelle plattformen som programmet kjører på. Neste gang koden kjøres trenger den, i prinsippet, ikke kompilers igjen. At det ikke alltid vil være slik, skal vi komme tilbake til. JIT-kompilatoren finnes nemlig i to versjoner. En annen ting er at JVM nå i stor grad også benytter JIT-kompilering for å øke ytelsen på Javaprogrammer. Prosessen og elementene i.net fra kildekode til kjørende program er vist i Figur 2. Base Class Library Kildekode (C#, VB.NET, C++, Python, ) Kompilator Metadata Engine IL og Metadata Exe eller DLL Class Loader Verifier JIT Kompilator Managed Native Code Kjør Figur 2 Fra kildekode til kjørbart program I det etterfølgende skal vi se nærmere på disse elementene.

5 Rammeverket i.net side 5 av Microsoft Intermediate Language Kompilatorer for.net omformer kildekode til et mellomliggende språk. I Microsoftterminologi betegnet som Microsoft Intermediate language (MSIL, ofte bare IL). Språket kan sammenlignes med assembler, men er ikke for en bestemt maskinvareplattform, altså CPU-uavhengig. Kildekode for.net kan være skrevet i mange programmeringsspråk. Kravet er at det må finnes en kompilator som følger MSIL standarden. Microsoft har primært satset på tre programmeringsspråk.det er Visual Basic.NET, en utvidelse av C++ som kalles Managed C++ og C# som er spesielt laget for.net og det språket som Microsoft mener skal brukes til nye.net-applikasjoner. Etter hvert er det laget.net-kompilatorer av tredjepart. Eksempel er Python.NET og Cobol.NET. IL-koden har instruksoner for å innlesning, lagring, initialisering og kall av metoder til objekter. Det har også instruksjoner for aritmetiske og logiske operasjoner, kontrollflyt, direkte minneaksess, unntakshåndtering m.m. Det vil si at man kan skrive programmer direkte i MSIL, men det er ikke den mest produktive måten å gjøre det på. CLR har flere JIT-kompilatorer som oversetter til kildekode for aktuelle maskinvareplattformer. Java på sin side har en JVM for hver maskinvareplattform Metadata I tilegg til IL-kode lager kompilatoren metadata. Dette er data som beskriver klasser, felter i klasser, metoder i klasser og andre programelementer. IL-kode og metadata legges sammen med et manifest i en enhet som kalles en Assambly i.net-terminologien. En Assambly inneholder dermed all informasjon om seg selv og blir en uavhengig komponent og kan inspiseres av forskjellige verktøy som lastere og kompilatorer. Mer om det om litt. En Assembly er dermed den kjørbare komponenten i.net. Samtidig er den også det som i.net-terminologi kalles en deployment unit, eller på norsk en utplasseringsenhet. Det er den kjørbare enheten som kan befinne seg på et sted i nettverk og som kan brukes i samspill med andre assemblies andre steder i et nettverk. Metadata brukes i verifiseringsprosessen forut for generering av kode for en gitt plattform. Under verifisering blir IL-kode og metadata undersøkt for å finne ut om koden er typesikker og dermed bare kan aksessere minne den har tillatelse til å aksessere. Verifisering skal også sørge for at sikkerhetsrestriksjoner på koden blir ivaretatt, Verifiseringsprosessen kan hoppes over hvis man har etablert retningslinjer for dette Assembler og disassembler Vi nevner her kort at det er to verktøy som kan brukes for å arbeide med IL, hvis man skulle få behov for det. Det er en assembler og en disassembler. Slike verktøy er kjent fra gamle dager. En assembler kan sammenlignes med en kompilator, men den er mer lavnivå og knyttet til en gitt maskinvareplattform. Det vil si at hver plattform har sin assembler som omformer symbolsk lavnivåkode til maskinkode. Den motsatte prosessen, fra maskinkode til assemblykode kalles å disassemble og verktøyet som gjør det en disassembler. I.NET heter disse verktøyene ILASM od ILDASM. Funksjonen er litt annerledes enn med tradisjonelle assemblere og disassemblere, men disse verktøyene gjør det mulig å manipulere og tolke IL-kode og metadata. ILDASM er innebygget i Visual Studio.NET.

6 Rammeverket i.net side 6 av Common Type System Programmeringsspråk som Java, C++ og Visual Basic har innebygget en rekke datatyper som gjør det mulig å arbeide med tall, tegn og tekst uten å måtte bekymre seg for hvordan de håndteres internt på en gitt datamaskin. Moderne kompilatorer gjør det altså mulig å abstrahere bort slike interne detaljer. Så langt er det vel og bra. Problemet oppstår når man vil at programmer skrevet i forskjellige språk skal samspille. En av hensiktene med.net er å kunne utvikle distribuerte systemer med komponenter skrevet i forskjellige språk og som problemløst samspiller. Løsningen er et felles typesystem kalt Common Type System (CTS). Men før vi ser nærmere på CTS kan det være på sin plass å forklare hva vi (og muligens Microsoft) mener med datatype. I (Bruegge og Dutoit, 2000) finner vi dette: - En datatype er en abstraksjon i et programmeringsspråk. I C++ er int et eksempel. - En abstrakt datatype er en spesiell datatype hvor strukturen er skjult for resten av systemet. Det innebærer at en utvikler kan endre de indre detaljer uten at det påvirker resten av systemet. Abstrakte datatyper har datamedlemmer og operasjoner. Klassemoduler i Visual Basic 6 er et eksempel. - En instans er et medlem av en bestemt datatype. Et eksempel på en instans av en int er Klasse er en abstaksjon i et objektorientert programmeringsspråk. På samme måte som en abstrakt datatype, innkapsler og skjuler den sine interne detaljer. I tillegg kommer at klasser kan spesialiseres gjennom en mekanisme som kalles arv. Vi finner igjen alle disse datatyper i.net-språkene under fellesbetegnelsen Type. CTS er altså et typesystem som alle programmeringsspråk som skal kjøre under.net må innlemme. Men det enkelte språk behøver ikke innlemme alle typene og kan bruke sine egne navn. Det er kompilatorens oppgave å oversette disse til det som brukes i MSIL. Et eksempel på problemer med datatyper er int i C++. C++ er et standardisert språk og datatypene i språket er standardiserte. Problemet med C++ er at standarden er så vid at en int ikke behøver å ha samme representasjon på forskjellige plattformer. Grunnen til det er antagelig at C++ skal være bakoverkompatibelt med C. En av egenskapene med C er at det kan brukes til å programmere maskinnært. I det ligger at datatyper som int representeres på en slik måte at de avspeiler ordlengden på maskinvaren. På en 32 bits maskin er int 4 byte, på en 16 bits maskin gjerne 2 byte. I standarden heter det at en int skal være større eller lik short int og mindre eller lik long. Med en slik standardisering kan man altså generelt ikke vite hvilken størrelse datatypen har noe som kan gi problemer selv mellom programmer skrevet i C++, men eventuelt kompilert med forskjellige kompilatorer. Gjennom CTS er dette problemet løst i.net som allerede nevnt. Man skiller gjerne mellom tre grupper av datatyper. Den ene er det man kaller innebygde datatyper som int, double, char og float. Den andre er sammensatte datatyper. Det vil si typer som er bygd opp av andre typer. Eksempler på disse er Array. Den tredjer typen er egendefinerte datatyper som class. I CTS finner vi alle disse. En annen inndeling man gjør i CTS er at man har to hovedkategorier. Disse er: - Verdityper (Value types) - Referansetyper (Reference types)

7 Rammeverket i.net side 7 av 10 Verdityper er tall, tegn (char) og Boolean (bool). Disse representerer en verdi og lagres direkte i minnet, på stakken. Når de ikke lenger er i bruk, eller som det heter på engelsk out of scope, vil plassen frigjøres. De som kjenner Java vet at objekter legges på den delen i minnet som kalles det frie lager (heap på engelsk)..net administrerer en egen heap som kalles managed heap. Her legges referansetypene. Objektene nås gjennom en referanse. Referansen ligger på stakken. Opprydding gjøres også, som i Java, med en søppelhåndterer (garbage collection). I motsetning til Java har CTS flere referansetyper. Figur 3 gir et forenklet, og ikke komplett, oversiktsbilde av viktigste datatypene. Nye versjoner av.net introduserer nye datatype. I versjon 4.0 har bl.a. datatypen Complex kommet til. Object Referansetyper Verdityper Class Interface Heltall Flyttall Array Boolean String Tegn Delegate Structs Andre Oppramsning Figur 3 Legg merke til at i.net arver alle datatyper fra en klasse, Object. Det fremgår ikke av figuren at man kan ha flere referansetyper i form av pekere. En objektpeker refererer til et objekt av en klasse eller et array. Aritmetiske operasjoner er ikke tillatt på objektpekere, i motsetning til i C++. Objektpekere kan bare peke til hele objekter. En managed peker kan peke til et felt inne i et objekt. Unmanaged pekere er såkalt ikke typesikker. Det er den type pekere som er kjent fra C og C++. I.NET kan ikke disse peke til managed heap og er ikke

8 Rammeverket i.net side 8 av 10 kontrollert av søppelhåndtereren. Disse pekerne kan håndtere såkalt usikker kode. De er en sikkerhetsrisiko, men muliggjør gjenbruk av tidligere kode som ikke er skrevet for.net. I.NET kan en klasse ha fire typer medlemmer: Metoder, samme betydning som i Java og andre objektorienterte programmeringsspråk. Felt (field), i andre språk kalt datamedlem dvs. en eller annen CTS-type. Hendelse (event), en mekanisme for å kommunisere med andre typer. Egenskaper (properties), en verditype som har metoder for å lese og skrive en verdi. I noen tilfeller kan man ha behov for å håndtere en verditype som et objekt. Mekanismen i CTS for å gjøre dette er Boxing. Det vil si at man kan innkapsle en verdi i et objekt og legge verdien på det frie lager og referere til det. Flere språk basert på CTS skjuler denne prosessen slik at det ikke er nødvendig for utvikleren å gjøre dette eksplisitt. Tabell 1 viser mer detaljert de forskjellige verditypene Verditype Byte Char Int16, Int32 og Int64 UInt16, UInt32 og UInt64 Single og double Decimal Enum Boolean Merknad 8-bit ubenevnt 16-bit Unicode tegn Benevnte heltall Ubenevnte heltall Singlepresisjon (32 bit) og dobbelpresisjon (64 bit) flyttall 96-bit desimaltall Oppramsningstype, dvs. en måte å gruppere og gi meningsfylte navn til verdier. Kjent fra C++ og nå også innlemmet i Java. Sann eller usann Structure En samling av elementer av forskjellig type som naturlig hører sammen. Veldig lik klasser, men ligger altså på stakken, ikke på det frie lager ogt kan ikke arves fra som alle verdityper. Datatypen er kjent fra C og C++. Tabell 1 Med versjon 4.0 har man også fått BigInteger som håndterer vikårlig store tall.

9 Rammeverket i.net side 9 av Assemblies og moduler I forrige leksjon forklarte vi hva et assembly er. Vi tar med litt mer her. En assembly er en logisk enhet. En modul (eller manged module) er derimot en fil. Den er en såkalt Portable Executable (PE). Det er en binærfil som er kompatibel med Windows operativsystemer og kan lastes inn for kjøring av Windows. En modul inneholder definisjon av typer (klasser) og metadata og MSIL koden for metodene. CLR kan ikke bruke en modul direkte. Den trenger informasjonen som ligger i et manifest. Når denne informasjonen legges til blir modulen del av en assembly. Manifestet har altså all informasjon knyttet til et assembly. Manifestet i seg selv er også en modul og det er bare en slik modul i et assembly Oppsummering I denne leksjonen har vi: sett at kjernen i.net er kjøretidsystemet Common Language Runtime (CLR). sett at kjøretidssystemet håndtererer sikkerhet. sett at kjøretidssystemet tar seg av søppelhåndtering sett at kjøretidssystemet bruker Just in time kompilering sett at sammspill mellom komponenter lettes gjennom et felles typesystem, Common Type System sett at et assembly er en logisk enhet mens en modul er en fil.

10 Rammeverket i.net side 10 av 10 Litteraturliste Bruegge, Bernd og Dutoit, Allen 2000: Object-oriented software engineering. Upper Saddle River: Prentice Hall. Weiser, M The Computer for the 21st century. Scientific American. 265(3): September 1991.

1. Introduksjon til.net

1. Introduksjon til.net Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Introduksjon til.net Tore Berg Hansen Lærestoffet er utviklet for faget LN384D Appliksasjonsutvikling på.net-plattformen 1. Introduksjon

Detaljer

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse. INF 5110, 10/5-2011, Stein Krogdahl

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse. INF 5110, 10/5-2011, Stein Krogdahl NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse Dessverre litt få figurer INF 5110, 10/5-2011, Stein Krogdahl Oversikt over Javas class-filer og byte-kode Disse formatene ble planlagt fra start

Detaljer

Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode)

Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode) Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode) Disse foilene er pensum INF 5110, 30/4-2013, Stein Krogdahl Byte-koden for Java og.nett (C#) kan leses her: http://en.wikipedia.org/wiki/java_bytecode_instruction_listings

Detaljer

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse

NOTAT (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

Detaljer

Operativsystemer og grensesnitt

Operativsystemer og grensesnitt Operativsystemer og grensesnitt Ulike måter å bruke OS'et på Application Program Interface (API) Applikasjoner (ofte C-programmer) som f.eks. emacs, som bruker tjenestene i OS ved å kalle på funksjoner

Detaljer

Litt om Javas class-filer og byte-kode

Litt om Javas class-filer og byte-kode Litt om Javas class-filer og byte-kode INF 5110, 11/5-2010, Stein Krogdahl (Dessverre litt få figurer) Disse formatene ble planlagt fra start som en del av hele Java-ideen Bt Byte-koden gir portabilitet

Detaljer

Java. Henrik Lieng Høgskolen i Oslo og Akershus

Java. Henrik Lieng Høgskolen i Oslo og Akershus Java Henrik Lieng Høgskolen i Oslo og Akershus Hvorfor Java? Objekt-orientert (primære stilen i moderne programutvikling) Sikkert (lar ikke programmerer tukle med minne etc.) Enkelt å lære (så lenge du

Detaljer

Generiske mekanismer i statisk typede programmeringsspråk

Generiske mekanismer i statisk typede programmeringsspråk Generiske mekanismer i statisk typede programmeringsspråk Dette stoffet er Pensum, og det er bare beskrevet her Mye her er nok kjent stoff for mange INF5110 7. mai 2013 Stein Krogdahl 1 Hvordan kunne skrive

Detaljer

1. Å lage programmer i C++

1. Å lage programmer i C++ Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Å lage programmer i C++ Tore Berg Hansen og Else Lervik Rividert siste gang 24. august 2006 1. Å lage programmer i C++ Resymé: Dette notatet

Detaljer

1. Å lage programmer i C++

1. Å lage programmer i C++ Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Å lage programmer i C++ Tore Berg Hansen og Else Lervik Rividert siste gang 29. august 2005 1. Å lage programmer i C++ Resymé: Dette notatet

Detaljer

Introduksjon til programmering og programmeringsspråk. Henrik Lieng Høgskolen i Oslo og Akershus

Introduksjon til programmering og programmeringsspråk. Henrik Lieng Høgskolen i Oslo og Akershus Introduksjon til programmering og programmeringsspråk Henrik Lieng Høgskolen i Oslo og Akershus Kategorisering av programmeringsspråk? Deklarativ vs. imperativ Lav nivå vs. høy nivå Kompilert vs. tolket

Detaljer

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon Kort om meg INF1000 Uke 2 Variable, enkle datatyper og tilordning Fredrik Sørensen Kontor: Rom 4311-NR, Informatikkbygget Brukernavn/e-post: fredrso@ifi.uio.no Utdanning: Dataingeniør, 2000 Cand.Scient,

Detaljer

Generelt om operativsystemer

Generelt om operativsystemer Generelt om operativsystemer Operativsystemet: Hva og hvorfor Styring av prosessorer (CPU), elektronikk, nettverk og andre ressurser i en datamaskin er komplisert, detaljert og vanskelig. Maskinvare og

Detaljer

2. HVA ER EN KOMPONENT?

2. HVA ER EN KOMPONENT? Innholdsfortegnelse 1. INTRODUKSJON 3 2. HVA ER EN KOMPONENT? 3 2.1. Litt av historien 3 2.2. UML og komponenter 5 2.3. Noen definisjoner 5 REFERANSER 7 1. Introduksjon Komponenter og komponentbasert systemutvikling

Detaljer

Introduksjon til programmering og programmeringsspråk

Introduksjon til programmering og programmeringsspråk Introduksjon til programmering og programmeringsspråk Henrik Lieng Høgskolen i Oslo og Akershus https://code.org/ Veldig høy-nivå programmering med Scratch End-user programming Overtone, Tidal, etc., bygger

Detaljer

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays Oversikt C programmering 1 C programmering Introduksjon Kildekode Kompilering Hello world Hello world med argumenter 2 Funksjoner 3 Datatyper 4 Pekere og arrays 5 Kontrollstrukturer Lars Vidar Magnusson

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 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.

Detaljer

Kapittel 1: Datamaskiner og programmeringsspråk

Kapittel 1: Datamaskiner og programmeringsspråk Kapittel 1: Datamaskiner og programmeringsspråk Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når

Detaljer

AlgDat 10. Forelesning 2. Gunnar Misund

AlgDat 10. Forelesning 2. Gunnar Misund AlgDat 10 Forelesning 2 Oversikt Java repetisjon IDE eller teksteditor + kommandolinje? Java Collections and Generics Programvareutvikling En mengde mer eller mindre veldefinerte metoder (software engineering):

Detaljer

CORBA Component Model (CCM)

CORBA Component Model (CCM) CORBA Component Model (CCM) INF5040 Høst 2005 Erlend Birkedal Jan Erik Johnsen Tore Ottersen Løkkeberg Denne presentasjonen CORBA Svakheter ved CORBA Object Model Komponenter CORBA Component Model Hva

Detaljer

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program Oversikt INF1000 Uke 1 time 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public 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

Detaljer

Debugging. Tore Berg Hansen, TISIP

Debugging. Tore Berg Hansen, TISIP Debugging Tore Berg Hansen, TISIP Innhold Innledning... 1 Å kompilere og bygge et program for debugging... 1 Når debugger er i gang... 2 Symbolene i verktøylinjen... 3 Start på nytt... 3 Stopp debugging...

Detaljer

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon Oversikt INF1000 Uke 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning Uttrykk

Detaljer

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:

Detaljer

Kapittel 1: Datamaskiner og programmeringsspråk

Kapittel 1: Datamaskiner og programmeringsspråk Kapittel 1: Datamaskiner og programmeringsspråk Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public 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

Detaljer

Generelt om operativsystemer

Generelt om operativsystemer Generelt om operativsystemer Hva er problemet? Styring av maskinvare og ressurser tilknyttet en datamaskin er komplisert, detaljert og vanskelig Maskinvare, komponenter og programvare endres og forbedres

Detaljer

Velkommen til INF5110 Kompilatorteknikk

Velkommen til INF5110 Kompilatorteknikk Velkommen til INF5110 Kompilatorteknikk 15. januar 2013 Kursansvarlige: Stein Krogdahl [steink@ifi.uio.no] Ragnhild Kobro Runde [ragnhilk@ifi.uio.no] Henning Berg (oblig-ansvarlig) [hennb@ifi.uio.no] Kursområdet:

Detaljer

ԣ ˢܝ Ί! Delphi 8 for.net!

ԣ ˢܝ Ί! Delphi 8 for.net! Delphi 8 for.net COPYRIGHT 1984, 2004 Borland Software Corporation. Borland Inprise Borland Borland Software Corporation. 1 1-1 2 Delphi for.net 2-1...2-1...2-2...2-2...2-2...2-2...2-3.NET Framework...2-3

Detaljer

Kapittel 1. Datamaskiner og programmeringsspråk. 1.1 Programmering

Kapittel 1. Datamaskiner og programmeringsspråk. 1.1 Programmering Kapittel 1 Datamaskiner og programmeringsspråk Dette kapitlet er en kort introduksjon til programmering. Vi vil se på hvordan man skriver, bygger og kjører programmer, samt illustrere noen sentrale programmeringsbegrep

Detaljer

Distributed object architecture

Distributed object architecture Forelesning IMT2243 6. April 2010 Tema: forts. arkitektur og design av programvare Prosjektstatus Programvarearkitektur Oppsummering fra før påske Distribuerte objektarkitektur MDA - Model Driven Architecture

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no 9/1/2005 inf1060 V05 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen

Detaljer

AlgDat 12. Forelesning 2. Gunnar Misund

AlgDat 12. Forelesning 2. Gunnar Misund AlgDat 12 Forelesning 2 Forrige forelesning Følg med på hiof.no/algdat, ikke minst beskjedsida! Algdat: Fundamentalt, klassisk, morsomt,...krevende :) Pensum: Forelesningene, oppgavene (pluss deler av

Detaljer

156C. Algoritmer og maskinspråk. IT1101 Informatikk basisfag. Maskinspråk: det maskinen forstår. Assembler / assemblerspråk

156C. Algoritmer og maskinspråk. IT1101 Informatikk basisfag. Maskinspråk: det maskinen forstår. Assembler / assemblerspråk IT1101 Informatikk basisfag I dag Programmeringsspråk Problemer med maskinspråk I dag: 5.1-5.3 Fra lavnivå til høynivå programmeringsspråk - utvikling Kompilator / tolker Programmeringsparadigmer Tradisjonelle

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen malloc

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Michael Welzl E-mail: michawe@ifi.uio.no 8/25/10 inf1060 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen

Detaljer

P L A N I A 8 S Y S T E M K R A V PLANIA 8 SYSTEM KRAV. Plania 8 Systemkrav.docx 27.04.2015 1 av 8

P L A N I A 8 S Y S T E M K R A V PLANIA 8 SYSTEM KRAV. Plania 8 Systemkrav.docx 27.04.2015 1 av 8 PLANIA 8 SYSTEM KRAV Plania 8 Systemkrav.docx 27.04.2015 1 av 8 INNHOLD 1 INNLEDNING... 1-3 1.1 Generell beskrivelse... 1-3 1.1.1 Plania DESKTOP og Plania WEB... 1-3 2 SYSTEMKRAV... 2-4 2.1 Krav til ulike

Detaljer

Læringsmål og pensum. https://www.youtube.com/watch? v=nkiu9yen5nc

Læringsmål og pensum. https://www.youtube.com/watch? v=nkiu9yen5nc 1 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python Professor Alf Inge Wang 2 https://www.youtube.com/watch? v=nkiu9yen5nc 3 Læringsmål og pensum Mål Lære om

Detaljer

Microsoft.NET & COM. Av Magnus Halvorsen Petter Asskildt Joakim Fiskvik. Signature (unit, name, etc.)

Microsoft.NET & COM. Av Magnus Halvorsen Petter Asskildt Joakim Fiskvik. Signature (unit, name, etc.) Microsoft.NET & COM Av Magnus Halvorsen Petter Asskildt Joakim Fiskvik .NET Framework Plattformuavhengig Språkuavhengig Nettverksfokusert Består av: Common language runtime (CLR).NET Framework Class Library

Detaljer

Microsoft.NET is software that connects information, people systems and devices.

Microsoft.NET is software that connects information, people systems and devices. Microsoft.NET Hva er.net? Microsoft.NET is software that connects information, people systems and devices. Nr.2 FAQ: What is a.net experience? The Microsoft.NET experience is a dramatically more personal,

Detaljer

1. SQL server. Beskrivelse og forberedelse til installasjon

1. SQL server. Beskrivelse og forberedelse til installasjon Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag SQL server. Beskrivelse og forberedelse til installasjon Stein Meisingseth 15.10.2014 Lærestoffet er utviklet for faget IDRI2001 Drift av

Detaljer

INF1000 : Forelesning 1 (del 2)

INF1000 : Forelesning 1 (del 2) INF1000 : Forelesning 1 (del 2) Java Variable og tilordninger Heltall, desimaltall og sannhetsverdier Utskrift på skjerm Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet

Detaljer

INF5110. Oblig 2 presentasjon

INF5110. Oblig 2 presentasjon INF5110 Oblig 2 presentasjon Informasjon Oppgaven Semantikksjekk Kodegenerering Bytecode-biblioteket Ant-targets Oppsummering Oversikt Informasjon Oblig 2 tilgjengelig på kurssiden Patch med testfiler

Detaljer

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO oppgave 1 Hvorfor har vi operativsystemer? Portable programmer Enklere å programmere

Detaljer

Plan for dagen. Vprg 4. Dagens tema - filbehandling! Strømmer. Klassen FilLeser.java. Tekstfiler

Plan for dagen. Vprg 4. Dagens tema - filbehandling! Strømmer. Klassen FilLeser.java. Tekstfiler Plan for dagen Vprg 4 LC191D Videregående programmering Høgskolen i Sør-Trøndelag Avdeling for informatikk og e-læring Anette Wrålsen Del: Intro til tekstfiler Del II: Mer om tekstfiler, Scanner-klassen

Detaljer

Programmeringsspråket C Del 3

Programmeringssprå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

Del 1 En oversikt over C-programmering

Del 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

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang 2 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python Professor Alf Inge Wang 3 https://www.youtube.com/watch? v=nkiu9yen5nc 4 Læringsmål og pensum Mål Lære om

Detaljer

Kodegenerering 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 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

Detaljer

JAVA CHRISTOFFER MARTINSEN

JAVA CHRISTOFFER MARTINSEN JAVA CHRISTOFFER MARTINSEN 1 2 CHRISTOFFER MARTINSEN Contents 1. Introduksjon 3 1.1. Innledning 3 1.2. Buzzwords 3 1.2.1. Simple 3 1.2.2. Object Oriented 3 1.2.3. Distributed 3 1.2.4. Robust 3 1.2.5. Secure

Detaljer

1. Programmeringsmiljøet. Grunnleggende syntaks

1. Programmeringsmiljøet. Grunnleggende syntaks Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Programmeringsmiljøet. Grunnleggende syntaks Grethe Sandstrak og Mildrid Ljsoland 01.09.2015 Lærestoffet er utviklet for faget IFUD1002 C#.NET

Detaljer

INF Oblig 2 semantikksjekk og kodegenerering

INF Oblig 2 semantikksjekk og kodegenerering INF5110 - Oblig 2 semantikksjekk og kodegenerering Magnus Haugom Christensen Instituttet for Informatikk Universitetet i Oslo 27. Mars - 2012 Oversikt Informasjon Oppgaven Semantikksjekk Kodegenerering

Detaljer

Kapittel 1: Datamaskiner og programmeringsspråk. Java som første programmeringsspråk

Kapittel 1: Datamaskiner og programmeringsspråk. Java som første programmeringsspråk Kapittel 1: Datamaskiner og programmeringsspråk Forelesningsnotater for: Java som første programmeringsspråk Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk Forlag, 2003. ISBN 82-02-23274-0

Detaljer

Kapittel 1: Datamaskiner og programmeringsspråk. Java som første programmeringsspråk

Kapittel 1: Datamaskiner og programmeringsspråk. Java som første programmeringsspråk Kapittel 1: Datamaskiner og programmeringsspråk Forelesningsnotater for: Java som første programmeringsspråk Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk Forlag, 2003. ISBN 82-02-23274-0

Detaljer

som jobbet nærmest døgnet rundt i 18 måneder i Menlo Park i California for å forberede den neste bølgen innen computing.

som jobbet nærmest døgnet rundt i 18 måneder i Menlo Park i California for å forberede den neste bølgen innen computing. The Green Team Litt Java-historikk I 1991 opprettet Sun Microsystems en arbeidsgruppe som jobbet nærmest døgnet rundt i 18 måneder i Menlo Park i California for å forberede den neste bølgen innen computing.

Detaljer

Litt Java-historikk. Litt Java-historikk. Ulike varianter for ulike behov. Litt Java-historikk. The Green Team

Litt Java-historikk. Litt Java-historikk. Ulike varianter for ulike behov. Litt Java-historikk. The Green Team The Green Team Litt Java-historikk I 1991 opprettet Sun Microsystems en arbeidsgruppe som jobbet nærmest døgnet rundt i 18 måneder i Menlo Park i California for å forberede den neste bølgen innen computing.

Detaljer

Del 4 Noen spesielle C-elementer

Del 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

Detaljer

Innhold. Forord Det første programmet Variabler, tilordninger og uttrykk Innlesing og utskrift...49

Innhold. Forord Det første programmet Variabler, tilordninger og uttrykk Innlesing og utskrift...49 Innhold Forord...5 1 Det første programmet...15 1.1 Å kommunisere med en datamaskin 16 1.2 Programmeringsspråk 17 1.3 Et program som skriver på skjermen 18 1.4 Kompilering og kjøring 19 1.5 Kommentarer

Detaljer

Oppgave 1 JK-flip-flop (Total vekt 20%)

Oppgave 1 JK-flip-flop (Total vekt 20%) UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 147 Program- og maskinvare Eksamensdag: 12. mai 1997 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 6 sider. Vedlegg: Tillatte

Detaljer

Repitisjonskurs. Arv, Subklasser og Grensesnitt

Repitisjonskurs. Arv, Subklasser og Grensesnitt Repitisjonskurs Arv, Subklasser og Grensesnitt Subklasser Klasser i OO-programmering representerer typer av objekter som deler et sett med egenskaper. En subklasse har egenskapene til en klasse + ett sett

Detaljer

Enkle generiske klasser i Java

Enkle generiske klasser i Java Enkle generiske klasser i Java Oslo, 7/1-13 Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Del 1: Enkle pekere Før vi tar fatt på det som er nytt i dette notatet, skal vi repetere litt

Detaljer

Velkommen til INF Kompilatorteknikk

Velkommen til INF Kompilatorteknikk Velkommen til INF5110 - Kompilatorteknikk Kursansvarlige: Stein Krogdahl [steink@ifi.uio.no] Birger Møller-Pedersen [birger@ifi.uio.no] Fredrik Sørensen (hjelpelærer) [fredrso@student.matnat.uio.no] Kursområdet:

Detaljer

Distribuerte objekter og objekt-basert mellomvare

Distribuerte objekter og objekt-basert mellomvare Distribuerte objekter og objekt-basert mellomvare INF 5040 H2006 foreleser: Frank Eliassen INF5040 Frank Eliassen 1 Hvorfor objekt-basert distribuert mellomvare? Innkapsling naturlig tilnærming til utvikling

Detaljer

Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004

Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004 Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004 13. september 2004 En viktig del av den første obligatoriske oppgaven er å få erfaring med hvordan Java håndterer tall. Til å begynne med kan dette

Detaljer

Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo

Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Gaustadbekkdalen, januar 27 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår inne i primærlageret

Detaljer

Distribuerte objekter og objekt-basert mellomvare

Distribuerte objekter og objekt-basert mellomvare Distribuerte objekter og objekt-basert mellomvare INF5040 foreleser: Olav Lysne Frank Eliassen, SRL & Ifi/UiO 1 Hvorfor objekt-basert distribuert mellomvare? Innkapsling naturlig tilnærming til utvikling

Detaljer

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering Oppsummering Pensum Grovt sett er alt fra forelesningene og øvingsoppgavene pensum. Detaljert oversikt finnes på kurssidene. Hovedtanker fra kurset Litt om eksamen Hvorfor har dere lært dette? Ikke mange

Detaljer

Velkommen til INF Kompilatorteknikk

Velkommen til INF Kompilatorteknikk Velkommen til INF5110 - Kompilatorteknikk Kursansvarlige: Stein Krogdahl [steink@ifi.uio.no] Birger Møller-Pedersen [birger@ifi.uio.no] Andreas Svendsen (hjelpelærer) [Andreas.Svendsen@sintef.no] Kursområdet:

Detaljer

Oversikt. Informatikk. INF1000: Grunnkurs i objektorientert programmering. Utenom INF1000 Informasjon & hjelp

Oversikt. Informatikk. INF1000: Grunnkurs i objektorientert programmering. Utenom INF1000 Informasjon & hjelp INF1000: Grunnkurs i objektorientert programmering Uke 0, høst 2014 Oversikt Informatikk - hva & hvorfor? Datasystemer, maskinvare, programmer Objektorientert programmering i INF1000 Programmeringsspråket

Detaljer

Jini. Gruppe 1 Martin Skarsaune Bjørn Arne Dybvik Cuong Huu Truong. Definisjon

Jini. Gruppe 1 Martin Skarsaune Bjørn Arne Dybvik Cuong Huu Truong. Definisjon Jini Gruppe 1 Martin Skarsaune Bjørn Arne Dybvik Cuong Huu Truong Definisjon Et distribuert system bygd opp som et forbund av brukergrupper og ressurser som brukerne trenger, der ressursene tilbyr brukere

Detaljer

Distribuerte objekter og objekt-basert mellomvare

Distribuerte objekter og objekt-basert mellomvare Distribuerte objekter og objekt-basert mellomvare INF 5040 H2004 foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 Hvorfor objekt-basert distribuert mellomvare?! Innkapsling " naturlig tilnærming

Detaljer

Hvordan en prosessor arbeider, del 1

Hvordan 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

Detaljer

datatyper Hva er programmering? Variabler og Informasjonsteknologi 2 Kompetansesemål

datatyper Hva er programmering? Variabler og Informasjonsteknologi 2 Kompetansesemål Variabler og datatyper Gløer Olav Langslet Sandvika VGS Høst 2012 Informasjonsteknologi 2 Hva er programmering? Når du skal bake en kake følger du gjerne en oppskrift. Først er det beskrevet hva kaken

Detaljer

Software installasjon og andre ettertanker

Software installasjon og andre ettertanker Software installasjon og andre ettertanker Stein Jørgen Ryan 25feb05 Software installasjon Alle software produsenter gjør det. Høyst varierende forståelse av hva det er. Hvordan gjøres det i dag (på Windows)?

Detaljer

Objective-C. Shermila Thillaiampalam 01.11.2011

Objective-C. Shermila Thillaiampalam 01.11.2011 Objective-C Shermila Thillaiampalam 01.11.2011 Innhold 1 Kort om Objective-C 4 1.1 Xcode................................ 4 2 Historie 5 2.1 Programmeringsspråket C..................... 5 2.2 Smalltalk..............................

Detaljer

Kapittel 1 En oversikt over C-språket

Kapittel 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

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser INF1300 Introduksjon til databaser Data (transiente, persistente) DBMS databser informasjon interesseområdet informasjonsmodeller informasjonssystemer Transiente og persistente data Når vi programmerer,

Detaljer

Velkommen til INF Kompilatorteknikk

Velkommen til INF Kompilatorteknikk Velkommen til INF5110 - Kompilatorteknikk Kursansvarlige: Stein Krogdahl [steink@ifi.uio.no] Birger Møller-Pedersen [birger@ifi.uio.no] Eivind Gard Lund (hjelpelærer) [eivindgl@student.matnat.uio.no] Kursområdet:

Detaljer

Et operativsystem er programvare som har som oppgave å gjøre tjenester for datamaskinsystemet.

Et operativsystem er programvare som har som oppgave å gjøre tjenester for datamaskinsystemet. Om operativsystemer Et operativsystem er programvare som har som oppgave å gjøre tjenester for datamaskinsystemet. er svært store programmer som består av tusenvis av funksjoner som gjør tjenester av forskjellig

Detaljer

Velkommen til INF Kompilatorteknikk

Velkommen til INF Kompilatorteknikk Velkommen til INF5110 - Kompilatorteknikk Kursansvarlige: Arne Maus [arnem@ifi.uio.no] Birger Møller-Pedersen [birger@ifi.uio.no] Sven-Jørgen Karlsen ( gruppelærer ) [svenjok@student.matnat.uio.no] Stein

Detaljer

Kjøresystemer. Hva er et kjøresystem? Den abstrakte maskinen SIMPLESEM (2.6) Klassifisering av språk: Parametre (2.7.7) Statiske språk (

Kjøresystemer. Hva er et kjøresystem? Den abstrakte maskinen SIMPLESEM (2.6) Klassifisering av språk: Parametre (2.7.7) Statiske språk ( Kjøresystemer Hva er et kjøresystem? Den abstrakte maskinen SIMPLESEM (2.6) Klassifisering av språk: Statiske språk (2.7.1-2.7.2) FORTRAN, COBOL Stakk-baserte språk (2.7.3-2.7.4) ALGOL 60 Dynamiske språk

Detaljer

INF1000 undervisningen INF 1000 høsten 2011 Uke september

INF1000 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

Detaljer

oppgavesett 4 INF1060 H16 Hans Petter Taugbøl Kragset Øystein Dale Christian Resell 27. september 2016 Institutt for informatikk, UiO

oppgavesett 4 INF1060 H16 Hans Petter Taugbøl Kragset Øystein Dale Christian Resell 27. september 2016 Institutt for informatikk, UiO oppgavesett 4 INF1060 H16 Hans Petter Taugbøl Kragset Øystein Dale Christian Resell 27. september 2016 Institutt for informatikk, UiO oppgave 1 Hvorfor har vi operativsystemer? 1 oppgave 1 Hvorfor har

Detaljer

INF 1000 høsten 2011 Uke september

INF 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

Detaljer

Generiske mekanismer i statisk typede programmeringsspråk INF5110 April, 2009

Generiske mekanismer i statisk typede programmeringsspråk INF5110 April, 2009 Generiske mekanismer i statisk typede programmeringsspråk INF5110 April, 2009 Torsdag 30. april (skattedagen!): Mer om generering av maskinkode (Ferdig oppkopiert hefte deles ut) Tirsdag 5. mai: Mer av

Detaljer

Web fundamentals. Web design. Frontend vs. Backend 17.01.2008. Webdesign 17. januar 2008 3. Monica Strand

Web fundamentals. Web design. Frontend vs. Backend 17.01.2008. Webdesign 17. januar 2008 3. Monica Strand Web fundamentals Webdesign 17. januar 2008 Monica Strand Webdesign 17. januar 2008 1 Web design Fagområdet Web design inneholder flere disipliner Grafisk design Informasjonsdesign Brukergrensesnittdesign

Detaljer

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

TDT4110 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

Detaljer

1. NetBeans IDE: Lage en enkel mobilapplikasjon

1. NetBeans IDE: Lage en enkel mobilapplikasjon Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag NetBeans IDE: Lage en enkel mobilapplikasjon Mildrid Ljosland/Lene Hoff 09.09.2008 Lærestoffet er utviklet for faget SO350D J2ME for programmering

Detaljer

Konsulent-ID: 2225 Curriculum vitae

Konsulent-ID: 2225 Curriculum vitae Konsulent-ID: 2225 Curriculum vitae Født: 1975 Nøkkelkvalifikasjoner - Microsoft.NET (1.1, 2.0, 3.5 og 4.0) - Microsoft Sql Server - C# - Xml Web Services, Microsoft Windows Communication Foundation -

Detaljer

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy Kapittel 13 Advanced Hypertext Implementation Martin Lie Ole Kristian Heggøy 08.11.04 Forbedring av arkitektur Problem med alt i ett -løsning: Spredning av forretningslogikk. Avhengighet mellom presentasjonssider

Detaljer

Nybegynnerkurs i C. Øyvind Grønnesby. 14. oktober Introduksjon Typer Operatorer Kontrollstrukturer Pekere Makroer Lenker

Nybegynnerkurs i C. Øyvind Grønnesby. 14. oktober Introduksjon Typer Operatorer Kontrollstrukturer Pekere Makroer Lenker Nybegynnerkurs i C Øyvind Grønnesby 14. oktober 2004 Introduksjon pass-by-value svakt typet portabel assembler siste ISO-standard er C99 Hello world #i n c l u d e < s t d l i b. h> #i n c l u d e

Detaljer

Viktig. Rettet i koden. Oppgaven. Obligatorisk oppgave 2 - Kort om oppgaven og litt informasjon. Fredrik Sørensen OMS-gruppen, IfI

Viktig. Rettet i koden. Oppgaven. Obligatorisk oppgave 2 - Kort om oppgaven og litt informasjon. Fredrik Sørensen OMS-gruppen, IfI Viktig Obligatorisk oppgave 2 - Kort om oppgaven og litt informasjon Fredrik Sørensen OMS-gruppen, IfI Ny patch (patch_oblig2.zip) legges ut på kurssiden i dag. Oblig 1 vil bli rettet denne uken Sjekk

Detaljer

Objekter og referanser

Objekter og referanser Objekter og referanser Datasegmentet heap Vi har sett at verdier i Java blir kopiert ved prosedyrekall. I programmering, ønsker man imidlertid ikke å kopiere objekter ved prosedyrekall. Dette er fordi

Detaljer

Programmering i C++ Løsningsforslag Eksamen høsten 2005

Programmering i C++ Løsningsforslag Eksamen høsten 2005 Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det

Detaljer

Objektorientering i VB en introduksjon

Objektorientering i VB en introduksjon Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Objektorientering i VB en introduksjon Oppdatert av Atle Nes Objektorientering i VB en introduksjon Resymé: Visual Basic.NET er et objektorientert

Detaljer

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet doble.rusc (kalt kildekoden): Hva er kompilering?

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet doble.rusc (kalt kildekoden): Hva er kompilering? Dagens tema Dagens tema Kildekode Hva er kompilering? Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Hvordan oppdage feil? Anta at vi lager dette lille

Detaljer

Applikasjonsutvikling med databaser

Applikasjonsutvikling med databaser Applikasjonsutvikling med databaser Lars Vidar Magnusson October 12, 2011 Lars Vidar Magnusson () Forelesning i DAS 10.10.2011 October 12, 2011 1 / 24 Applikasjonsutvikling med databaser Databaser tilbyr

Detaljer

Forelesning inf Java 1

Forelesning inf Java 1 Forelesning inf1000 - Java 1 Tema: Javas historie Bestanddelene i et Java-program Programvariabler Ole Christian Lingjærde, 22. august 2012 Litt Java-historikk The Green Team I 1991 opprettet Sun Microsystems

Detaljer