Contenidos mínimos
Introducción e historia de los lenguajes de programación. Paradigmas de programación: Imperativo, Orientado a Objetos, Funcional, Lógico. Relaciones entre los distintos paradigmas. Entidades y ligaduras en lenguajes de programación. Sistema de tipos, niveles de polimorfismo. Encapsulamiento y abstracción. Conceptos de intérpretes y compiladores. Criterios de diseño y de implementación de lenguajes de programación. Semántica operacional de los lenguajes de programación a través de la máquina virtual (binding, variables, estructuras “run time”, pasaje de parámetros). Estructuras de control. Recursividad. Eventos. Excepciones. Concurrencia y paralelismo: formas de implementar concurrencia; concurrencia en lenguajes declarativos.