Referencias Bibliográficas: [Meyers, 2014,Stroustrup, 2013]
Temas
- Asignación y acceso de bajo nivel a estructuras de datos de alto nivel como tipos de datos básicos, arreglos n-dimensionales, vectores, registros y objetos
- Retorno de procedimiento como mecanismo de desasignación automática para elementos de datos locales en la pila
- Gestión manual de memoria: asignar, desasignar y reutilizar memoria del montón
- Gestión automática de memoria: recolección de basura (garbage collection) como técnica automatizada usando la noción de alcanzabilidad (reachability)
- Lvalues y rvalues en C++11/14/17/20.
- Constructores de movimiento y operadores de asignación
de movimiento.
- Referencias a valor-r y colapso de referencias.
- Patrón RAII (Adquisición de Recursos es Inicialización).
- Personalización de punteros inteligentes.
- Detección y prevención de fugas de memoria.
Aprendizaje esperado (Learning Outcomes)
- 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]
- 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 cómo se ejecuta una construcción central del lenguaje, como abstracciones de datos y abstracciones de control
[Evaluar]
- Implementar semántica de movimiento para optimización
de recursos [Usar].
- Diseñar clases RAII para gestión de recursos segura
ante excepciones [Usar].
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM