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