Instans (informatikk)

I informatikk er en instans en konkret manifestering av et objekt basert på en gitt klasse. En annen måte å si det på er at en modell instansieres hver gang det opprettes en ny kontekst på en modell. I praksis har denne instansen vanligvis en datastruktur til felles med andre av samme modell eller klasse, men verdiene som er lagret i instansen er separate. Endring av verdiene i en instans vil dermed ikke påvirke verdiene til en annen instans. I databaser skilles det mellom en tuppel som er én forekomst, og en instans som er en samling av forekomster.

Instans kan også vise til en beregningsinstans, som er en programvare eller maskinvare som kan kjøre kode, eksempelvis en CPU, GPU eller virtuell maskin.

Datagrafikk 
I datagrafikk kan en polygonmodell instansieres for å bli tegnet flere ganger på forskjellige steder i en scene. Denne teknikken kan brukes for å forbedre ytelsen til bildesyntese siden arbeidet som trengs for å vise hver instans overlapper.

Objektorientert programmering 
I objektorientert programmering er en instans en konkret manifestering av et objekt, som vanligvis eksisterer under kjøretiden til et dataprogram. Formelt er instans synonymt med objekt, ettersom de begge har en bestemt verdi (en realisering), og disse kan kalles et instansobjekt. Instans understreker her objektet sin distinkte identitet. Opprettelsen av en instans kalles instansiering.

De enkelte objektene kan variere på flere måter. Hver realiserte variant av et objekt er en instans av sin klasse. Det medfører at de enkelte objektene som er medlem av en gitt klasse har noen spesifiserte verdier snarere enn variabler. I en kontekst utenfor programmering kan man tenke på "hund" som en type og ens spesielle hund som en instans av den klassen.

I klassebasert programmering opprettes objekter fra klasser av underrutiner kalt konstruktør og ødelegges av destruktører. Et objekt er en instans av en klasse, og kan kalles for en klasseinstans eller klasseobjekt. Instansiering er da også kjent som konstruksjon. Ikke alle klasser kan instansieres, nærmere bestemt kan ikke abstrakte klasser instansieres, mens klasser som kan instansieres kalles konkrete klasser. I prototypebasert programmering gjøres instansiering i stedet ved å kopiere (klone) en prototypeinstans.

Operativsystemer 
I POSIX-orienterte operativsystemer refererer begrepet programinstans vanligvis til enhver utførende prosess instansiert et gitt program gjennom systemkall, som eksempelvis fork() og exec() i Linux. Det vil si at hver utførende prosess i operativsystemet er en instans av et program som den har blitt instansiert fra.

Referanser 

Informatikk