Asignatura | COMPILADORES | ||||||||
Área | Básicas de la Ingeniería | Nivel | VIII | ||||||
Código | CPI-82 | Pensum | |||||||
Correquisito(s) | Prerrequisito(s) | MII-72 | |||||||
Créditos | TPS | 2 | TIS | 4 | TPT | 32 | TIT | 64 |
2. JUSTIFICACIÓN
Se pretende que el estudiante adquiera los conocimientos básicos del funcionamiento de un compilador y las técnicas que se emplean en la construcción de los mismos, con la finalidad de disponer de una herramienta más para el diseño de cualquier otro tipo de sistema automatizado.
3. OBJETIVO GENERAL
Construir un compilador de capacidades básicas aplicando las técnicas y herramientas de programación. Dicho compilador incluirá los módulos para el análisis lexicográfico, análisis sintáctico, análisis semántico, generación de código intermedio y generación de código ejecutable.
4. OBJETIVOS ESPECÍFICOS
5. COMPETENCIAS Y CONTENIDOS TEMÁTICOS DEL CURSO
COMPETENCIAS | CONTENIDO TEMÁTICO | INDICADOR DE LOGRO |
Implementar un analizador léxico a partir de expresiones regulares de un lenguaje. | Presentación del curso - Introducción - Tipos sistemas compilación - Ambientes de compilación - Análisis y síntesis - Fases del proceso de compilación . |
Identifica las etapas correspondientes al proceso de traducción de programa fuente a ejecutable. |
Aspectos formales - Gramáticas y lenguajes formales - Forma de Backus-Naur - Técnicas de análisis - Grafos sintácticos |
Manipula las herramientas para el análisis de léxico. | |
Análisis de léxico -Lenguajes y gramáticas -Expresiones regulares - Autómatas finitos: determinísticos y no determinísticos. - El analizador léxico - Tabla de símbolos - Optimización - Generación analizador léxico | ||
Diseñar y construir un analizador sintáctico | Análisis de sintaxis - Análisis descendente - Gramáticas LL - Estrategia descendente recursiva - Análisis sintáctico tabular - Análisis ascendente - Gramáticas LR - Análisis por desplazamiento y reducción - Analizador sintáctico LR - Generador de analizadores sintácticos. |
Manipula las herramientas para el análisis de sintaxis. Representa y manipula expresiones regulares. |
Saber Implementar las reglas semánticas de un lenguaje sencillo | Análisis semántico - Patrones de Diseño - Tabla de Símbolos - Comprobación de tipos | |
Generación de código - Código intermedio - Traducción dirigida por la sintaxis - Declaraciones - Llamadas a procedimientos |
||
Manejo de errores - Clasificación de los errores - Manejo de los errores léxicos - Manejo de los errores sintácticos - Errores semánticos - Recuperación de errores |
Identifica errores y es capaz de depurarlos con la ayuda de las herramientas. | |
Generación de código ejecutable - La máquina objeto - Asignación de memoria - Asignación estática y dinámica - Paso de parámetros - Direccionamiento de variables - Representación de bloques básicos (por grafos acíclicos dirigidos) - Generación de código - Generadores de código | ||
Optimización de código - Fuentes para optimización - Análisis global flujo datos. - Mejora de código - Depuración código optimizado | ||
|
Algunos compiladores |
6.ESTRATEGIAS DIDÁCTICAS / METODOLÓGICAS
La metodología consiste en el aprendizaje basado en proyectos.
Por parte del docente:
Por parte del estudiante
deberán implementar partes del código de acuerdo con diseño que se lleve hasta el momento.
Medios utilizados:
7. ESTRATEGIAS DE SEGUIMIENTO Y EVALUACIÓN
INDICADORES DE LOGRO | ESTRATEGIA | PORCENTAJE |
Identifica las etapas correspondientes al proceso de traducción de programa fuente a ejecutable. | Prueba escrita | 20% |
• Manipula las herramientas para el análisis de léxico. | Proyecto en sala de cómputo Prueba escrita |
10% 10% |
Manipula las herramientas para el análisis de sintaxis. |
Proyecto en sala de cómputo Prueba escrita | 10% 10% |
Representa y manipula expresiones regulares. | Proyecto en sala de cómputo Prueba escrita |
10% 10% |
Identifica errores y es capaz de depurarlos con la ayuda de las herramientas. | Proyecto en sala de cómputo | 20% |
8. BIBLIOGRAFÍA
ROSENKRANTZ, STEARNS and LEWIS II. Compiler design Theory. Addison
Wesley. 1996
Wesley. 1996
HOLUB, Allen Compiler design in C. Addison Wesley. 1990
AHO, A. V.; LAM, M.; SETHI, R.; ULLMAN, J. D. (2008). Compiladores. Principios, Técnicas y Herramientas. Pearson - Addison-Wesley. 2da Edición. 1009 páginas
LOUDEN, K. (2004). Construcción de compiladores. Thomson Editores. 1ra Edición. 592 páginas.
PULIDO, E.;DE LA CRUZ M.;ORTEGA A.;ALFONSECA M. (2006). Compiladores e interpretes: teoría y práctica. Editorial Pearson Educación. 1ra Edición. 361 páginas.