La materia tiene por objetivo que l@s sean capaces de utilizar tecnologías y conceptos de programación que extienden el modelo orientado a objetos clásico. Además que conozcan tecnologías y conceptos modernos que se utilizan con frecuencia en la industria.
Modos de Cursada: Cuatrimestral Presencial
Horas Semanales: 4 horas
Demanda de tiempo en casa semanal: 4 horas
Sitio web:
- Aún no disponible
Programa de la materia:
Contenidos Mínimos:
- Introducción a los sistemas de tipos y chequeo de tipos en un lenguaje de programa-cion con objetos: tipos nominales y estructurales, tipado explícito e implícito. Duck typing. Inferencia de tipos. Esquemas de binding, early / late binding.
- Variantes del paradigma de objetos. Bloques y closures. Non-local returns. Herencia simple y múltiple; mixins y traits.
- Programación orientada a objetos basada en prototipos. Introducción a la programación orientada a aspectos. Open classes. Extensiones al paradigma de objetos mediante la introducción de conceptos provenientes del paradigma funcional.
- Desarrollo de aplicaciones sencillas utilizando las variantes del paradigma de objetos. Construcción de programas multilenguaje y multiparadigma. Implicancias en el diseño, patrones de diseño en las diferentes variantes del paradigma, behavioral completeness.
- Meta programación, programación reflexiva, introspección, self-modification. Mirrors.
Lenguajes específicos de dominio (DSL). Clasificación de los DSLs: compilados, interpretados; traductores; embebidos. Creación de DSLs. Programación declarativa.