Upload
ariel-gaona-barragan
View
214
Download
0
Embed Size (px)
Citation preview
8/18/2019 Gaona Barragan - u3 t1
1/4
GAONA BARRAGAN JESUS ARIELUNIDAD 3 EVALUACION PEREZOSA
UNIDAD 3 EVALUACION PEREZOSA
3.1 ESTRATEGIA DE LA EVALUACION PEREZOSA
Una estrategia de evaluación es un conjunto de reglas para evaluar expresiones en un
lenguaje de programación.
Una estrategia de evaluación define cuándo y en qué orden los argumentos a una función
son evaluados, cuando se sustituyen en la función, y lo que la sustitución se forman.
Las estrategias de evaluación se dividen en dos grupos básicos, estrictos y no estrictos,
basados en cómo se manejan los argumentos de una función.
Estrategias Básicas
Una expresión que consta de una función aplicada a uno o más parámetros y que puede
ser "reducida" aplicando dica función la vamos a llamar !edex !educible #xpression$.
Tips!
%e adentro acia afuera o call&by&value
%e afuera acia adentro o call&by&name
#valuaciones que no terminan
De a"e#tr $acia a%&era ca''()*(+a'&e! esta estrategia elige el redex que está "más
adentro" entendiendo por esto al redex que no contiene otro redex. 'i existe más de un
redex que cumple dica condición se elige el que está más a la i(quierda.
Pr e,e-p'! mult )*+,+*$
aplicamos el primer *
mult ,+*$
aplicamos el *
mult ,-$
aplicamos mult
-
aplicamos
PROGRAMACION LOGICA Y FUNCIONAL1
8/18/2019 Gaona Barragan - u3 t1
2/4
GAONA BARRAGAN JESUS ARIELUNIDAD 3 EVALUACION PEREZOSA
)-
#sta estrategia asegura que los parámetros de una función están completamente
evaluados antes de que la función sea aplicada. /or eso se dice que los parámetros se
pasan por valor.
De a%&era $acia a"e#tr ca''()*(#a-e! elige el redex que está "más afuera"entendiendo por esto al redex que no está contenido en otro redex. 'i existe más de un
redex que cumple dica condición se elige el que está más a la i(quierda.
E,e-p'! mult )*+,+*$
aplicamos mult
)*+$ +*$
aplicamos el primer *
+*$
aplicamos *
-
aplicamos
)-
#l operador y el * no pueden ser aplicados asta que sus dos parámetros ayan sidoevaluados a n0meros. 1 las funciones que cumplen con esta propiedad las vamos a
llamar funciones estrictas.
E+a'&aci#es &e # ter-i#a#
2engan en cuenta la siguiente definición
inf 3 ) * inf
4ntentar reducir la expresión inf siempre nos va a dar como resultado una expresión más y
más grande independientemente de la estrategia de evaluación que usemos$
4nf
aplicamos inf
) * inf
aplicamos inf porque * es estricta$
PROGRAMACION LOGICA Y FUNCIONAL2
8/18/2019 Gaona Barragan - u3 t1
3/4
GAONA BARRAGAN JESUS ARIELUNIDAD 3 EVALUACION PEREZOSA
) * ) * inf$
aplicamos inf porque * es estricta$
... ) * ) * ) * ) * ) * ) * .... * inf $$$$$
/or ende, está evaluación nunca terminar5a.
'abiendo que
fst x,6$ 3 x
7onsideremos la expresión fst 8,inf$
3./ TECNICAS DE PROGRA0ACION UNCIONAL PEREZOSA
La semántica adoptada para el no determinismo es la de elección en la invocación call&
time coice$, por resultar más natural para la programación y más efica( en la ejecución alcorresponderse con el mecanismo de compartición.
#n el no&determinismo existen varias técnicas como son9
2écnica de :ac;trac;ing /rolog$9 'i una alternativa
8/18/2019 Gaona Barragan - u3 t1
4/4
GAONA BARRAGAN JESUS ARIELUNIDAD 3 EVALUACION PEREZOSA
CONCLUSION
#ntendimos que la evaluación pere(osa se considera una estrategia de evaluación que
retrasa el cálculo de una expresión asta que su valor sea necesario, y que también
puede evitar repetir la evaluación en caso de ser necesaria en ciertas ocasiones.
Unos de los beneficios de la programación pere(osa es el incremento en el rendimiento al
evitar cálculos innecesarios, y en tratar condiciones de error al evaluar expresiones
compuestas. ?tro de los beneficios es la capacidad de construir estructuras de datos
potencialmente infinitas y la capacidad que tiene para definir estructuras de control como
abstracciones, en lugar de operaciones primitivas.
La evaluación pere(osa puede también reducir el consumo de memoria de una aplicación,
ya que los valores se crean solo cuando se necesitan.
PROGRAMACION LOGICA Y FUNCIONAL 4