4.8.2.2 Sistemas de tipos básicos (2 horas) [Habilidades a,b,i]

Referencias Bibliográficas: [Stroustrup, 2013a,Deitel, 2017] Temas
  1. Tipos como conjunto de valores junto con un conjunto de operaciones.
    1. Tipos primitivos (p.e. números, booleanos)
    2. Composición de tipos construídos de otros tipos (p.e., registros, uniones, arreglos, listas, funciones, referencias)
  2. Declaración de modelos (enlace, visibilidad, alcance y tiempo de vida).
  3. Vista general del chequeo de tipos.
Objetivos de Aprendizaje
  1. Tanto para tipo primitivo y un tipo compuesto, describir de manera informal los valores que tiene dicho tipo [Familiarizarse]
  2. 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]
  3. Describir ejemplos de errores de programa detectadas por un sistema de tipos [Familiarizarse]
  4. 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]
  5. Dar un ejemplo de un programa que no verifique tipos en un lenguaje particular y sin embargo no tenga error cuando es ejecutado [Familiarizarse]
  6. Usar tipos y mensajes de error de tipos para escribir y depurar programas [Usar]
  7. Explicar como las reglas de tipificación definen el conjunto de operaciones que legales para un tipo [Familiarizarse]
  8. Escribir las reglas de tipo que rigen el uso de un particular tipo compuesto [Usar]
  9. Explicar por qué indecidibilidad requiere sistemas de tipo para conservadoramente aproximar el comportamiento de un programa [Familiarizarse]
  10. Definir y usar piezas de programas (tales como, funciones, clases, métodos) que usan tipos genéricos, incluyendo para colecciones [Usar]
  11. Discutir las diferencias entre, genéricos (generics), subtipo y sobrecarga [Familiarizarse]
  12. 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