SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
INGENIERIA EN SISTEMAS
COMPUTACIONALES

MATERIA: PROGRAMACIÓN LÓGICA Y FUNCIONAL

CATEDRÁTICO: AGUILAR ORTIZ GABRIELA

ALUMNA: DE LA LUZ CASTELLANOS ERIKA

GRUPO: ISA AULA: I13 HORARIO: 10-11 HRS

SEMESTRE: AGO-DIC/2012

TRABAJO:
INVESTIGACIÓN
¿QUÉ ES LA EVALUACIÓN PEREZOSA?

Evaluación impaciente (eager): el evaluador hace todo lo que puede. Corresponde
a llamada por-valor.

Evaluación perezosa (lazy):



El evaluador hace solamente lo preciso. Corresponde a llamada pornecesidad.



Significa: Haz sólo lo que te pida un patrón a la izquierda de una ecuación o
cualificador (where o let).



Es una estrategia de evaluación que retrasa la evaluación de una expresión
hasta que el valor de esto realmente se requiera (evaluación no estricta) y
que también evita evaluaciones repetidas (compartimiento de ciencias
informáticas). El compartimiento puede reducir la duración de ciertas
funciones por un factor exponencial sobre otras estrategias de evaluación
no estrictas, como la llamada de nombre.

Las ventajas de la evaluación perezosa incluyen:



El rendimiento aumenta debido a evitación de cálculos innecesarios y
evitación de condiciones de error en la evaluación de expresiones
compuestas.



La capacidad de construir estructura de datos potencialmente infinita



La capacidad de definir estructura de control como abstracciones en vez de
como obras primitivistas.
2


La evaluación perezosa puede llevar a la reducción de la huella de
memoria, ya que los valores se crean cuando necesario. Sin embargo, con
la evaluación perezosa, es difícil combinarse con rasgos imperativos como
la excepción que se maneja (manejo de la excepción) y entrada/salida
(entrada/salida), porque el pedido de operaciones se hace indeterminado.
La evaluación perezosa puede introducir el agujero espacial. También, la
depuración es difícil.

ESTRATEGIAS DE PROGRAMACIÓN PEREZOSA

Para los ejemplos se considera la función

mult :: (Int,Int)  Int

mult (x,y) = x * y



Evaluación mediante paso de parámetros por valor (o por más internos):

mult (1+2,2+3)

= mult (3,5) [por def. de +]

= 3*5 [por def. de mult]

= 15 [por def. de *]



Evaluación mediante paso de parámetros por nombre (o por más externos):

mult (1+2,2+3)

3
= (1+2)*(3+5) [por def. de mult]

= 3*5 [por def. de +]



Evaluación con lambda expresiones

mult’ (1+2) (2+3)

= mult’ 3 (2+3) [por def. de +]

= (λy → 3*y) (2+3) [por def. de mult’]

= (λy → 3*y) 5 [por def. de +]

= 3*5 [por def. de +]

= 15 [por def. de *]

4

Más contenido relacionado

La actualidad más candente

Aplicaciones Distribuídas
Aplicaciones DistribuídasAplicaciones Distribuídas
Aplicaciones DistribuídasJavierialv
 
Plan de pruebas de software
Plan de pruebas de softwarePlan de pruebas de software
Plan de pruebas de softwareEdgardo Rojas
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTOUnidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTOGuillermo Hernandez Miranda
 
Arquitectura Basada En Componentes
Arquitectura Basada En ComponentesArquitectura Basada En Componentes
Arquitectura Basada En Componentesurumisama
 
Ingeniería inversa y reingeniería de software
Ingeniería inversa y reingeniería de softwareIngeniería inversa y reingeniería de software
Ingeniería inversa y reingeniería de softwareMoises Medina
 
Organización Del Centro De Cómputo
Organización Del Centro De CómputoOrganización Del Centro De Cómputo
Organización Del Centro De Cómputodjelektro
 
modelos de calidad de software
modelos de calidad de softwaremodelos de calidad de software
modelos de calidad de softwareHernan Espinoza
 
Análisis de arquitecturas de software
Análisis de arquitecturas de softwareAnálisis de arquitecturas de software
Análisis de arquitecturas de softwareJorge Rodriguez
 
Ingenieria de requerimientos 1
Ingenieria de requerimientos 1Ingenieria de requerimientos 1
Ingenieria de requerimientos 1jmpov441
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de SoftwareCamila Arbelaez
 
Protección y Seguridad de los sistemas operativos
Protección y Seguridad de los sistemas operativosProtección y Seguridad de los sistemas operativos
Protección y Seguridad de los sistemas operativosAquiles Guzman
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltosJansel M
 
Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de SoftwareMaricela Ramirez
 
Búsqueda Primero el Mejor
Búsqueda Primero el MejorBúsqueda Primero el Mejor
Búsqueda Primero el MejorTutor4uDev
 

La actualidad más candente (20)

Aplicaciones Distribuídas
Aplicaciones DistribuídasAplicaciones Distribuídas
Aplicaciones Distribuídas
 
Plan de pruebas de software
Plan de pruebas de softwarePlan de pruebas de software
Plan de pruebas de software
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTOUnidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
 
Arquitectura Basada En Componentes
Arquitectura Basada En ComponentesArquitectura Basada En Componentes
Arquitectura Basada En Componentes
 
Ingeniería inversa y reingeniería de software
Ingeniería inversa y reingeniería de softwareIngeniería inversa y reingeniería de software
Ingeniería inversa y reingeniería de software
 
Organización Del Centro De Cómputo
Organización Del Centro De CómputoOrganización Del Centro De Cómputo
Organización Del Centro De Cómputo
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
modelos de calidad de software
modelos de calidad de softwaremodelos de calidad de software
modelos de calidad de software
 
ISO/IEC 14598-5
ISO/IEC 14598-5ISO/IEC 14598-5
ISO/IEC 14598-5
 
Análisis de arquitecturas de software
Análisis de arquitecturas de softwareAnálisis de arquitecturas de software
Análisis de arquitecturas de software
 
Ingenieria de requerimientos 1
Ingenieria de requerimientos 1Ingenieria de requerimientos 1
Ingenieria de requerimientos 1
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software
 
tecnicas de revisión del software
tecnicas de revisión del softwaretecnicas de revisión del software
tecnicas de revisión del software
 
Protección y Seguridad de los sistemas operativos
Protección y Seguridad de los sistemas operativosProtección y Seguridad de los sistemas operativos
Protección y Seguridad de los sistemas operativos
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltos
 
Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de Software
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Analisis y Diseño de Sistemas II-2
Analisis y Diseño de Sistemas II-2Analisis y Diseño de Sistemas II-2
Analisis y Diseño de Sistemas II-2
 
Búsqueda Primero el Mejor
Búsqueda Primero el MejorBúsqueda Primero el Mejor
Búsqueda Primero el Mejor
 

123507620 que-es-la-evaluacion-perezosa-docx

  • 1. INGENIERIA EN SISTEMAS COMPUTACIONALES MATERIA: PROGRAMACIÓN LÓGICA Y FUNCIONAL CATEDRÁTICO: AGUILAR ORTIZ GABRIELA ALUMNA: DE LA LUZ CASTELLANOS ERIKA GRUPO: ISA AULA: I13 HORARIO: 10-11 HRS SEMESTRE: AGO-DIC/2012 TRABAJO: INVESTIGACIÓN
  • 2. ¿QUÉ ES LA EVALUACIÓN PEREZOSA? Evaluación impaciente (eager): el evaluador hace todo lo que puede. Corresponde a llamada por-valor. Evaluación perezosa (lazy):  El evaluador hace solamente lo preciso. Corresponde a llamada pornecesidad.  Significa: Haz sólo lo que te pida un patrón a la izquierda de una ecuación o cualificador (where o let).  Es una estrategia de evaluación que retrasa la evaluación de una expresión hasta que el valor de esto realmente se requiera (evaluación no estricta) y que también evita evaluaciones repetidas (compartimiento de ciencias informáticas). El compartimiento puede reducir la duración de ciertas funciones por un factor exponencial sobre otras estrategias de evaluación no estrictas, como la llamada de nombre. Las ventajas de la evaluación perezosa incluyen:  El rendimiento aumenta debido a evitación de cálculos innecesarios y evitación de condiciones de error en la evaluación de expresiones compuestas.  La capacidad de construir estructura de datos potencialmente infinita  La capacidad de definir estructura de control como abstracciones en vez de como obras primitivistas. 2
  • 3.  La evaluación perezosa puede llevar a la reducción de la huella de memoria, ya que los valores se crean cuando necesario. Sin embargo, con la evaluación perezosa, es difícil combinarse con rasgos imperativos como la excepción que se maneja (manejo de la excepción) y entrada/salida (entrada/salida), porque el pedido de operaciones se hace indeterminado. La evaluación perezosa puede introducir el agujero espacial. También, la depuración es difícil. ESTRATEGIAS DE PROGRAMACIÓN PEREZOSA Para los ejemplos se considera la función mult :: (Int,Int)  Int mult (x,y) = x * y  Evaluación mediante paso de parámetros por valor (o por más internos): mult (1+2,2+3) = mult (3,5) [por def. de +] = 3*5 [por def. de mult] = 15 [por def. de *]  Evaluación mediante paso de parámetros por nombre (o por más externos): mult (1+2,2+3) 3
  • 4. = (1+2)*(3+5) [por def. de mult] = 3*5 [por def. de +]  Evaluación con lambda expresiones mult’ (1+2) (2+3) = mult’ 3 (2+3) [por def. de +] = (λy → 3*y) (2+3) [por def. de mult’] = (λy → 3*y) 5 [por def. de +] = 3*5 [por def. de +] = 15 [por def. de *] 4