5.13.4.6 Modelo de Ejecución y Memoria de Sistemas (8 horas) [Habilidades AG-C09,AG-C12]

Referencias Bibliográficas: [Stroustrup, 2013,Williams, 2019]

Temas

  1. Representación en tiempo de ejecución de abstracciones de datos como variables, arreglos, vectores, registros, elementos de datos basados en punteros como listas enlazadas y árboles, y objetos
  2. Estructuras de datos para traducción, ejecución, traducción y movilidad de código como pila, montón (heap), alias (compartición usando punteros), secuencia indexada y cadena
  3. Interfaz de C++ con otros lenguajes (FFI).
  4. Llamadas al sistema e interacción con el SO.
  5. E/S mapeada en memoria.
  6. Perfilado de rendimiento y evaluación comparativa.
  7. Técnicas de optimización para HPC.

Aprendizaje esperado (Learning Outcomes)

  1. Explicar cómo se ejecuta una construcción central del lenguaje, como abstracciones de datos y abstracciones de control [Usar]
  2. Explicar cómo las implementaciones de lenguajes de programación típicamente organizan la memoria en secciones de datos globales, texto, montón y pila, y cómo características como recursión y gestión de memoria se mapean a este modelo de memoria [Evaluar]
  3. Explicar por qué ocurren las fugas de memoria (memory leaks) y los problemas de punteros colgantes (dangling pointers), y qué puede hacer un programador para evitarlos/corregirlos [Usar]
  4. Perfilar y optimizar programas C++ para rendimiento [Usar].
  5. Interfazar código C++ con bibliotecas C [Usar].

Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM