INF205: Glossar

abstrakt klasse f., m., grensesnitt n.
destruktør m.
Definisjon: metoden som blir kalt idet eit objekt blir deallokert
diskret hendelsessystem n.
dynamisk bibliotek n.
Definition: bibliotek av kompilert programkode som er separat frå den køyrbare programfila, og kan ladast under køyretida og brukast saman med den køyrbare fila som ein einskap
eigarskap n., m.
entitet-relasjonsdiagram (ER-diagram) n.
Definisjon: "modell for å beskrive datastrukturer i databaser som danner en logisk beskrivelse av databasens innhold og oppbygning" (NHHs termbase for økonomisk-administrative fag på termportalen.no)
- Obs: Normalt blir diamantane i ER-diagram kalt "relasjonar". Men her er det forvirrande, sidan det allereie er i bruk som alternativ teknisk term for "tabell". Vi skal referere til diamantane som forholdstypar eller òg objekteigenskapar.
femarregelen m.
flytting f.
forhold n.
Definisjon: instans av ein forholdstype som uttrykker eit fakt om to eller fleire konkrete individ (objekt)
- Eksempel: Lat forholdstypen P bety "er ein del av", og lat å og n representere Ås og Noreg. Då kan det skrivast at P(å, n), dvs. at "Ås er ein del av Noreg." I dette er å og n individ og P er forholdstypen, medan forholdet er P(å, n).
- I den semantiske weben er forhold binære, dvs. dei har nøyaktig to argument: Eit subjekt og eit objekt. Slike forhold kan representerast som triplar.
forholdstype, relasjon m.
Definisjon: tilknyting av konsept som beskriv korleis individ som tilhøyrer den respektive klassen kan forhalde seg til einannan
- Ein relasjon tilsvarer eit verb i menneskeleg språk, eller eit predikat i formal predikatlogikk.
- T.d. kan "er forfattar av" ta subjekt som tilhører klassen "person" og objekt som instansierer konseptet "publikasjon". I så fall er "person" domenet og "publikasjon" verdiområdet til forholdstypen "er forfattar av".
global variabel m.
Definisjon: variabel som er tilgjengeleg gjennom eit namn med uavgrensa gyldigheitsområde; namn til slike variablar kan oppløysast overalt i kjeldekoden
- Stundom blir termen lokal variabel brukt til å omtala kva som helst variabel som ikkje er global (dvs. kva som helst variabel med avgrensa gyldigheitsområde); men nøgnare, og vanlegare, er det berre variablar som blir deklarert innanfor ein funksjon, som gjeld som lokale.
- Somme påstår det stort sett er dårleg stil å bruke globale variablar. Grunnen til det er m.a. at bruk av globale variablar vanskeleggjer feilsøking og verifikasjon. I skriptspråk (fortolka språk) er det uansett veldig vanleg praksis med globale variablar.
graf m.
Definisjon: "samling noder (punkter) og kanter (linjer) som forbinder noen, eller alle, av nodene" (T. Aambø i SNL om grafteori)
- Ein graf kan spesifiserast som eit par G = (V, E) av ei nodemengde V og ei kantemengde E ⊆ V × V.
haug m. [minnehandtering]
Definisjon: minneområde der data blir allokert dynamisk, utan direkte tilknyting til kallstakken
kallstakk, programstakk, stakk m.
klasse f., m.
Forklaring: "En klasse definerer en datatype og beskriver innhold og egenskaper til objekter av denne datatypen. Klassens datafelter er lagerenheter for objektets verdier, og klassens metoder beskriver operasjonene som kan gjøres på eller av objektene" (frå E. H. Vihovde sitt SNL-bidrag om objektorientering).
- "Klasse", "konsept" og "omgrep" kan brukast synonymt - dei sistnemnde helst i samanheng med ontologiar og kunnskapsgrafar.
kollektiv operasjon m.
kommandolinjeargument n.
kompilering f.
Definisjon: prosessen med å omsetja ein menneskeleg lesbar kjeldekode til ein maskinkode på lågare nivå; det gjerst med ein kompilator
- I C/C++ blir kompilatoren anvend på kjeldefiler; i C++ får desse filene vanlegvis filendinga *.cpp. Kompilatoren blir ikkje direkte anvend på header-filer (som vanlegvis får *.h-ending).
- Maskinkoden laga gjennom kompilering av ei kjeldefil med ein C/C++-kompilator kallast for objektkode; slik kode blir lagra i objektfiler, som vanlegvis får *.o-filending.
- Objektfilene som blir produsert ved kompilering er ikkje køyrbare av seg sjølve: Dei må lenkjast saman til ei frittståande køyrbar fil.
kompleksitetsklasse f., m.
konstruktør m.
Definisjon: metode som blir kalt idet eit objekt blir allokert
- Spesialtilfelle diskutert i førelesingane omfattar kopikonstruktørar ("3-regelen": Definer kopikonstruktøren saman med ein overlagra kopitilordningsoperator) og flyttekonstruktørar ("5-regelen": Definer flyttekonstruktøren saman med ein overlagra flyttetilordningsoperator).
konteinar, container m.
kunnskapsgraf, ABoks m.
Definisjon: graf der nodar er individ og kantar er binære forhold mellom individ
kø m.
lastbalansering f.
lenkja liste f.
meldingsoverføring f.
mellomvare f.
minnekompleksitet m.
namnerom n.
Definisjon: globalt tilgjengeleg mengde av namn, dvs. av faste nemningar for funksjonar, variablar, klasser, osv.
- For å få tilgang til namn Y definert i namnerom X, skriv ein X::Y.
- Gjennom using namespace X; blir alle namn frå X tilgjengelege utan prefiks.
node m. [ROS]
objekt n.
Definisjon: "grunnstein […] i objektorienterte datasystemer; […] lukket modul bestående av data og behandlingsregler" (E. H. Vihovde i SNL)
- "Sentrale begreper i systemer som baseres på objekter er innkapsling, arv og polymorfi" (ibid.).
- "Innkapsling betyr å avgrense hva slags datatyper og hvilke behandlingsregler som skal gjelde for en bestemt klasse av objekter" (ibid.).
- "Klasser dannes hierarkisk, slik at underordnede klasser arver egenskapene til de overordnede. I en database kan for eksempel underklassen 'sekretær' arve egenskapene til overklassen 'ansatte'." (ibid.).
- "Polymorfi betyr at prosedyrer kan gjøres gjeldende for objekter hvis nøyaktige form eller type kan variere" (ibid.).
- "Objekt" kalst òg for "individ". Som regel seier ein at eit objekt instansierer ein klasse, medan eit individ instansierer eit konsept. Det gjeld berre språkbruk, det er ingen forskjell i betydning.
objektorientert programmering f.
Definisjon: "form for dataprogrammering der dataprogrammene organiseres i en struktur med klasser og objekter som minner om hvordan vi organiserer virkeligheten rundt oss" (E. H. Vihovde i SNL).
- "Nordmennene Ole-Johan Dahl (1931-2002) og Kristen Nygaard (1926-2002) var opphavsmennene til objektorientert programmering" (ibid.).
overlasting f.
Definisjon: bruk av fleire funksjonar med same namn og forskjellige parametertypar
peikar m.
Definisjon: variabel med ein minneadresse som verdi
peikar til ingenting m.
Definisjon: peikar med ein verdi som ikkje svarar til ei gyldig minneadresse (utan at det blir handtert på ein ansvarleg måte)
- Den ugyldgige verdien er oftast nullptr, dvs. minneadressa 0x00000000000000000. Denne verdien vert ofte tildelt med hensikt, for å markere at peikaren ikkje peikar på eit dataelement. Men i slike tilfelle lyt peikaren aldri derefererast medan sin verdi er nullptr; han bør heller beskyttast gjennom en if-klausul som if(p != nullptr) { … }. Obs: Så lenge det blir handtert korrekt, vert ein nullpeikar ikkje sett som noko problem.
- Feil peikararitmetikk kan vera ei anna årsak, t.d. ved dereferering av ein arrayindeks utafor det valide verdiområdet.
Petrinett n.
rang m. [parallel programmering]
referanseoverføring f.
Definisjon: måte å overføre eit funksjonsargument på slik at den kalla funksjonen får tilgang til det opphavlege dataelementet, på samme minneadresse, i staden for å motta berre ein kopi
samtidigheit f.
sjablong, template m.
stakk m.
statisk array n., m.
Forklaring: Eit array er ein variabel som er lagra i ein samanhengande region i minnet, og som kan innehalde eit fleirtall av elementære variablar eller objekt. Eit statisk array er berre det, utan noen funksjonalitet i tillegg, i motsetning til eit dynamisk array, som i tillegg har ein storleik som kan tilpassast.
- Eit array som inneheld element av typen X, er sjølv av typen X*, dvs. peikar til X. Adressen er den som hører til det fyrste arrayelementet.
- Når eit array har blitt allokert manuelt på haugen, ved bruk av new, må det deallokerast gjennom delete[] (ikkje delete, som berre ville deallokere det fyrste arrayelementet).
sterk skalering f.
svak skalering f.
synkronisering f.
tidskompleksitet m.
tilstandsdiagram n.
tre n.
Definisjon: hierarkisk lenkja datastruktur gjeven som graf der det er nøyaktig éin sti mellom kvart par av nodar
trearregelen m.
typing f.
Definisjon: mekanisme for korleis eit dataelement blir tildelt ein datatype
- Statisk typing tildeler typar ved kompilering, medan dynamisk typing tildeler dei under køyretida. C/C++ bruker statisk typing.
- Eksplisitt typing krever at programmeraren spesifiserer datatypen ved deklarering av ein variabel; implisitt typing krever ikkje dette. C/C++ bruker eksplisitt typing; i moderne C++ kan nøkkelordet auto brukast i visse tilfelle i staden for ein eksplisitt datatype. Så bestemmer kompilatoren datatypen.
verdioverføring f.
Definisjon: måte å overføre ein verdi til ein funksjon idet verdien blir kopiert (kopien blir lagra i kallstakken); funksjonen får ikkje tilgang til den opphavlege minneadressen
Indeks