Spurningar Flashcards

1
Q

Hvað er “mál”?

A

Mál er einfaldlega mengi strengja. Strengur er endanleg runa tákna úr einhverju
mengi, sem við þá köllum táknróf eða stafróf (alphabet) málsins.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

BNF stendur fyrir ?

A

Backus-Naur Form, til heiðurs John Backus, sem fann upp FORTRAN forritunarmálið og Peter Naur, ritstjóri skilgreiningarinnar á ALGOL-60 forritunarmálinu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hvað er BNF?

A

BNF er aðferð, svokallað meta-mál, til að skilgreina mál. Með BNF er í grundvallaratriðum átt við það sama og átt er við þegar talað er um samhengisfrjálsar mállýsingar

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

En BNF á sér einnig rætur í málvísindum, hver skilgreindi samhengisfrjálsar mállýsingar áður en Backus og Naur skilgreindu BNF?

A

Málvísindamaðurinn Noam Chomsky

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

útleiðsla?

A

Þegar gefin er BNF skilgreining eins og að ofan má yfirleitt leiða út ótakmarkaðan fjölda strengja í málinu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Mállýsing er margræð ef ?

A

Strenginn má leiða út á fleiri en einn hátt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Málið er samhengisfrjálst ef?

A

Ef unnt er að lýsa tilteknu máli með BNF (þ.e. með samhengisfrjálsri mállýsingu)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Hvaða aðferðið eru notaðar til að lýsa málfræði forritunarmála ?

A

BNF, EBNF (Extended BNF) og málrit (syntax diagrams).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Regluleg mál (regular language).

A

Frumeiningar forritunarmála, svo sem lykilorð, strengfastar, heiltölufastar, fleytitölufastar, o.s.frv., eru yfirleitt regluleg mál (regular language).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Regluleg mál eru undirmengi samhengisfrjálsra mála, þ.e. ?

A

þ.e. öll regluleg mál eru samhengisfrjáls, en ekki öfugt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Reglulegar segðir?

A

Ein aðferð til að skilgreina regluleg mál er reglulegar segðir

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Endanlegar stöðuvélar ?

A

Enn ein aðferð til að skilgreina regluleg mál.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Hvernig er EBNF?

A

EBNF er svipað og BNF, en þar hefur verið bætt við hugmyndum úr reglulegum segðum.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

BNF | ?

A

Eða

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

-> 0|1|2|3|4

A

digit getur breyst í 0 eða 1,2,3 eða 4

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Nonterminals í BNF?

A

<>, Það sem er inn í getur breyst í eitthvað annað

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Hvað inniheldur BNF ?

A

terminals, non-terminals og production reglur

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Hvað þýðir ::= í BNF?

A

is defined by

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Hvað er LHS í BNF?

A

left hand side, alltaf non-terminal

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Hvað er RHS í BNF?

A

right hand side, terminals eða non-terminals

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

málrit

A

BNF myndrænt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Í endanlegum stöðuvélum eru lokastöður teiknaðar hvernig?

A

Með tvöföldum hring.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Að breyta endanlegri stöðuvél í málrit?

A

Kassar samsvara stikum í stöðuvélinni

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Hvernig er lokatáknin merkt sérstaklega í EBNF?

A

Með því að setja gæsalappir utan um þau

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Hvernig má tákna endurtekningar í EBNF?

A

Nota má slaufusviga til að tákna endurtekningar: {X} er látið standa fyrir núll eða fleiri X.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Hvernig má tákna einstakan valkost í EBNF ?

A

Nota má hornklofa til að tákna einstakan valkost: [X] er látið standa fyrir núll eða eitt X.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Hvernig má aðskilja valkosti eða safna saman?

A

Nota má sviga til að safna saman, og nota má | til að aðskilja valkosti: Til dæmis er (X | Y )Z jafngilt XZ | Y Z.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Samkeyting í EBNF?

A

Samskeyting í EBNF táknuð með aðgerðinni , (komma)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Í forritunarmálum eru eru notuð fjögur til fimm afbrigði viðfangaflutninga (parameter
passing), hver eru þau?

A

Gildisviðföng (call by value), Tilvísunarviðföng (call by reference), Afritsviðföng (call by value-result), Nafnviðföng (call by name), Löt viðföng (call by need, lazy evaluation).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Í Pascal og C++ eru notuð hvernig viðfangaflutningar?

A

gildisviðföng og tilvísunarviðföng.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Í C, Java, Scheme og CAML eru notuð hvernig viðfangaflutningar?

A

Aðeins gildisviðföng

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Hvernig viðgangalfutningar eru notaðir í Morpho?

A

Í Morpho eru gildisviðföng og einnig er hægt að líkja eftir tilvísunarviðföngum, nafnviðföngum
og lötum viðföngum.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Hvernig viðgangalfutningar eru notaðir í Ödu?

A

Gildisviðföng, Tilvísunarviðföng , Afritsviðföng

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Hvernig viðgangalfutningar eru notaðir í FORTRAN?

A

Bæði tilvísunarviðföng og afritsviðföng

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Hvernig viðgangalfutningar eru notaðir í Algol?

A

Í Algol gamla voru gildisviðföng og nafnviðföng.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Hvernig viðgangalfutningar eru notaðir í Haskell?

A

Í Haskell eru löt viðföng.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Hvernig viðgangalfutningar eru notaðir í λ-reikningi?

A

Einnig má halda því fram að λ-reikningur, sem fundinn var upp löngu áður en tölvur urðu til, noti nafnviðföng eða löt viðföng.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Hvernig virkar gildisviðfang?

A

Gildisviðfang (call by value) er gildað (evaluated) áður en kallað er á viðkomandi stef, gildið sem út kemur er sett á viðeigandi stað inn í nýju vakningarfærsluna (activation
record) sem verður til við kallið.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Hvernig virkar Tilvísunarviðfang ?

A

Tilvísunarviðfang (call by reference), t.d. var viðfang í Pascal eða viðfang með &
í C++, verður að vera breyta eða ígildi breytu (t.d. stak í fylki). Það er ekki gildað
áður en kallað er heldur er vistfang breytunnar sett á viðeigandi stað í nýju vakningarfærsluna. Þegar viðfangið er notað inni í stefinu sem kallað er á er gengið beint í
viðkomandi minnissvæði, gegnum vistfangið sem sent var.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

Hvernig virkar Afritsviðfang ?

A

Afritsviðfang (call by value/result, einnig kallað copy-in/copy-out) verður að vera breyta, eins og tilvísunarviðfang. Afritsviðfang er meðhöndlað eins og gildisviðfang, nema að þegar kalli lýkur er afritað til baka úr vakningarfærslunni aftur í breytuna.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

Hvernig virkar Nafnviðföng ?

A

Nafnviðföng virka þannig að þegar kallað er á fall eða stef er ekki reiknað úr nafnviðföngunum áður en byrjað er að reikna inni í fallinu eða stefinu sem kallað er á, heldur er reiknað úr hverju viðfangi í hvert skipti sem það er notað.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Hvernig virkar Löt viðföng ?

A

Löt viðföng eru eins og nafnaviðföng,

nema hvað aðeins er reiknað einu sinni, í fyrsta skiptið sem viðfangið er notað.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Í Scheme viljum við forrita án hliðarverkana, hvað þýðir það?

A

Það þýðir að við viljum ekki nota neinar gildisveitingar. Breytur fá því gildi þegar þær verða til og fá aldrei nýtt gildi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Hvað þurfum við að gera til þess að forrita án hliðarverkana í Scheme?

A

Við notum endurkvæmni (recursion) í stað lykkju.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

Hvað gerir endurkvæmt fall?

A

Kallar á sjálft sig

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

Hvað gerir hala endurkvæmt fall ?

A

Endurkvæmt fall sem endar á að kalla á sjálft sig (eða jafnvel annað endurkvæmt fall) er kallað halaendurkvæmt (tail recursive).

47
Q

Afhverju er halaendurkvæmni hagstæð í Scheme ?

A

Þegar Scheme fall endar á að kalla á annað fall (eða sjálft sig) er strax hætt í núverandi falli og næsta fall tekur við og skilar sínu gildi til þess sem kallaði á upphaflega fallið.

48
Q

Listavinnsla í Scheme byggist á föllunum?

A

car, cdr og cons

49
Q

Hvað gerir car í Scheme ?

A

Gefur þér fyrsta stak í lista

50
Q

Hvað gerir cdr í Scheme ?

A

Gefur þér allt sem kemur á eftir fyrsta stakinu

51
Q

Hvernig myndi ég fá stak 2 í lista?

A

Með því að kalla á car af cdr af listanum, eða cadr sem er short fyrir það

52
Q

Hvað gerir cons?

A

Setur stak fremst í lista

53
Q

Umdæmi/Scope

A

Til þess að komast að niðurstöðu skilgreinum við umdæmi (scope) hverrar breytuskilgreiningar. T.d. er breytan i skilgreind í formúlu, og hefur væntanlega eitthvert vel skilgreint umdæmi, þ.e. það
er væntanlega eitthvert vel skilgreint svæði innan formúlunnar þar sem i hefur þá merkingu, sem skilgreiningin gefur. Ef við vitum umdæmi tiltekinnar skilgreiningar eigum við að geta skipt um nafn á
viðkomandi breytu án þess að merking formúlunnar breytist.

54
Q

Hver skilgreindi fyrir daga tölvunnar formúlur, sem kallast λ-formúlur (lambda formúlur)?

A

Alonzo Church

55
Q

λ-formúlur eru skilgreindar á eftirfarandi hátt:

A

Ef x er breytunafn þá er x lögleg λ-formúla,
Ef x er breytunafn og N er lögleg λ-formúla þá er λx.N lögleg λ-formúla,
Ef M og N eru löglegar λ-formúlur þá er MN lögleg λ-formúla,
Ef M er lögleg λ-formúla þá er (M) lögleg λ-formúla.
Engar aðrar formúlur eru löglegar λ-formúlur.

56
Q

Tilvísunin (occurrence) í breytuna x í λ-formúlunni x er frjáls ?

A

57
Q

Breytutilvísun, sem ekki er frjáls, er sögð vera ?

A

bundin.

58
Q

Breytan x í undirformúlunni N í formúlinni λx.N er sögð vera bundin eða frjáls?

A

bundin

59
Q

Í λ-reikningi eru skilgreindar innsetningar á formúlur, hvernig?

A

Tilteknar frjálsar breytur fá „gildi“.

60
Q

Breytutilvísun er frjáls ef að?

A

Breytutilvísun er frjáls þá og því aðeins að innsetning hafi áhrif á hana

61
Q

Vakningarfærslur á ensku

A

activation records, stack frames

62
Q

Hvar eru vakningarfærslur í Scheme geymdar ?

A

Í kösinni (heap)

63
Q

Hvað er vakningarfærsla?

A

Vakningarfærsla er það minnissvæði sem einstök vakning af falli eða stefi notar meðan það keyrir.

64
Q

Hvar er algengast að vakningarfærslur eigi sér stað?

A

Í flestum tilfellum eru vakningarfærslur geymdar á hlaða (stack.

65
Q

Nokkur forritunarmál sem hafa vakningarfærslur í kös (heap) ?

A

Scheme, Haskell, Morpho og ML

66
Q

Í bálkmótuðum forritunarmálum (block-structured programming languages) innihalda vakningarfærslur (activation records) hvaða upplýsingar:

A

Viðföng (arguments), Staðværar breytur (local variables)., Vendivistfang (return address), Stýrihlekk (dynamic link, control link), Tengihlekk (access link, static link).

67
Q

Hvað er lokun (closure) ?

A

Lokun (closure) er fyrirbæri, sem í bálkmótuðum málum er notað á sama hátt og fallsbendar eru notaðir í C og C++.

68
Q

Lokun inniheldur:

A

Fallsbendi á vélarmálsþulu viðkomandi falls, Aðgangshlekk, sem bendir á viðeigandi vakningarfærslu þess stefs, sem inniheldur viðkomandi fall

69
Q

Til er annað skylt fyrirbæri sem kallast framhald (continuation). Framhald inniheldur ?

A

stýrihlekk og vendivistfang.

70
Q

hver er munurinn á cons, car og cdr annars vegar, og cons-stream, stream-car og stream-cdr hins vegar?

A

cons-stream er ekki fall, heldur lykilorð, og seinna viðfangið í cons-stream er ekki reiknað fyrr en fallinu stream-cdr er beitt á útkomuna úr segðinni (cons-stream x y)

71
Q

Hvernig virkar lykilorðið delay?

A

Þannig að segðin (delay e), þar sem e er hvaða segð
sem er, skilar svokölluðu loforði (promise), sem inniheldur segðina e, án þess að segðin hafi enn verið gilduð (evaluated).

72
Q

Sé fallinu force beitt á loforð?

A

Þá verður segðin gilduð og gildinu skilað.

73
Q

Rökstudd forritun ?

A

Krafan er sú að öll föll hafi lýsingu þar sem fram komi forskilyrði, eftirskilyrði og hvernig kalla skuli á fallið.

74
Q

Hvað einkennir ML og CAML ?

A

Tögunin (typing) í þeim. Þau eru rammtöguð
(strongly typed) og nota sömu tögunaraðferð, sem er sérstök að því leyti að þýðandinn sér mikið til um að finna út úr því hvert tagið á að vera á hinum magvíslegustu gildum og segðum.

75
Q

Tagskilgreiningar í CAML (og ML) geta innihaldið frjálsar tagbreytur?

A

76
Q

Hvers vegna er gerður greinarmunur á pörum og listum í CAML en ekki Morpho og LISP ?

A

Vegna tögunarinnar

77
Q

Aðalatriðin í notkun Morpho ?

A

Listavinnsla og einingaforritun.

78
Q

Í keyrslu Morpho sýndarvélarinnar eru nokkur gisti (register) í gangi, þau eru ?

A

code., pc., stack., ret., ex., ac.

79
Q

code. er ?

A

Fylki af Morpho vélarmálsskipunum sem verið er að framkvæma.

80
Q

pc. er ?

A

Vísir inn í code sem bendir á þá vélarmálsskipun sem verið er að framkvæma.

81
Q

Samanlagt skilgreina code og pc ?

A

Staðsetningu í vélarmálsþulu sem líta má að

sé sambærilegt við vendivistfang eða fallsbendi í forritunarmálum sem hafa einfaldara keyrsluumhverfi.

82
Q

stack. er?

A

Keðja af hlekkjum sem hver og einn inniheldur eina breytu. Þessi gildahlaði
er umhverfið (environment) sem verið er að keyra í. Hér eru bæði staðværar
breytur og breytur í efri földunarhæðum.

83
Q

ret. er ?

A

Eðlilegt framhald úr núverandi falli.

84
Q

ex. er ?

A

Afbrigðilegt framhald úr núverandi falli.

85
Q

ac. er ?

A

Gisti sem fær nýtt gildi í hvert sinn sem Morpho segð skilar gildi (accumulator).
Þegar fall skilar gildi er gildið sett í ac áður en snúið er til baka úr fallinu.

86
Q

Þegar við köllum á fall í Morpho og Scheme, þá sendum við fallinu ?

A

Bæði viðföng (á hlaðanum) og framhald

continuation

87
Q

Framhaldið virkar þannig?

A

Almennt er framhald gildi sem er dálítið keimlíkt og lokun en í stað þess að innihalda bendi á vakningarfærslu sem verður í næstu földunarhæð þegar lokunin er nytjuð (kallað er á lokunina), þá inniheldur framhald bendi á vakningarfærslu sem verður núverandi vakningarfærsla þegar framhaldið er nytjað. Halaendurkvæmni er þá útfærð með því að halaendurkvæmt kall fær sama framhald
og sá sem kallar, í stað þess að búið sé til nýtt framhald til að snúa til baka til þess
sem kallar. Lykilatriði er að framhaldið inniheldur stýrihlekk í stað þess að innihalda
aðgangshlekk eins og lokun gerir.

88
Q

Á hverju andartaki í keyrslu Morpho eru tvö framhöld tiltæk, hver eru þau?

A

Annað framhaldið er í gistinu ret og er eðlilegt framhald sem nytjað er þegar núverandi fall skilar gildi.
Hitt framhaldið er í gistinu ex, sem nytjað er þegar afbrigði gerist í keyrslu (þ.e.
exception).

89
Q

Keyra má Morpho í samtalsham (interactive mode) með skipuninni?

A

java -jar morpho.jar

90
Q

Til að þýða Morphoforrit úr textaskrá x.morpho má nota eftirfarandi skipun:

A

java -jar morpho.jar -c x.morpho

91
Q

Út úr þýðingu gæti, til dæmis, komið út keyrsluhæf skrá x.mexe, sem þá má keyra með skipuninni

A

java -jar morpho.jar x

92
Q

Í forritun í stórum stíl (programming in the large) er skynsamlegt að líta á einingu
frá þremur sjónarhornum?

A

Frá sjónarhorni notenda, smiða og hönnuðar.

93
Q

Hönnunarskjal skal uppfylla eftirfarandi skilyrði:

A

Gefa skal notanda einingar nægilega miklar upplýsingar um smíð einingarinnar til að hann geti notað hana, en ekki meiri upplýsingar.
Gefa skal smið einingar nægilega miklar upplýsingar um notkun einingarinnar til að hann geti smíðað hana, en ekki meiri upplýsingar.

94
Q

Aðferðatafla

A

Virtual Method Table, skammstafað VMT.

95
Q

Í öllum hlutbundnum forritunarmálum fylgir hverjum hlut vörpun sem varpar boði í
aðferð. Oftast er þetta gert þannig að hverjum klasa fylgir slík vörpun, og oft er vörpunin útfærð sem einfalt fylki þar sem vísirinn er heiltala sem stendur fyrir boðið og
gildið er fallsbendir eða lokun sem stendur fyrir aðferðina. Hvað kallast þetta?

A

Aðferðatafla/Virtual Method Table, skammstafað VMT.

96
Q

Þegar boð er sent til hlutar ?

A

Þegar boð er sent til hlutar er leitað að boðinu í aðferðatöflunni og ef aðferð finnst fyrir boðið er hún framkvæmd. Ef ekki þá er athugað hvort hluturinn erfir frá einhverjum öðrum hlut. Ef svo er þá er leitað að aðferðinni í erfða hlutnum, og svo koll af kolli. Ef engin aðferð finnst fyrir boðið þá er það villa.

97
Q

Í töguðum hlutbundnum forritunarmálum svo sem Java, C++ og Object Pascal fylgir hverjum klasa aðeins ein aðferðatafla, jafnvel þótt um arfgengi sé að ræða. Hvernig varpar sú aðferðatafla boði?

A

Sú aðferðatafla varpar boði beint í aðferð, hvort sem aðferðin er útfærð í viðkomandi klasa eða í yfirklasa.

98
Q

Í Morpho er yfirklasi ekki þekktur á þýðingartíma, hvenær verður hann þekktur?

A

Yfirklasi ekki þekktur fyrr en hluturinn verður til.

99
Q

Í Morpho er boð því tilvísun á aðferð, þegar gefinn er hlutur eða klasi. Útskýrðu nánar.

A

Boð er ekki aðferð því mismunandi hlutir hafa mismunandi aðferðir fyrir sama boð. Það
er einmitt stóri kosturinn við hlutbundna forritun að sama boð getur haft mismunandi aðferðir í mismunandi hlutum.

100
Q

Forritunarmálið Haskell er tagað fallsforritunarmál með latri gildun. True/False

A

True

101
Q

Viðföng falla eru ekki gilduð fyrr en ?

A

Nauðsyn krefur.

102
Q

Listar í Haskell eru keimlíkir ?

A

Straumum í Scheme.

103
Q

List comprehension

A

Listaritháttur í Haskell, hannaður til að vera svipaður í útliti og merkingu eins og mengjarithátturinn sem við eigum að venjast.

104
Q

Með hjálp fallanna concatMap, map og filter má ?

A

Gera allt það sem gera má með listarithættinum.

105
Q

Ruslasöfnunaraðferðir/ garbage collection methods

A

Reference Count, Mark and Sweep, Stop and Copy, Generation Scavenging

106
Q

Reference Count/ tilvísunartalning

A

Í hverju minnissvæði í kös er teljari, sem ávallt inniheldur fjölda beinna tilvísana á þann hlut (það minnissvæði) úr breytum í forritinu eða öðrum hlutum - Þegar þessi teljari verður núll má skila minnissvæðinu.

.

107
Q

Mark and Sweep, hvernig veit maður hvenær þarf að ruslasafna?

A

Þessi aðferð vinnur þannig að ónotuð minnissvæði eru geymd í lista, sem kallaður er frjálsi listinn. Þegar reynt er að úthluta minni er athugað hvort eitthvað er tiltækt á
frjálsa listanum. Ef svo er ekki þarf að ruslasafna.

108
Q

Hvernig ruslasafnar Mark and Sweep ?

A

Sérhvert minnissvæði s þarf að hafa einn bita, s.merki, sem er notaður til merkingar á meðan á ruslasöfnun stendur. Reiknað er með því að sérhvert minnissvæði sé ómerkt þegar ruslasöfnun hefst.

109
Q

Stop and Copy / afritunaraðferðin

A

Hún felst í því að nota tvö jafnstór minnissvæði fyrir kös, og er aðeins annað svæðið í notkun hverju sinni (nema meðan á ruslasöfnun stendur). Minni er ávallt úthlutað aftast í því svæði sem er í notkun.
Í byrjun ruslasöfnunar er víxlað á svæðum og öll svæði í gamla svæðinu sem eru í notkun eru afrituð í nýja svæðið. Reiknað er með því að sérhvert minnissvæði s hafi einn bita s.merki fyrir merki og sá biti er ekki notaður í neitt annað. Einnig er reiknað með því að sérhvert minnissvæði hafi pláss fyrir framvísunarbendi, s.framvísun, en það pláss má nota í annað þegar ruslasöfnun er ekki í gangi. Minnissvæði sem lifa af
ruslasöfnun eru afrituð yfir í nýju kösina og eru þá um leið merkt og fá framvísunarbendi sem bendir á samsvarandi minnissvæði í nýju kösinni. Eins og í merkja og sópa
aðferðinni er reiknað er með því að öll minnissvæði séu ómerkt þegar ruslasöfnun hefst.

110
Q

Einstæða (Monad) í Haskell hefur ýmsar hliðar. Einstæða er:

A

oft geymsla fyrir gildi af ýmsu tagi (safn gilda),
aðferð til að skipuleggja útreikninga,
aðferð til að vinna með hliðarverkanir án þess að fórna kostum fallsforritunar,
aðferð til forrita í Haskell á svipaðan hátt og í skipanaforritunarmálum
(procedural programming language) og
aðferð til að stunda upplýsingahuld og gera seinni breytingar auðveldar.

111
Q

Monad er sem sagt klasi í Haskell, sem er allt annað fyrirbæri en klasi í hlutbundnum forritunarmálum. Í Haskell er klasi ?

A

Flokkur taga, eða réttara sagt flokkur tagsmiða. Í skilgreiningunni stendur m fyrir tagsmið (type constructor).

112
Q

Í Java eru fyrirbæri sem kallast generics og generic types, hvað er það og hvað gerir það?

A

Þýða mætti sem fjölnota forritun og fjölnota tög. Þau gera okkur kleift að forrita fjölnota einingar og aðferðir.

113
Q
  1. Notkun
  2. Fyrir
  3. Gildi
A
  1. Hvernig við köllum á fallið
  2. Undir hvaða kringumstæðum má kalla á fallið
  3. Hvað gerir fallið