Curso de Lenguajes de Programación en la Universidad Nacional de Colombia. El objeto de estudio de esta asignatura es conocer la estructura y esencia de los lenguajes de programación y, a partir de ahí, abordar el diseño y construcción de un lenguaje de programación. Para el desarrollo satisfactorio de esta asignatura es importante que el estudiante tenga sólidos conocimientos de lógica de programación y matemáticas discretas; además, haber utilizado más de un lenguaje de programación.
Personal Docente
Profesor Asociado
Asignatura
Lenguajes de Programación
Código SIA: 2025966
Créditos: 3
Departamento de Ingeniería de Sistemas e Industrial
Facultad de Ingeniería
Universidad Nacional de Colombia
Sede Bogotá
a. Conceptos previos: lenguajes y gramáticas.
b. Conceptos previos: autómatas.
c. Lenguajes de programación y Sistemas de procesamiento del lenguaje
d. Rol de los lenguajes de programación (taller: aplicaciones)
e. Estructura de un procesador de lenguaje
a. Alfabeto, lexemas y tokens.
b. Lenguajes regulares, expresiones regulares y reconocimiento de tokens.
c. Generadores y construcción de analizadores léxicos.
Práctica 1:
Enunciado: Analizador léxico (Sustentación: 02/10/2019)
Enlace entrega: aquí
a. Conceptos de análisis sintáctico y diseño de gramáticas.
i. Ambigüedad.
ii. Asociatividad y precedencia de operadores.
b. Análisis sintáctico descendente (ASD).
c. Construcción de analizadores sintácticos: condición LL(1), LL(k), LL(*), ASDR.
Práctica 2: analizador sintáctico SR
Fecha de entrega y sustentación: lunes 30/10/2019
Enlace entrega: aquí
d. Generadores de analizadores sintácticos.
Ejemplos: traductor simple (listeners)
Tutorial intérpretes (visitors)
a. Gramática de atributos,
b. Traducción dirigida por sintaxis (TDS), definición dirigida por sintaxis (DDS).
c. Esquemas de traducción dirigida por sintaxis (ETDS).
TDS - DDS - ETDS
d. Generación de código intermedio.
Ejercicios TDS - GenCod
Práctica 4: Sustentación traductor/intérprete
Fecha de entrega y sustentación: miércoles 13/11/2019
Enlace de entrega: aquí
Enlace ENTREGA
Presentaciones 2019-2 (acceda aquí a las diapositivas y materiales)
a. Paradigmas de programación: un enfoque histórico por Daniel Aranda (q.e.p.d.)
b. Programación Lógica (18/11) Teoría - Video - Encuesta
Tutorial Prolog - Práctica - Video - Encuesta
c. Programación Funcional (20/11) Teoría - Video - Encuesta
Tutorial Haskell - Práctica - Video - Encuesta
d. Programación Paralela (25/11) Teoría - Video - Encuesta
Tutorial Julia - Práctica - Video - Encuesta
e. Programación Concurrente (27/11) Teoría - Video - Encuesta
Tutorial Rust - Práctica - Video - Encuesta
f. Programación Orientada a Aspectos (02/12) Teoría - Video - Encuesta
Tutorial AspectJ - Práctica - Video - Encuesta
Propuesta (antes 27/11/2019)
Entrega y sustentación
Grupo 01 (última actualización: 08/02/2020)