Gaona Barragan - u3 t1

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