Objetivo general
TEMARIO
1.
INTRODUCCIÓN. CONCEPTOS GENERALES.
1.1.
Clasificación de los lenguajes de programación. Paradigmas de programación.
1.2.
Elementos esenciales de un lenguaje de programación.
1.3.
Abstracciópn de un lenguaje de programación.
2.
TRADUCTORES.
2.1.
Diferencias entre intérpretes y compiladores.
2.2.
Estructura general de un compilador.
2.3.
Estructura general de un interpretador.
2.4.
Implementación de un interpretador genérico.
3.
PROGRAMACIÓN FUNCIONAL.
3.1.
Recursividad como base del control de flujo.
3.2.
Listas como esencia en el manejo de datos.
3.3.
Módulos como elementos de primer orden (first-class functions).
3.4.
Asociaciones dinámicas (binding dinámico) y evaluación tardía (lazy evaluation).
3.5.
Lenguajes representativos: Lisp, Scheme, APL, SASL, ML.
4.
LENGUAJES ORIENTADOS A OBJETOS.
4.1.
Características esenciales de los lenguajes orientados a objetos.
4.2.
Ejemplos de lenguajes orientados a objetos: CLU, Smalltalk, Eiffel.
5.
PROGRAMACIÓN LÓGICA.
5.1.
Principios de la programación lógica.
5.2.
Bases para la programación en lenguaje Prolog.
6.
IMPLEMENTACIÓN DE TRADUCTORES.
6.1.
Proceso de compilación a código máquina.
6.2.
Administración de memoria.
6.3.
Herramientas para construir compiladores: LEX y YACC.
7.
OTROS PARADIGMAS DE PROGRAMACIÓN. TÓPICOS COMPLEMENTARIOS.
7.1.
Lenguajes manejadores de bases de datos.
7.2.
Lenguajes para prototipeo.
7.3.
"Little languages".
7.4.
Lenguajes gráficos.
7.5.
Programación paralela distribuida.
7.6.
Lenguajes de flujo de datos.