Compiladores y lenguajes

DATOS GENERALES

Código ICCD422
Pensum 2020
Horas semanales 6
Tipo Obligatoria
Asignaturas pre-requisitos Matemáticas computacionales y teoría de la computación
Asignaturas co-requisitos Ninguna
Unidad de organización curricular Unidad Profesional

RESULTADOS DE APRENDIZAJE

De conocimiento
Describir los fundamentos y conceptos de los Lenguajes de Bajo y Alto Nivel utilizados en el Desarrollo de Sistemas Informáticos tanto en la comprensión como en la creación de Traductores y Compiladores.
De destrezas Diseñar, construir y aplicar los conocimientos vinculados a los bloques de compilación para implementar prototipos funcionales.
De valores y actitudes Aplicar la ética profesional en la selección de compiladores y/o lenguajes para ambientes computacionales específicos.

CONTENIDO

Capítulo 1 Introducción
  1. Conceptos generales. Arquitectura básica de compiladores;
  2. Procesadores de lenguajes. Diagrama general de un Traductor;
  3. Traductores, ensambladores, compiladores, intérpretes y simuladores;
  4. Características, Similitudes y Diferencias de Lenguajes, Compiladores e intérpretes, y
  5. Ejecución de programas en el computador. Set de Instrucciones.
Capítulo 2 Análisis léxico
  1. Función del Analizador Lexicográfico. Tokens. Reconocimiento. Errores Lexicográficos;
  2. Cadenas y Lenguajes. Expresiones Regulares;
  3. Máquinas de Estado Finito Determinísticas y No Determinísticas;
  4. Autómatas con pila o Máquinas Push-Down. Herramientas de Análisis Léxico, y
  5. Utilización de Flex/Lex.
Capítulo 3 Análisis sintáctico y semántico
  1. Clasificación de las Gramáticas;
  2. Producciones y árboles de derivación;
  3. Procesamiento top-down y bottom-up;
  4. Traducción dirigida por la sintaxis. Tipos de atributos+;
  5. Utilización de Bison/Yacc;
  6. Tipos: datos primitivos y referenciales;
  7. Equivalencia de Expresiones, y
  8. Conversiones.
Capítulo 4 Generación de código
  1. El proceso de generación de código;
  2. La Máquina. Aspectos de diseño;
  3. Distribución y Asignación de registros, y
  4. Organización de la memoria en tiempo de ejecución.
Capítulo 5 Optimización de código
  1. El proceso de optimización;
  2. Métodos de la optimización, y
  3. Transformaciones para mejorar el código.
Capítulo 6 Tópicos complementarios
  1. Principios de diseño de lenguajes de programación. Ortogonalización, y
  2. Llamadas externas y librerías del sistema.

Back to top