Dit is de samenvatting van het vijfde hoofdstuk van het vak Interpretatie van Computerprogramma's I. In deze samenvatting werd zowel alle informatie uit de slides als bijkomende informatie uit eigen notities opgenomen. Aan het einde van de samenvatting werden ook de herhalingsvragen opgelost
EIN...
Hoofdstuk 5: registermachines
• elke registermachine beschikt over een beperkt aantal registers en een stapel om waarden in
bij te houden, en over een beperkt aantal primitieve operaties om waarden te manipuleren
• elke registermachine heeft een klok die de frequentie bepaalt waaraan instructies van een
registermachineprogramma uitgevoerd worden
• bij elke klokslag wordt de instructie die overeenkomt met de huidige waarde van de
programma-teller uitgevoerd, en de teller met een verhoogt
• sommige instructies van het registermachineprogramma veranderen de programma-teller
1 Een iteratief proces in registermachinetaal
(define gcd-machine
(make-machine
Object-georiënteerde implementatie van registermachine
'(a b t)
Lijst van benodigde registers
(list (list 'rem remainder) (list '= =))
Lijst van benodigde primitieve operaties.
'(test-b
label
(test (op =) (reg b) (const 0))
(branch (label gcd-done))
(assign t (op rem) (reg a) (reg b))
(assign a (reg b))
(assign b (reg t))
(goto (label test-b))
Lijst van intructies
gcd-done)))
label
Uitvoeren van bovenstaande machine:
1
,2 Syntax voor eenvoudige registermachineprogramma’s
• een registermachineprogramma is een reeks van instructies en labels
o elk label is een symbool met een unieke naam: <label-name>
o elke instructie is van een van de volgende vormen:
(assign <register-name> <inputi>)
(assign <register-name> (op <operation-name>) <input1> ... <inputn>)
(perform (op <operation-name>) <input1> ... <inputn>)
(test (op <operation-name>) <input1> ... <inputn>)
(branch (label <label-name>))
(goto (label <label-name>))
o waarbij elke <inputi> van een van volgende vormen is:
(reg <register-name>)
(const <constant-value>)
3 Poging om tweemaal dezelfde procedure te berekenen
Eerste poging
Slecht!
o Machine met dubbel aantal registers
o Duplicatie van instructies
2
, Tweede poging
Slecht!
• Niet langer dubbel aantal registers nodig MAAR
• Nog steeds duplicatie van instructies
3.1 Uitbreiding registermachinetaal met labels als waarden
• elke instructie kan naast een van voorgaande vormen, nu ook een van de volgende vormen
aannemen:
o goto is een onvoorwaardelijke, directe sprong
(assign <register-name> (label <label-name>))))
(goto (reg <register-name>))
3
Voordelen van het kopen van samenvattingen bij Stuvia op een rij:
√ Verzekerd van kwaliteit door reviews
Stuvia-klanten hebben meer dan 700.000 samenvattingen beoordeeld. Zo weet je zeker dat je de beste documenten koopt!
Snel en makkelijk kopen
Je betaalt supersnel en eenmalig met iDeal, Bancontact of creditcard voor de samenvatting. Zonder lidmaatschap.
Focus op de essentie
Samenvattingen worden geschreven voor en door anderen. Daarom zijn de samenvattingen altijd betrouwbaar en actueel. Zo kom je snel tot de kern!
Veelgestelde vragen
Wat krijg ik als ik dit document koop?
Je krijgt een PDF, die direct beschikbaar is na je aankoop. Het gekochte document is altijd, overal en oneindig toegankelijk via je profiel.
Tevredenheidsgarantie: hoe werkt dat?
Onze tevredenheidsgarantie zorgt ervoor dat je altijd een studiedocument vindt dat goed bij je past. Je vult een formulier in en onze klantenservice regelt de rest.
Van wie koop ik deze samenvatting?
Stuvia is een marktplaats, je koop dit document dus niet van ons, maar van verkoper lennyS. Stuvia faciliteert de betaling aan de verkoper.
Zit ik meteen vast aan een abonnement?
Nee, je koopt alleen deze samenvatting voor €3,48. Je zit daarna nergens aan vast.