fbpx
Wikipedia

Evaluación perezosa

En la teoría de lenguajes de programación, La evaluación perezosa (del inglés lazy evaluation) o llamada por necesidad es una estrategia de evaluación que retrasa el cálculo de una expresión hasta que su valor sea necesario, y que también evita repetir la evaluación en caso de ser necesaria en posteriores ocasiones. Esta compartición del cálculo puede reducir el tiempo de ejecución de ciertas funciones de forma exponencial, comparado con otros tipos de evaluación.

Los beneficios de la evaluación perezosa son:

  • El incremento en el rendimiento al evitar cálculos innecesarios, y en tratar condiciones de error al evaluar expresiones compuestas.
  • La capacidad de definir estructuras de control como abstracciones, en lugar de operaciones primitivas.

Este método de evaluación es comúnmente implementado encapsulando cada expresión en una función que, cuando sea computada, devolverá el valor deseado de la expresión. De esta manera, cuando el resultado sea necesitado, la función creada será ejecutada para conseguirlo.

La evaluación perezosa puede también reducir el consumo de memoria de una aplicación, ya que los valores se crean solo cuando se necesitan. Sin embargo, es difícil de combinar con las operaciones típicas de programación imperativa, como el manejo de excepciones o las operaciones de entrada/salida, porque el orden de las operaciones puede quedar indeterminado. Además, la evaluación perezosa puede conducir a fragmentar la memoria.

La evaluación perezosa es frecuentemente combinada con memoización, tal y como lo describe Jon Bentley en Writing Efficient Programs[1]​ (Escribiendo Programas Eficientes). Después de que el valor de una función sea computado para un parámetro o una serie de estos, el resultado es almacenado en una tabla de consulta que está organizada por los valores de estos parámetros; la próxima vez que se le llama a la función, la tabla es consultada para determinar si el resultado para esa combinación de parámetros está disponible. Si es el caso, la función devuelve dicho resultado. Si no, la función es evaluada y otro elemento es añadido a la tabla para reutilización posterior.

Lo contrario de la evaluación perezosa sería la evaluación acaparadora, o evaluación estricta, que es el modo de evaluación por defecto en la mayoría de los lenguajes de programación.

Referencias

  1. Bentley, Jon Louis. Writing Efficient Programs. Prentice-Hall, 1985. ISBN 978-0139702440


  •   Datos: Q573952

evaluación, perezosa, teoría, lenguajes, programación, evaluación, perezosa, inglés, lazy, evaluation, llamada, necesidad, estrategia, evaluación, retrasa, cálculo, expresión, hasta, valor, necesario, también, evita, repetir, evaluación, caso, necesaria, poste. En la teoria de lenguajes de programacion La evaluacion perezosa del ingles lazy evaluation o llamada por necesidad es una estrategia de evaluacion que retrasa el calculo de una expresion hasta que su valor sea necesario y que tambien evita repetir la evaluacion en caso de ser necesaria en posteriores ocasiones Esta comparticion del calculo puede reducir el tiempo de ejecucion de ciertas funciones de forma exponencial comparado con otros tipos de evaluacion Los beneficios de la evaluacion perezosa son El incremento en el rendimiento al evitar calculos innecesarios y en tratar condiciones de error al evaluar expresiones compuestas La capacidad de construir estructuras de datos potencialmente infinitas La capacidad de definir estructuras de control como abstracciones en lugar de operaciones primitivas Este metodo de evaluacion es comunmente implementado encapsulando cada expresion en una funcion que cuando sea computada devolvera el valor deseado de la expresion De esta manera cuando el resultado sea necesitado la funcion creada sera ejecutada para conseguirlo La evaluacion perezosa puede tambien reducir el consumo de memoria de una aplicacion ya que los valores se crean solo cuando se necesitan Sin embargo es dificil de combinar con las operaciones tipicas de programacion imperativa como el manejo de excepciones o las operaciones de entrada salida porque el orden de las operaciones puede quedar indeterminado Ademas la evaluacion perezosa puede conducir a fragmentar la memoria La evaluacion perezosa es frecuentemente combinada con memoizacion tal y como lo describe Jon Bentley en Writing Efficient Programs 1 Escribiendo Programas Eficientes Despues de que el valor de una funcion sea computado para un parametro o una serie de estos el resultado es almacenado en una tabla de consulta que esta organizada por los valores de estos parametros la proxima vez que se le llama a la funcion la tabla es consultada para determinar si el resultado para esa combinacion de parametros esta disponible Si es el caso la funcion devuelve dicho resultado Si no la funcion es evaluada y otro elemento es anadido a la tabla para reutilizacion posterior Lo contrario de la evaluacion perezosa seria la evaluacion acaparadora o evaluacion estricta que es el modo de evaluacion por defecto en la mayoria de los lenguajes de programacion Referencias Editar Bentley Jon Louis Writing Efficient Programs Prentice Hall 1985 ISBN 978 0139702440 Datos Q573952Obtenido de https es wikipedia org w index php title Evaluacion perezosa amp oldid 137049379, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos