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
Les avantages d'acheter des résumés chez Stuvia:
Qualité garantie par les avis des clients
Les clients de Stuvia ont évalués plus de 700 000 résumés. C'est comme ça que vous savez que vous achetez les meilleurs documents.
L’achat facile et rapide
Vous pouvez payer rapidement avec iDeal, carte de crédit ou Stuvia-crédit pour les résumés. Il n'y a pas d'adhésion nécessaire.
Focus sur l’essentiel
Vos camarades écrivent eux-mêmes les notes d’étude, c’est pourquoi les documents sont toujours fiables et à jour. Cela garantit que vous arrivez rapidement au coeur du matériel.
Foire aux questions
Qu'est-ce que j'obtiens en achetant ce document ?
Vous obtenez un PDF, disponible immédiatement après votre achat. Le document acheté est accessible à tout moment, n'importe où et indéfiniment via votre profil.
Garantie de remboursement : comment ça marche ?
Notre garantie de satisfaction garantit que vous trouverez toujours un document d'étude qui vous convient. Vous remplissez un formulaire et notre équipe du service client s'occupe du reste.
Auprès de qui est-ce que j'achète ce résumé ?
Stuvia est une place de marché. Alors, vous n'achetez donc pas ce document chez nous, mais auprès du vendeur lennyS. Stuvia facilite les paiements au vendeur.
Est-ce que j'aurai un abonnement?
Non, vous n'achetez ce résumé que pour €3,48. Vous n'êtes lié à rien après votre achat.