Referencias Bibliográficas: [Stroustrup, 2013,Williams, 2019]
Temas
- 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
- 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
- Interfaz de C++ con otros lenguajes (FFI).
- Llamadas al sistema e interacción con el SO.
- E/S mapeada en memoria.
- Perfilado de rendimiento y evaluación comparativa.
- Técnicas de optimización para HPC.
Aprendizaje esperado (Learning Outcomes)
- Explicar cómo se ejecuta una construcción central del lenguaje, como abstracciones de datos y abstracciones de control
[Usar]
- 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]
- 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]
- Perfilar y optimizar programas C++ para rendimiento
[Usar].
- 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