UNIVERSIDAD TECNOLÓGICA DE LOS ANDES FACULTAD DE INGENIERÍA CARRERA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA SÍLABO 1. DATOS ACADÉMICOS 1.1 Asignatura 1.2 Código 1.3 Pre Requisito 1.4 Créditos 1.5 Horas semanales 1.6 Ciclo Académico 1.7 Área de formación 1.8 Semestre Académico 1.9 Docente 1.10 Correo electrónico 1.11 Teléfono de contacto : Teoría de Compiladores : SI074 : Sistemas Digitales (SI052) : 04 : T: 03, P:02, Total = 05 horas : VII : FECI : 2011-II : Ing. Ronald Alberto Rentería Ayquipa : [email protected] : 969288692 2. CONTENIDOS TRANSVERSALES Educación en valores, responsabilidad, creatividad, razonamiento e identidad. 3. FUNDAMENTO El Curso de Teoría de Compiladores es una asignatura teórico práctica, que proporciona información sobre el proceso de compilación en general, permite al alumno de ingeniería de Sistemas e Informática tener una visión de los lenguajes de programación desde el punto de vista del constructor de compiladores o intérpretes. Permite ejercitar al estudiante en la preparación de fundamentos teóricos acerca de la estructura de un compilador, adentrarse en cada una de estas etapas, haciendo hincapié en las de mayor importancia como son: el análisis léxico, sintáctico y semántico. 4. COMPETENCIA A. Maneja los conceptos básicos, técnicas y complementos de la teoría de compiladores y aplica en la solución de problemas basados en lenguajes formales con responsabilidad. B. Aplica en el diseño y desarrollo de una aplicación a mediana escala valorando la importancia del proceso de compilación y la teoría de lenguajes formales verificando siempre responsabilidad en su proceder. 5. SUMILLA El curso consta de tres Unidades: UNIDAD I : TEORÍA DE AUTÓMATAS Y ANÁLISIS LÉXICO UNIDAD II : ANÁLISIS SINTÁCTICO Y SEMÁNTICO UNIDAD III : GENERACIÓN Y OPTIMIZACIÓN DE CÓDIGO 6. PROGRAMACIÓN DE LA ASIGNATURA Presentación Presentación del sílabo, define reglas generales de desarrollo del curso, procedimiento de evaluaciones y motivación para auto superación. Participa y negocia las condiciones de desarrollo de la asignatura. Asume el compromiso del desarrollo del curso. 2 1 de 4 Primera Unidad: TEORÍA DE AUTÓMATAS Y ANÁLISIS LÉXICO a. Total Horas Unidad : 45. b. Competencia :A c. Capacidades y actitudes : Conceptualiza, analiza y explica las características del proceso de compilación, lenguajes formales y teoría de autómatas con responsabilidad y en forma participativa. CONTENIDOS SIGNIFICATIVOS INDICADORES DE LOGROS Horas Conceptual: Conceptos sobre Lenguajes Formales Expresiones regulares Autómatas Finitos (AFN y AFD) Elaboración de expresiones regulares autómatas. Introducción al proceso de Compilación Lenguajes de programación Estructura de un compilador Tipos de compiladores Especificación de un compilador. Análisis Léxico Función principal Funciones secundarias Manejo de errores Funcionamiento e implementación Comprende y define las características preliminares y los diferentes conceptos formales y básicos y relacionados a la teoría de la compilación, teoría de autómatas y lenguajes 25 formales. Elabora expresiones regulares, autómatas finitos. Analiza, comprende y define el comportamiento a seguir para un analizador léxico a desarrollar en base a un lenguaje de programación. Procedimental: Elabora expresiones regulares. Diseña autómatas finitos. Realiza aplicaciones prácticas de las técnicas para obtener analizadores léxicos eficientes. Modela gramáticas a nivel básico. Utiliza las diferentes técnicas para obtener expresiones regulares y AFN correctos a nivel básico. Define la sintaxis y semántica de un lenguaje de programación propio. Implementa un analizador léxico. 16 Actitudinal: Responsabilidad Trabajo en Equipo 1era. Evaluación escrita 1era. Evaluación de laboratorio Asiste puntualmente a clases Desarrolla, discute y entrega los trabajos individuales y grupales. Consolida su aprendizaje TOTAL 2 2 45 Segunda Unidad: ANÁLISIS SINTÁCTICO Y SEMÁNTICO a. Total Horas Unidad b. Competencia c. Capacidades y actitudes : 23. :B : Conceptualiza, analiza y explica la complejidad del analizador sintáctico y semántico responsablemente respectivamente con interés y en forma participativa. 2 de 4 CONTENIDOS SIGNIFICATIVOS INDICADORES DE LOGROS Horas Conceptual: Análisis Sintáctico Comprende y define las funciones principales y Función principal secundarias de las etapas Funciones secundarias sintáctica y semántica Manejo de errores respectivamente. Funcionamiento y tipos Clasifica los tipos de Gramáticas libres del contexto analizadores sintácticos por Jerarquía de Chomsky eficiencia, tipo, gramática y por A.S. Ascendente y descendente lenguaje. Implementación A.S. descendente predictivo no Analiza, comprende y define el recursivo. comportamiento a seguir para Análisis Semántico un analizador sintáctico a Función principal desarrollar en base a una Funciones secundarias gramática libre del contexto. Manejo de errores Funcionamiento e implementación 15 Procedimental: Utiliza las diferentes técnicas Determina la importancia de un analizador para obtener gramáticas libres sintáctico y semántico. del contexto correctas a nivel Determina y resuelve casos prácticos sobre básico. gramáticas libres del contexto. Implementa un analizador Realiza aplicaciones prácticas de las técnicas para sintáctico descendente obtener analizadores sintácticos eficientes. predictivo no recursivo. 8 Asiste puntualmente a clases Desarrolla, discute y entrega los trabajos en grupo Actitudinal: Responsabilidad TOTAL 23 Tercera Unidad: GENERACIÓN Y OPTIMIZACIÓN DE CÓDIGO a. Total Horas Unidad b. Competencia c. Capacidades y actitudes : 15. :B : Conceptúa y analiza, las etapas de síntesis del proceso de compilación, valorando su importancia dentro del proceso de compilación. CONTENIDOS SIGNIFICATIVOS Conceptual: INDICADORES DE LOGROS Horas Diferencia entre la generación de Generación de código intermedio: descripción código intermedio y código funcional, lenguajes intermedios. máquina. Optimización de código Conoce la terminología y Generación de código máquina. representación de la generación y optimización de código. Procedimental: Determina la importancia de la etapa de Conoce la complejidad de la etapa síntesis. de síntesis Actitudinal: Responsabilidad Asiste puntualmente a clases Trabajo en Equipo Cumple con las tareas asignadas, en el plazo convenido. 2da. Evaluación escrita Consolida su aprendizaje 2da. Evaluación de laboratorio Total 9 2 2 2 15 3 de 4 7. MÉTODOS Y TÉCNICAS DE ENSEÑANZA MÉTODOS • • • • TÉCNICAS Exposición y didáctica Análisis y síntesis Investigatorio: deductivo, inductivo. Descubrimiento Estudio, análisis y aplicación de casos (en la solución de problemas) Dinámica de grupos. Análisis de casos 8. MEDIOS Y MATERIALES MEDIOS MATERIALES Auditivos Visuales Hardware Software Voz humana. Pizarra, Separatas, Guías de Práctica, Textos. Computador, proyector multimedia. Borland C++, PowerPoint, JFLEX, YACC. 9. EVALUACIÓN Capacidades Conceptual (PCC) Procedimental (PCP) Actitudinal (PCA) Técnicas de evaluación A: Prueba escrita Prueba de desarrollo B: Demostración de procesos C: Resolución de Casos D: Responde a las normas de convivencia E: Perseverancia en la tarea. Responsabilidad Criterios de evaluación: 𝑃𝐹 = Tipos de instrumentos N° Eval. Peso Examen escrito 2 0.6 Examen de laboratorio Trabajo encargado 2 2 0.3 Lista de cotejo 1 Lista de cotejo 1 0.1 𝑃𝐶𝐶 ∗ 0.6 + 𝑃𝐶𝑃 ∗ 0.3 + 𝑃𝐶𝐴 ∗ 0.1 1 Donde: PF: Promedio Final (para aprobar el curso deberá ser mayor o igual a 10.5) PCC: Promedio Contenido Conceptual (Aritmético) PCP: Promedio Contenido Procedimental (Aritmético) PCA: Promedio Contenido Actitudinal (Aritmético) 10. BIBLIOGRAFÍA 10.1 Bibliografía Básica: Aho, A.V., R. Sethi, J.D. Ullman, Compiladores. Principios, Técnicas y Herramientas, Addison-Wesley, 1998. Kenneth C Louden: Construcción de Compiladores, Principios y practica, 2da Edición, Ciencias e Ingenierías. Ramon Brena, “Autómatas y Lenguajes. Un enfoque de diseño”. Instituto Tecnológico y de Estudios Superiores de Monterrey. México. 2003. 10.2 Bibliografía Complementaria Hopcroft, J.E., R. Motwani, J. D. Ullman, Introducción a la teoría de autómatas, lenguajes y computación (2ª Edición), Prentice-Hall, 2000. Dean Kelley / 1999 / Teoría de autómatas y lenguajes formales / 3era Edición / Prentice Hall / España. B. Teufel, S. Schmidt, T. Teufel,"Compiladores. Conceptos Fundamentales". AddisonWesley Iberoamericana. 1995. Abancay, Septiembre del 2011. 4 de 4