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.
Esta asignatura provee a los estudiantes de capacidades y entrenamiento para:
- Aprender conceptos fundamentales de lenguajes de programación.
- Familiarizarse con los métodos y herramientas para la sistematización de las propiedades de los lenguajes de programación
- Reconocer aspectos comunes en lenguajes de programación desestimando las diferencias superficiales.
- Conocer nociones fundamentales sobre paradigmas de programación.