UNIVERSIDAD CENTRAL DEL ECUADOR SYLLABUS
1. DATOS INFORMATIVOS 1.1
FACULTAD:
INGENIERÍA CIENCIAS FÍSICAS Y MATEMÁTICA
1.2
CARRERA:
INGENIERÍA INFORMÁTICA
1.3
ASIGNATURA:
LENGUAJES Y COMPILADORES
1.4
CÓDIGO DE ASIGNATURA:
503
1.5
CRÉDITOS:
4
1.6
SEMESTRE:
5TO.
1.7
UNIDAD DE ORGANIZACIÓN CURRICULAR: TIPO DE ASIGNATURA:
PROFESIONAL
ING. JEFFERSON BELTRÁN
1.10
PROFESOR COORDINADOR DE ASIGNATURA: PROFESORES DE LA ASIGNATURA:
1.11
PERÍODO ACADÉMICO:
MARZO 2018 A AGOSTO 2018
1.12
No HORAS DE CLASE:
Presenciales: 48
1.13
No HORAS DE TUTORIAS:
Presenciales: 32
1.14
PRERREQUISITOS:
1.15
CORREQUISITOS:
Asignaturas: Calculabilidad y Complejidad de Algoritmos Asignaturas: Ninguno
1.8 1.9
OBLIGATORIA
ING. ARTURO BEDÓN
Prácticas: 20
Códigos:
2.- DESCRIPCIÓN DE LA ASIGNATURA Los lenguajes de programación son notaciones que mediante programas describen las operaciones que serán realizadas por una computadora. Los programas siempre son escritos en algún lenguaje de programación, pero antes de ser ejecutados primero deben traducirse a un formato en que una computadora pueda ejecutarlos. Los sistemas de software que realizan esta traducción se denominan Compiladores. En la asignatura Lenguajes y Compiladores se estudia la teoría, técnicas y metodologías para el diseño y construcción de Compiladores, con énfasis en la etapa de análisis del proceso de compilación conocida como Front End. También incluye los conceptos básicos de la etapa de síntesis conocida como Back End. Los conceptos y técnicas deben ser aplicados durante el desarrollo del curso, para solucionar problemas de construcción de traductores simples orientados a la VICERRECTORADO ACADÉMICO DE INVESTIGACIÓN Y POSGRADO DIRECCIÓN GENERAL ACADÉMICA Período 2018 - 2018
Página1
UNIVERSIDAD CENTRAL DEL ECUADOR SYLLABUS sintaxis (compiladores básicos) mediante la implementación del análisis léxico, análisis sintáctico, análisis semántico y generación de código intermedio, en forma manual empleando un lenguaje de programación de alto nivel; y, en forma automática empleando herramientas de software para generación automática. Además se estudia los aspectos básicos de diseño y estructura de construcción de los lenguajes de programación.
3.- OBJETIVO GENERAL DE LA ASIGNATURA Capacitar a los estudiantes en los principios teóricos, procedimientos prácticos y empleo de herramientas para construir compiladores básicos, mediante la implementación de las fases del Front End de un compilador. Además tener la capacidad de identificar las partes de la estructura de un lenguaje de programación.
4.- OBJETIVOS ESPECIFICOS DE LA ASIGNATURA EN LA FORMACION DEL PROFESIONAL Capacidad para construir modelos de alto nivel sobre el proceso de traducción (compilación) Capacidad para construir la especificación teórica de traductores orientados a la sintaxis Capacidad para construir en forma manual traductores orientados a la sintaxis, empleando un lenguaje de programación de alto nivel Capacidad para construir en forma automática traductores orientados a la sintaxis , empleando generadores automáticos de analizadores léxicos y analizadores sintácticos Capacidad de aplicar los conocimientos en la práctica. Capacidad para trabajar en equipo interdisciplinario Capacidad para generar nuevas ideas (creatividad). Capacidad crítica y autocritica Compromiso ético. La comunicación oral y escrita en su idioma nativo.
5.- CONTRIBUCIÓN DE LA ASIGNATURA EN LA FORMACIÓN DEL PROFESIONAL En el ámbito de desarrollo de aplicaciones pueden usarse las técnicas de análisis, diseño y construcción de compiladores, permitiendo la construcción de aplicaciones informáticas comunes eficientes, así como la construcción de traductores orientados a la sintaxis (compiladores básicos) Además contribuye como base fundamental para la investigación por parte de los interesados en los procesadores de lenguajes. VICERRECTORADO ACADÉMICO DE INVESTIGACIÓN Y POSGRADO DIRECCIÓN GENERAL ACADÉMICA Período 2018 - 2018
Página2
UNIVERSIDAD CENTRAL DEL ECUADOR SYLLABUS
6.- RESULTADOS DE APRENDIZAJE DE LA ASIGNATURA Le permite definir la especificación teórica de un traductor orientado a la sintaxis y además construir y presentar proyectos que incluyen la implementación de un compilador básico.
VICERRECTORADO ACADÉMICO DE INVESTIGACIÓN Y POSGRADO DIRECCIÓN GENERAL ACADÉMICA Período 2018 - 2018
Página3
UNIVERSIDAD CENTRAL DEL ECUADOR SYLLABUS
7.- PROGRAMACIÓN DE UNIDADES CURRICULARES UNIDAD 1: INTRODUCCION Presentar las distintas formas de los traductores de lenguajes, dar una descripción de alto nivel de la estructura de un compilador, sus aplicaciones; y, fundamentos de lenguajes de programación.
OBJETIVO: RESULTADOS DE APRENDIZAJE:
El estudiante prepara modelos de alto nivel del proceso de traducción ESCENARIOS DE APRENDIZAJE
CALCULO DE HORAS DE LA UNIDAD
TUTORIAS TRABAJO AUTONOMO
PROGRAMACION CURRICULAR UNIDAD SUBTEMAS Procesadores de lenguaje. Estructura de un compilador.
UNIDAD 1: INTRODUCCION
METODOLOGIAS DE APRENDIZAJE RECURSOS DIDACTICOS
No. Horas aprendizaje teóricas
18
No. Horas prácticas-laboratorio No. horas presenciales Horas de trabajo autónomo
07 18
TRABAJO AUTONOMO
MECANISMOS DE EVALUACION
Revisión bibliográfica.
Código relocalizable, código Revisión de las fases del proceso de Exposición de temas ejecutable. compilación Evolución de los lenguajes de programación. Aplicaciones de tecnología de Revisión de alto nivel sobre las fases Documento escrito compiladores. que conforman el FRONT END y BACK Aspectos de diseño de los lenguajes de END de un compilador programación Impacto en arquitecturas de Revisión de los Fundamentos de los Documento escrito computadores. Lenguajes de Programación Bases fundamentales de los lenguajes Prueba parcial sobre la UNIDAD 1 de programación Estimular reflexión individual y colectiva, impulsar la lectura en temas de la especialidad, generar ideas y soluciones, poner en práctica los conocimientos, uso de la Ayuda didáctica para la UNIDAD 1 Laboratorios, Textos guía, Audiovisuales, web sites de la especialidad
VICERRECTORADO ACADÉMICO DE INVESTIGACIÓN Y POSGRADO DIRECCIÓN GENERAL ACADÉMICA Período 2018 - 2018
Página4
UNIVERSIDAD CENTRAL DEL ECUADOR SYLLABUS UNIDAD 2: FUNDAMENTOS Y CONSTRUCCION DE UN COMPILADOR BASICO ORIENTADO A LA SINTAXIS OBJETIVO: RESULTADOS DE APRENDIZAJE
CALCULO DE HORAS DE LA UNIDAD
Introducir las técnicas de compilación mediante el desarrollo de un programa funcional en lenguaje de alto nivel, que traduce expresiones infijas a la forma postfija, se hace énfasis en la construcción del FRONT END de un compilador. el estudiante prepara la especificación teórica de un traductor orientado a la sintaxis y realiza su implementación manual empleando un lenguaje de alto nivel ESCENARIOS DE APRENDIZAJE TUTORIAS TRABAJO AUTONOMO
No horas aprendizaje teóricas No horas prácticas laboratorio
18 08
No horas presenciales Horas trabajo autónomo
10 18
PROGRAMACION CURRICULAR UNIDAD SUBTEMAS TRABAJO AUTONOMO MECANISMOS DE EVALUACION Revisión de Sintaxis y Traducción Definición de Sintaxis. orientada a la Sintaxis Traducción Orientada a la Sintaxis. Principios de Análisis Sintáctico. Implementar analizador Sintáctico Demostrar en laboratorio el Traductor de Expresiones Simples. empleando un lenguaje de funcionamiento UNIDAD 2: programación de alto nivel FUNDAMENTOS Y Principios de Análisis Léxico. Implementar analizador léxico Demostrar en laboratorio el CONSTRUCCION DE UN Tablas de Símbolos. empleando un lenguaje de alto nivel funcionamiento COMPILADOR BASICO ORIENTADO A LA Generación de Código intermedio. Implementar traductor orientado a la Demostrar en laboratorio el SINTAXIS Construcción de compiladores de una sintaxis empleando un lenguaje de funcionamiento pasada programación de alto nivel Construcción y prueba compilador de EXAMEN 1ER HEMISEMESTRE una pasada Estimular reflexión individual y colectiva, impulsar la lectura en temas de la especialidad, generar ideas y soluciones, METODOLOGIA: poner en práctica los conocimientos, uso de la Ayuda didáctica para la UNIDAD 2 RECURSOS DIDACTICOS
Laboratorios, Textos guía, Audiovisuales, web sites de la especialidad
VICERRECTORADO ACADÉMICO DE INVESTIGACIÓN Y POSGRADO DIRECCIÓN GENERAL ACADÉMICA Período 2018 - 2018
Página5
UNIVERSIDAD CENTRAL DEL ECUADOR SYLLABUS
UNIDAD 3: ANALISIS LEXICO PROCEDIMIENTOS SISTEMATICOS Presentar la base teórica de los componentes de los procedimientos sistematizados que permiten la construcción manual y automática de analizadores léxicos
OBJETIVO: RESULTADOS DE APRENDIZAJE CALCULO DE HORAS DE LA UNIDAD UNIDAD
UNIDAD 3: ANALISIS LEXICO PROCEDIMIENTOS SISTEMATICOS
El alumno implementa analizadores léxicos mediante un procedimiento sistemático, que le permite la implementación manual empleando lenguaje de alto nivel; o automática empleando generadores de analizadores léxicos. No horas aprendizaje teóricas 10 ESCENARIOS DE APRENDIZAJE No horas prácticas laboratorio 04
TUTORIAS TRABAJO AUTONOMO SUBTEMAS Las funciones básicas de un Analizador Léxico. Uso de buffers en la entrada. Especificación de (componentes léxicos). Reconocimiento de (componentes léxicos).
los
tokens
los
tokens
El generador automático Analizadores Léxicos LEX. Fundamentos de los autómatas. METODOLOGIA: RECURSOS DIDACTICOS
de
No horas presenciales Horas trabajo autónomo TRABAJO AUTONOMO Revisión de las características de LEX, operadores, funciones, estructura de un programa LEX . Revisión de expresiones regulares, definiciones regulares. Revisión de diagramas de transición de estados. Implementar analizador léxico usando lenguaje de programación de alto nivel. Implementar analizador léxico usando herramientas de generación automática (LEX).
05 12 MECANISMOS DE EVALUACION
Presentaciones grupales.
Demostrar en funcionamiento.
laboratorio
el
Demostrar en laboratorio funcionamiento. Prueba parcial UNIDAD 3.
el
Estimular reflexión individual y colectiva, impulsar la lectura en temas de la especialidad, generar ideas y soluciones, poner en práctica los conocimientos, uso de la Ayuda didáctica para la UNIDAD 3 Laboratorios, Textos guía, Audiovisuales, web sites de la especialidad
VICERRECTORADO ACADÉMICO DE INVESTIGACIÓN Y POSGRADO DIRECCIÓN GENERAL ACADÉMICA Período 2018 - 2018
Página6
UNIVERSIDAD CENTRAL DEL ECUADOR SYLLABUS
UNIDAD 4: METODOS DE ANALISIS SINTACTICO Y CONSTRUCCION AUTOMATICA DE TRADUCTORES OBJETIVO: Presentar los métodos de análisis sintáctico usados para la construcción manual y automática de analizadores sintácticos; y, la implementación automática de traductores orientados a la sintaxis. RESULTADOS DE APENDIZAJE CALCULO DE HORAS DE LA UNIDAD
el alumno construye el FRONT END de un compilador en forma manual usando un lenguaje de programación de alto nivel o automática empleando un generador de analizadores sintácticos. ESCENARIOS DE APRENDIZAJE TUTORIAS TRABAJO AUTONOMO
UNIDAD
UNIDAD 4: METODOS DE ANALISIS SINTACTICO Y CONSTRUCCION AUTOMATICA DE TRADUCTORES
No horas aprendizaje teóricas No horas prácticas laboratorio No horas presenciales Horas trabajo autónomo
18 08 10 18
SUBTEMAS
TRABAJO AUTONOMO
Las funciones básicas de un analizador sintáctico. Fundamentos de Gramáticas libres de Contexto. Transformaciones para la escritura de una gramática adecuada para análisis sintáctico. Análisis sintáctico descendente.
Revisión de las características de YAC, operadores, funciones, estructura de un programa YAC. Revisar Análisis Sintáctico descendente predictivo recursivo.
Ejercicios en laboratorio.
Análisis sintáctico predictivo no recursivo.
Revisar análisis sintáctico descendente predictivo no recursivo. Revisar Análisis Sintáctico ascendente (desplazamiento reducción).
Presentaciones grupales.
Análisis sintáctico ascendente.
MECANISMOS DE EVALUACION Ejercicios individuales.
VICERRECTORADO ACADÉMICO DE INVESTIGACIÓN Y POSGRADO DIRECCIÓN GENERAL ACADÉMICA Período 2018 - 2018
Página7
UNIVERSIDAD CENTRAL DEL ECUADOR SYLLABUS Generador automático de analizadores sintácticos YAC. Implementación automática de traductores con LEX y YAC. METODOLOGIA APRENDIZAJE RECURSOS DIDACTICOS
DE
Construcción del FRONT END de un compilador empleando LEX y YAC.
Demostrar en funcionamiento.
laboratorio
el
EXAMEN 2DO HEMISEMESTRE.
Estimular reflexión individual y colectiva, impulsar la lectura en temas de la especialidad, generar ideas y soluciones, poner en práctica los conocimientos, uso de la Ayuda didáctica para la UNIDAD 4 Laboratorios, Textos guía, Audiovisuales, web sites de la especialidad
VICERRECTORADO ACADÉMICO DE INVESTIGACIÓN Y POSGRADO DIRECCIÓN GENERAL ACADÉMICA Período 2018 - 2018
Página8
UNIVERSIDAD CENTRAL DEL ECUADOR SYLLABUS
BIBLIOGRAFÍA OBRAS FÍSICAS VIRTUAL BÁSICA
NOMBRE BIBLIOTECA VIRTUAL
1.Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman. “Compiladores Principios, técnicas y herramientas” Addison Wesley Longman 1998 Alfred V. Aho, Mónica S. Lam, Ravi Sethi, Jeffrey D. Ullman. “Compiladores principios, técnicas y herramientas” Segunda Edición PEARSON Addison Wesley 2008
COMPLEMENTARIA
The Lex & Yacc page. http://dinosaur.compilertools.net Terrence W. Pratt, Marvin V. Zelkowitz. “Programming Languages Design and Implementation” Cuarta edicion Prentice Hall 2001
(web site)
8.- RELACION DE LA ASIGNATURA CON LOS RESULTADOS DEL
PERFIL DE EGRESO DE LA CARRERA RESULTADOS O LOGROS DE APRENDIZAJE DEL PERFIL DE EGRESO DE LA CARRERA El estudiante prepara modelos de alto nivel del proceso de traducción el estudiante prepara la especificación teórica de un traductor orientado a la sintaxis y realiza su implementación manual empleando un lenguaje de alto nivel El alumno implementa analizadores léxicos mediante un procedimiento sistemático, que le permite la implementación manual empleando lenguaje de alto nivel; o automática empleando generadores de analizadores léxicos. el alumno construye el FRONT END de un compilador en forma manual usando un lenguaje de programación de alto nivel o automática empleando un generador de analizadores léxicos y un generador de analizadores sintácticos.
EL ESTUDIANTE DEBE Construir modelos de alto nivel de procesos de traducción Preparar especificación teórica de traductor orientado a la sintaxis Definir proceso sistemático para construir e implementar analizadores léxicos Implementar analizadores léxicos en forma manual y automática Definir proceso sistemático para construir e implementar traductores orientados a la sintaxis Implementar traductores orientados a la sintaxis en forma manual y automática(FRONT END)
VICERRECTORADO ACADÉMICO DE INVESTIGACIÓN Y POSGRADO DIRECCIÓN GENERAL ACADÉMICA Período 2018 - 2018
Página9
UNIVERSIDAD CENTRAL DEL ECUADOR SYLLABUS
9.- EVALUACION DEL ESTUDIANTE POR RESULTADOS DE APRENDIZAJE TÉCNICAS
PRIMER HEMISEMESTRE (PUNTOS)
Evaluación hemisemestral Prueba y/o lecciones Trabajos de investigación Trabajo autónomo y/o virtual Trabajos grupales Trabajos de laboratorio
(8 Puntos) ( 6 Puntos) ( 6 Puntos) El máximo valor que se asigna a estas evaluaciones es de 6 puntos TOTAL
(20 Puntos)
SEGUNDO HEMISEMESTRE (PUNTOS) (8 Puntos) ( 6 Puntos) ( 6 Puntos) El máximo valor que se asigna a estas evaluaciones es de 6 puntos (20 Puntos)
10.- PERFIL DEL DOCENTE QUE IMPARTE LA ASIGNATURA
Magister Ciencias de la Ingeniería o similar Ingeniero Informático o similar Experiencia Docente
11.- REVISION Y APROBACION ELABORADO POR : FIRMA DE LOS DOCENTES QUE DICTAN LA ASIGNATURA
REVISADO Coordinador del Área: Programación y Bases de datos
APROBADO Director de Carrera Ingeniería Informática
FECHA: 2018-04
NOMBRE: Ing. Jefferson Beltrán
Ing. Boris Herrera
FECHA: 2018-04
FECHA: 2018-04
FIRMA: ______________________
FIRMA: ______________________
Docente :__________________ Ing. Arturo Bedón
VICERRECTORADO ACADÉMICO DE INVESTIGACIÓN Y POSGRADO DIRECCIÓN GENERAL ACADÉMICA Período 2018 - 2018
Página10