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
The benefits of buying summaries with Stuvia:
Guaranteed quality through customer reviews
Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.
Quick and easy check-out
You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.
Focus on what matters
Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!
Frequently asked questions
What do I get when I buy this document?
You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.
Satisfaction guarantee: how does it work?
Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.
Who am I buying these notes from?
Stuvia is a marketplace, so you are not buying this document from us, but from seller lennyS. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for $3.75. You're not tied to anything after your purchase.