Referencias Bibliográficas: [Stroustrup, 2013b]
Temas
- Tipos como conjunto de valores junto con un conjunto de operaciones.
- Tipos primitivos (p.e. números, booleanos)
- Composición de tipos construídos de otros tipos (p.e., registros, uniones, arreglos, listas, funciones, referencias)
- Asociación de tipos de variables, argumentos, resultados y campos.
- Tipo de seguridad y los errores causados por el uso de valores de manera incompatible dadas sus tipos previstos.
- Metas y limitaciones de tipos estáticos
- Eliminación de algunas clases de errores sin ejecutar el programa
- Indecisión significa que un análisis estatico puede aproximar el comportamiento de un programa
- Tipos genéricos (polimorfismo paramétrico)
- Definición
- Uso de librerías genéricas tales como colecciones.
- Comparación con polimorfismo ad-hoc y polimorfismo de subtipos
- Beneficios complementarios de tipos estáticos y dinámicos:
- Errores tempranos vs. errores tardíos/evitados.
- Refuerzo invariante durante el desarrollo y mantenimiento del código vs. decisiones pospuestas de tipos durante la la creación de prototipos y permitir convenientemente la codificación flexible de patrones tales como colecciones heterogéneas.
- Evitar el mal uso del código vs. permitir más reuso de código.
- Detectar programas incompletos vs. permitir que programas incompletos se ejecuten
Objetivos de Aprendizaje
- Tanto para tipo primitivo y un tipo compuesto, describir de manera informal los valores que tiene dicho tipo [Usage]
- Para un lenguaje con sistema de tipos estático, describir las operaciones que están prohibidas de forma estática, como pasar el tipo incorrecto de valor a una función o método [Usage]
- Describir ejemplos de errores de programa detectadas por un sistema de tipos [Usage]
- Para múltiples lenguajes de programación, identificar propiedades de un programa con verificación estática y propiedades de un programa con verificación dinámica [Usage]
- Dar un ejemplo de un programa que no verifique tipos en un lenguaje particular y sin embargo no tenga error cuando es ejecutado [Usage]
- Usar tipos y mensajes de error de tipos para escribir y depurar programas [Usage]
- Explicar como las reglas de tipificación definen el conjunto de operaciones que legales para un tipo [Usage]
- Escribir las reglas de tipo que rigen el uso de un particular tipo compuesto [Usage]
- Explicar por qué indecidibilidad requiere sistemas de tipo para conservadoramente aproximar el comportamiento de un programa [Usage]
- Definir y usar piezas de programas (tales como, funciones, clases, métodos) que usan tipos genéricos, incluyendo para colecciones [Usage]
- Discutir las diferencias entre, genéricos (generics), subtipo y sobrecarga [Usage]
- Explicar múltiples beneficios y limitaciones de tipificación estática en escritura, mantenimiento y depuración de un software [Usage]
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM