2.14.4 PL/Sistemas de tipos básicos (4 horas Core-Tier1)
Las horas-core tier2 serían bien gastadas tanto en los temas estratégicos Core-Tier2 y en un tratamiento menos superficial de los resultados Core-Tier1 aprendizaje topicsand.
Temas:
Core Tier1
- 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
Core Tier2
- 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 (Learning Outcomes):
Core-Tier1:
- Tanto para tipo primitivo y un tipo compuesto, describir de manera informal los valores que tiene dicho tipo [Familiarizarse]
- 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 [Familiarizarse]
- Describir ejemplos de errores de programa detectadas por un sistema de tipos [Familiarizarse]
- 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 [Usar]
- Dar un ejemplo de un programa que no verifique tipos en un lenguaje particular y sin embargo no tenga error cuando es ejecutado [Familiarizarse]
- Usar tipos y mensajes de error de tipos para escribir y depurar programas [Usar]
Core-Tier2:
- Explicar como las reglas de tipificación definen el conjunto de operaciones que legales para un tipo [Familiarizarse]
- Escribir las reglas de tipo que rigen el uso de un particular tipo compuesto [Usar]
- Explicar por qué indecidibilidad requiere sistemas de tipo para conservadoramente aproximar el comportamiento de un programa [Familiarizarse]
- Definir y usar piezas de programas (tales como, funciones, clases, métodos) que usan tipos genéricos, incluyendo para colecciones [Usar]
- Discutir las diferencias entre, genéricos (generics), subtipo y sobrecarga [Familiarizarse]
- Explicar múltiples beneficios y limitaciones de tipificación estática en escritura, mantenimiento y depuración de un software [Familiarizarse]
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM