1_4 disciplina de tipos.pptx

59
MTI. Rosa Imelda García Chi Programación Lógica y Funcional PLYF UNIDAD 1. Conceptos Fundamentales Enero-Junio 2014 MTI. Rosa Imelda García Chi

Upload: rosa-imelda-garcia-chi

Post on 20-Jan-2016

162 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

PLYFUNIDAD 1. Conceptos

FundamentalesEnero-Junio 2014

MTI. Rosa Imelda García Chi

Page 2: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

1.4 DISCIPLINA DE TIPOSPROGRAMACIÓN LÓGICA FUNCIONAL

Page 3: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

1.4. Disciplina de Tipos

Page 4: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Propósito de la disciplina de tipos

• En los lenguajes de programación con disciplina de tipos, cada tipo representa una colección de valores (datos) similares.

• Una función cuyo tipo sea A1->…An->R espera n parámetros con tipos A1,…,An y devuelve un resultado de tipo R.

• El conocer los tipos de las funciones ayuda a documentar los programas y a evitar errores en tiempo de ejecución

Page 5: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Haskell y otros

lenguajes funcionales utilizan el

sistema de tipos de

Milner que tienen dos

características

fundamentales:

• Disciplina estática de Tipos

• Polimorfismo

Page 6: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Disciplina estática de Tipos

Page 7: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Polimorfismo

Un programa bien tipado puede incluir definiciones de funciones

polimórficas.

El polimorfismo permite que una misma función se pueda aplicar a parámetros de diferentes tipos,

dependiendo del contexto en el quela función se utilice.

Page 8: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Inferencia de tipos

Page 9: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 10: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

El ejemplo motiva que al formular reglas de inferencia de tipos es necesario indicar explícitamente (por medio de una cuantificación universal) aquellos parámetros de un tipo que se pueden particularizar reemplazándolos por tipos concretos cualesquiera.

Con esta motivación, se distinguirá entre los tipos simples y los tipos genéricos que incluyen parámetros cuantificados universalmente.

Page 11: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Tipos simples y genéricos

Page 12: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 13: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 14: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 15: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 16: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 17: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Reglas de inferencias de Tipos

Page 18: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 19: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Ahora ya se pueden formular las reglas de inferencia de tipos.

Cada una de ellas va a ser de la forma

Page 20: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 21: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 22: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 23: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 24: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 25: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 26: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 27: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 28: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Uso de las reglas de inferencia de tipos

A continuación, se muestran algunos ejemplos de inferencia de tipos.En cada caso se trata de demostrar una afirmación de la forma en varios pasos, utilizando las reglas que acabamos de formular.Los dos primeros ejemplos ilustran el uso de las reglas más básicas

Page 29: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 30: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 31: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 32: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 33: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 34: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 35: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Tipo principal de una expresión

Page 36: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Intuitivamente, el primero de los tres tipos anteriores es más general que los otros dos.

Para precisar cuando se considera que un tipo es más general que otro, damos las siguiente definición:

Page 37: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 38: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 39: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Clases de tipos y tipos cualificados

Page 40: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 41: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Declaraciones de clase y de ejemplar

• Las clases de tipos se definen mediante declaraciones de clase, de la forma:

• Class CL a where

Page 42: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 43: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 44: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 45: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 46: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 47: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 48: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 49: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Subclase y herencia

Page 50: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 51: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 52: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 53: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Ejemplos de uso de tipos cualificados

Page 54: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 55: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Los ejemplos muestran que un tipo cualificado puede tener algunos parámetros completamente genéricos y

otros restringidos de manera que solo se pueden sustituir por ejemplares de ciertas clases de tipos.

Page 56: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Algunas clases de tipos predefinidos en Haskell

Page 57: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 58: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

Page 59: 1_4 Disciplina de Tipos.pptx

MTI. Rosa Imelda García ChiProgramación Lógica y Funcional

¡Por su atención gracias!