Temario

Temario de la Cursada

A continuación una lista de diapositivas a los temas que vemos en la materia

UnidadTema
Material Ejercicios/ Ejemplos
 0 Sistemas de Tipos- Intro a Sistemas de Tipos
- Generics (?)
 
1 Mixins- Intro a Ruby
- Mixins
 
2 Metaprogramación - Metaprogramación 
3 Influencias de FP en OOP - Intro a Scala
 - FP + OOP (scala)
 


Temario Ampliado

Este es  un conjunto de apuntes más completo que incluye temas relacionados a los que vemos en la materia, pero que quizás no vemos en la cursada. Aunque lo vimos otras cursadas.
Sirve como referencia para entender mejor los temas
  • Conceptos Generales
            Definición de Tipo. Tipo en el paradigma de objetos.
            Checkeos.
            Tipado estático y dinámico.
            Fuertemente y débilmente tipado. 
            Tipado Nominal, Estructural y Mixto.
            Duck typing.
            Sistemas de checkeos de tipos opcionales.
            Dispatching & Binding. Late binding. Multiple dispatch (multimethods).
            Design By Contract.

            Closures. Open Clases.
            Mixins & Traits.
            Prototype-Oriented Programming.
            Aspect-Oriented Programming (AOP).
            Behavioural completeness.
            Revisión de los patrones de diseño.

            Metraprogramación: reflection, introspection, self-modification e intercession. 
            Meta-Objects. MOP. 
            Bonus: Mirrors.
  • Programación Declarativa
  • Concepto de declaratividad. Caracterísiticas. 
    Implementaciones y ejemplos.
    Ventajas: abstracción, portabilidad, paralelismo.
    Relación con DSLs y metaprogramación.
    Lenguajes con características declarativas.
  • Lenguajes Específicos de Dominio
    Concepto de DSL. General Purpose Language vs Domain-Specific Language. Características. 
    Objetivos de un DSL. Tipos de DSL: Compilados, interpretados; Traductores; Embebidos. Complejidades de creación de un DSL.
    Modelo Semántico.
    Gramática: concepto, relación con modelo semántico, proceso de diseño.
    Validaciones y checkeos.
    Procesamiento: Generadores de código, Intérprete (transformaciones modelo a modelo).
    Editores de texto.
    Ejemplos de DSLSQL, pic2plot (diagramas de secuencia), comando linux sed, TCP/IP, Ruby on Rails.Comparación con un API java.
    Construcción de un DSL con XText.
           
Comments