Dit is de samenvatting van het eerste 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.
EINDRESULTAAT: 16/20
Hoofdstuk 1: Meta-circulaire interpretatie
1 Interpreters
“An interpreter (or evaluator) for a programming language is a procedure that, when applied to an
expression of the language, performs the actions required to evaluate that expression.”
= een programma
Waarom bestuderen?
• interpreters dwingen taalontwerpers (en studenten) semantiek expliciet te maken
o precisie en volledigheid zijn vereist om een proces in een programmeertaal uit te
drukken
▪ volgorde van de evaluatie van argumenten voor een functie-applicatie
▪ omgevingsmodel zonder figuren
▪ iteratief proces voor recursieve procedure via staartrecursie-optimalisatie
• interpreters stellen taalontwerpers (en studenten) in staat alternatieve semantieken te
onderzoeken
o nieuwe soorten expressies ondersteunen
▪ if-let, while, throw …
o nieuwe syntax of semantiek voor expressies
▪ argumenten voor een functie-applicatie pas evalueren wanneer hun waarde
nodig is
▪ dynamisch bereik in plaats van lexicaal bereik
• interpreters worden vaak als uitbreidingsmedium binnen applicatie gebruikt
(+ 1 2)
+ = operator
1, 2 = operands
Volgorde van evaluatie operands is afhankelijk van de implementatie → interessant om effecten te
bestuderen.
1.1 Een meta-circulaire interpreter voor Scheme
Meta(in scheme)-cirulaire(aanvaard eigen definitie) interpreter(tolk)
1
Samenvatting Interpretatie van Computerprogramma’s I
,1.1.1 Interpretatie-fasen: read-eval-print
s-expressie = symbolische expressie
• evaluator is een lijstbewerkingsprogramma!
o we gebruiken domein-specifieke abstracties voor car en cdr
(define (driver-loop)
(prompt-for-input input-prompt)
(let ((input (read)))
Verwacht invoer van de gebruiker.
(let ((output (eval input the-global-environment)))
Eval input the-global-env = kern van de code → verwerkt de invoer
van de gebruiker
(announce-output output-prompt)
(user-print output)))
Output (= verwerkte invoer) wordt terug gegeven
(driver-loop))
(define the-global-environment (setup-environment))
De globale omgeving wordt geinitialiseerd als een setup-env =
omgeving met primitieve uitdrukkingen die ondersteund worden.
(driver-loop)
Driver-loop wordt opgeroepen
2
Samenvatting Interpretatie van Computerprogramma’s I
(define (user-print object)
(if (compound-procedure? object)
(display (list 'compound-procedure
(procedure-parameters object)
(procedure-body object)
'<env>))
(display object)))
Procedure equivalent aan display behalve voor expressies die naar
een procedure als waarde evalueren.
1.2.2 Read-eval-print loop: read
• vraagt de gebruiker om een string als invoer
• splitst de ingegeven string in een lineaire reeks van tokens
• vormt de reeks van tokens om naar een boom in de vorm van een geldige s-expressie
eval evalueert operator naar procedure,
evalueert operands naar lijst van waarden
apply past procedure toe op lijst van waarden,
roept eval om de procedure-body te evalueren
• Werken steeds samen.
3
Samenvatting Interpretatie van Computerprogramma’s I
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 €2,99. Vous n'êtes lié à rien après votre achat.