• ¿Documento equivocado? Cámbialo gratis
  • Escrito por estudiantes que aprobaron
  • Inmediatamente disponible después del pago
  • Leer en línea o como PDF
Vender
¿Dónde estudias?
Tu idioma
Document preview thumbnail
Vista previa 2 fuera de 11 páginas
Resumen

Samenvatting hoofdstuk 7: Evaluator met Expliciete Controle

Document preview thumbnail
Vista previa 2 fuera de 11 páginas

Dit is de samenvatting van het zevende 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 EINDRESULTAAT: 16/20

Vista previa del contenido

Hoofdstuk 7: Evaluator met expliciete
controle
1 Motivatie
• In de evaluatoren tot nu toe: volgorde waarin de operands van een functie-applicatie worden
geëvalueerd hangt af van de implementatie van cons
o Cons is primitief dus we zijn afhankelijk van iemand anders zijn implementatie van
cons
• Met deze evaluator wordt de volgorde waarin operands geëvalueerd worden veel explicieter.
o Verder ook duidelijk hoe staartrecursie-optimalisatie werkt
• Geïmplementeerd als registermachine
o Evaluator voor Scheme in registermachinetaal, bovenop simulator voor
registermachinetaal geschreven in Scheme, bovenop DrRacket

2 Definitie van registermachine voor ec-eval
(define eceval
(make-machine
'(exp env val proc argl continue unev)
Lijst van benodigde registers
eceval-operations
Hulpprocedures van de meta-circulaire evaluator zijn beschikbaar als
primitieven
'(
read-eval-print-loop
…
registermachinecode
)))

• exp bevat de te evalueren uitdrukking
• env bevat de omgeving waarbinnen de evaluatie gebeurt
o pointer naar de omgeving
• val bevat de uit evaluatie resulterende waarde
• continue ondersteunt verschillende sprongen naar zelfde subroutine
o enorm belangrijk voor implementatie
• proc bevat het procedure-object waarnaartoe een operator evalueert
• unev bevat een lijst van nog te evalueren expressies (bv. operanden)
• argl bevat de waarden waarnaartoe een lijst van operanden evalueert




1

, 3 Implementatie van read-eval-print lus
(define (get-global-environment)
the-global-environment)

read-eval-print-loop
(perform (op initialize-stack))
Nieuwe aanroep v/d REPL --> stack opnieuw initialiseren waardoor
brol van vorige uitvoeringen weg is.
(perform (op prompt-for-input) (const ";;; EC-Eval input:"))
Vragen naar invoer gebruiker
(assign exp (op read))
Exp = wat de gebruiker ingeeft
(assign env (op get-global-environment))
Env terug op globale omgeving zetten
(assign continue (label print-result))
Cont begint op subroutine print-result
(goto (label eval-dispatch))
Sprong naar subroutine eval-dispatch
print-result
(perform (op announce-output) (const ";;; EC-Eval value:"))
(perform (op user-print) (reg val))
Uitprinten van resultaat = printen inhoud val register
(goto (label read-eval-print-loop))
Nieuwe oproep van REPl nadat resultaat geprint werd
unknown-expression-type
(assign val (const unknown-expression-type-error))
(goto (label signal-error))
unknown-procedure-type
(restore continue)
Zie sprong vanuit apply-dispatch
(assign val (const unknown-procedure-type-error))
(goto (label signal-error))
signal-error
algemene subroutine om fout mee te melden
(perform (op user-print) (reg val))
Print het soort fout --> staat in register val
(goto (label read-eval-print-loop))
Nieuwe oproep REPL



4 Syntactische analyse
eval-dispatch
subroutine die aan de hand van het soort expressie doorverwijst naar
gespecialiseerde subroutines.
(test (op self-evaluating?) (reg exp))
(branch (label ev-self-eval))
(test (op variable?) (reg exp))
(branch (label ev-variable))
(test (op quoted?) (reg exp))

2

Libro relacionado
 image
Harold Abelson, Gerald Jay Sussman Structure & Interpretation Computer
Editorial: Desconocido ISBN: 9780262510875 Edición: Desconocido

Información del documento

Estudio
¿Un libro?
No
¿Qué capítulos están resumidos?
Hoofdstuk 5.4
Subido en
27 de julio de 2022
Número de páginas
11
Escrito en
2019/2020
Tipo
Resumen
$4.59

¿Documento equivocado? Cámbialo gratis Dentro de los 14 días posteriores a la compra y antes de descargarlo, puedes elegir otro documento. Puedes gastar el importe de nuevo.
Escrito por estudiantes que aprobaron
Inmediatamente disponible después del pago
Leer en línea o como PDF

Seller avatar
Los indicadores de reputación están sujetos a la cantidad de artículos vendidos por una tarifa y las reseñas que ha recibido por esos documentos. Hay tres niveles: Bronce, Plata y Oro. Cuanto mayor reputación, más podrás confiar en la calidad del trabajo del vendedor.
lennyS
4.5
(6)
Vendido
167
Seguidores
62
Artículos
34
Última venta
2 meses hace




Por qué los estudiantes eligen Stuvia

Creado por compañeros estudiantes, verificado por reseñas

Calidad en la que puedes confiar: escrito por estudiantes que aprobaron y evaluado por otros que han usado estos resúmenes.

¿No estás satisfecho? Elige otro documento

¡No te preocupes! Puedes elegir directamente otro documento que se ajuste mejor a lo que buscas.

Paga como quieras, empieza a estudiar al instante

Sin suscripción, sin compromisos. Paga como estés acostumbrado con tarjeta de crédito y descarga tu documento PDF inmediatamente.

Student with book image

“Comprado, descargado y aprobado. Así de fácil puede ser.”

Alisha Student

Preguntas frecuentes