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
Laura Vanessa Bohóquez Ramírez
Asistente docente
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.
Taller LGA (Lenguajes, Gramáticas y 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:
ChocoPy: Manual de referencia y documentación
Enunciado: Analizador léxico
Fecha de entrega y sustentación: lunes 13 de abril 2020
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
Fecha de entrega y sustentación: lunes 11 de mayo 2020
Enlace entrega: aquí
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.
e. Generadores de analizadores sintácticos.
Tutorial traductores (listeners)
Tutorial intérpretes (visitors)
Práctica 3: Sustentación traductor/intérprete
Fecha de entrega y sustentación: miércoles 27 de mayo 2020
Enlace de entrega: aquí
Enlace ENTREGA
Presentaciones 2020-1 (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 (1 Junio 2020)
Tutorial Prolog
c. Programación Funcional (3 Junio 2020)
Tutorial Elm
d. Programación Paralela (8 Junio 2020)
Tutorial Julia
e. Programación Concurrente (10 Junio 2020) Teoría
Tutorial Go - Práctica
f. Programación Orientada a Aspectos (17 Junio 2020) Teoría - Encuesta
Tutorial AspectJ - Práctica - Encuesta
Lenguajes de dominio específico (DSL)
Propuesta (hasta 1 junio 2020)
Entrega y sustentación (miércoles 24 de junio y miércoles 1 de julio 2020)
Sustentaciones (sesión 24 de junio 2020; sesión 1 julio 2020)
Grupo 01 (última actualización: 02/07/2020)