Inf 503 lenguajes y compiladores

Page 1

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


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.