2.5.21 FPL/Construcciones de Programación Avanzadas
Temas:
Non Core
- Mecanismos de encapsulación
- Evaluación diferida (delayed evaluation) y flujos infinitos (infinite streams)
- Comparar y contrastar evaluación diferida vs evaluación ansiosa (eager)
- Unificación vs aserción vs evaluación de expresiones
- Abstracciones de control: manejo de excepciones, continuaciones (continuations), mónadas (monads).
- Abstracciones orientadas a objetos: herencia múltiple, mixins, rasgos (traits), multimétodos (multimethods)
- Metaprogramación: macros, programación generativa, desarrollo basado en modelos (model-based development)
- Manipulación de cadenas mediante coincidencia de patrones (pattern-matching) (expresiones regulares)
- Evaluación dinámica de código ("eval")
- Soporte del lenguaje para verificar aserciones, invariantes y pre/post-condiciones
- Lenguajes específicos del dominio, como lenguajes de bases de datos, lenguajes de ciencia de datos, lenguajes de computación embebida, lenguajes síncronos, lenguajes de interfaz de hardware
- Modelos y lenguajes de computación de alto rendimiento masivamente paralelos
Aprendizaje esperado (Learning Outcomes):
NonCore:
- Usar varias construcciones e idiomas de programación avanzados correctamente [Usar]
- Discutir cómo varias construcciones de programación avanzadas tienen como objetivo mejorar la estructura del programa, la calidad del software y la productividad del programador [Debatir]
- Discutir cómo varias construcciones de programación avanzadas interactúan con la definición e implementación de otras características del lenguaje [Debatir]
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM