1_4 Disciplina de Tipos.pptx

Post on 20-Jan-2016

164 views 0 download

Transcript of 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

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

1.4 DISCIPLINA DE TIPOSPROGRAMACIÓN LÓGICA FUNCIONAL

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

1.4. Disciplina de Tipos

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

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

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

Disciplina estática de Tipos

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.

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

Inferencia de tipos

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

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.

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

Tipos simples y genéricos

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

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

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

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

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

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

Reglas de inferencias de Tipos

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Tipo principal de una expresión

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:

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

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

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

Clases de tipos y tipos cualificados

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

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

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

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

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

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

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

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

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

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

Subclase y herencia

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

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

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

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

Ejemplos de uso de tipos cualificados

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

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.

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

Algunas clases de tipos predefinidos en Haskell

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

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

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

¡Por su atención gracias!