Comp Il Adores

12
INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS PROGRAMA SINTÉTICO CARRERA: Ingeniería en Computación. ASIGNATURA: Compiladores SEMESTRE: Quinto OBJETIVO GENERAL: El alumno diseñará un compilador que funcione completamente y con cada una de sus partes. Explicará las etapas de diseño y su trabajo respectivo en la traducción de un lenguaje de alto nivel hasta uno de bajo nivel. CONTENIDO SINTÉTICO: I. Introducción. II. Análisis Léxico. III. Análisis Sintáctico. IV. Análisis Semántico. V. Código Intermedio VI. Generación de Código. METODOLOGÍA: Preparación y discusión de los temas por parte de los alumnos con guía del profesor. Resolución de problemas bajo la supervisión del profesor. Trabajo en equipo. Uso de material didáctico y presentaciones en Power Point. EVALUACIÓN Y ACREDITACIÓN: La evaluación se hará de manera diagnóstica de seguimiento y sumativa, donde se evaluarán el aprovechamiento de las unidades, mediante tres exámenes departamentales con un valor del 60% de la calificación teórica. El 10% será evaluado de la participación de los alumnos tomando en cuenta los siguientes aspectos: búsqueda bibliográfica en revistas científicas, libros e Internet, etc., participación en clase, tareas extraclase. El 30% restante será evaluado de los reportes y prácticas de laboratorio. BIBLIOGRAFÍA: Kenneth C. and Louden, Construcción de Compiladores Principios y Práctica , Edit. Thomnson, México 2004. p. 446 Hopcroft, John E. And Ullman Jefrey D., Compiladores Edit. Addison-Wesley, U.S.A, Edit. 2002. p. 91-233, p.273-326 Kelley, Dean, Introducción a la Teoría de Autómatas y Lenguajes Formales, Edit. Prentice Hall, España, 1995. p.380

Transcript of Comp Il Adores

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA

DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS

PROGRAMA SINTÉTICO

CARRERA: Ingeniería en Computación.

ASIGNATURA: Compiladores SEMESTRE: Quinto

OBJETIVO GENERAL: El alumno diseñará un compilador que funcione completamente y con cada una de sus partes. Explicará las etapas de diseño y su trabajo respectivo en la traducción de un lenguaje de alto nivel hasta uno de bajo nivel. CONTENIDO SINTÉTICO:

I. Introducción. II. Análisis Léxico.

III. Análisis Sintáctico. IV. Análisis Semántico. V. Código Intermedio VI. Generación de Código.

METODOLOGÍA: Preparación y discusión de los temas por parte de los alumnos con guía del profesor. Resolución de problemas bajo la supervisión del profesor. Trabajo en equipo. Uso de material didáctico y presentaciones en Power Point. EVALUACIÓN Y ACREDITACIÓN: La evaluación se hará de manera diagnóstica de seguimiento y sumativa, donde se evaluarán el aprovechamiento de las unidades, mediante tres exámenes departamentales con un valor del 60% de la calificación teórica. El 10% será evaluado de la participación de los alumnos tomando en cuenta los siguientes aspectos: búsqueda bibliográfica en revistas científicas, libros e Internet, etc., participación en clase, tareas extraclase. El 30% restante será evaluado de los reportes y prácticas de laboratorio. BIBLIOGRAFÍA: Kenneth C. and Louden, Construcción de Compiladores Principios y Práctica, Edit. Thomnson, México 2004. p. 446 Hopcroft, John E. And Ullman Jefrey D., Compiladores Edit. Addison-Wesley, U.S.A, Edit. 2002. p. 91-233, p.273-326 Kelley, Dean, Introducción a la Teoría de Autómatas y Lenguajes Formales, Edit. Prentice Hall, España, 1995. p.380

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA

DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS

ESCUELA: Escuela Superior de Ingeniería Mecánica y Eléctrica. CARRERA: Ingeniería en Computación. COORDINACIÓN: Academia de Computación. DEPARTAMENTO: Ingeniería en Computación

ASIGNATURA: Compiladores SEMESTRE: Quinto CLAVE: CLA028 CRÉDITOS: 7.5 VIGENTE: Agosto 2005 TIPO DE ASIGNATURA: Teórico-Práctica MODALIDAD: Escolarizada.

TIEMPOS ASIGNADOS

HORAS/SEMANA/TEORÍA: 3.0 HORAS/SEMANA/PRÁCTICA: 1.5 HORAS/SEMESTRE/TEORÍA: 54 HORAS/SEMESTRE/PRÁCTICA: 27 HORAS/TOTALES: 81 PROGRAMA ELABORADO O ACTUALIZADO POR: Academia de Computación de ESIME Culhuacan REVISADO POR: Subdirección Académica de ESIME Culhuacan APROBADO POR: Consejo Técnico Consultivo Escolar de ESIME Culhuacan. Ing. Ernesto Mercado Escutia

AUTORIZADO POR: Comisión de Planes y Programas del Consejo General Consultivo del IPN

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA

DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS

ASIGNATURA: Compiladores CLAVE: CLA028 HOJA: 2 DE 10

FUNDAMENTACIÓN DE LA ASIGNATURA

El progreso de las ciencias de la computación ha sido basado en la notación formal matemática y lógica dentro de la cual se han desarrollado los lenguajes formales, estos junto con los Autómatas de estado finito han dado pauta a la creación de compiladores que traducen diferentes lenguajes de programación a un solo tipo de lenguaje, código de maquina, lo cual permite la utilización de computadoras con diferente propósito y de utilización masiva y común. El estudio de los Compiladores permitirá al profesional de la carrera de Ingeniería en Computación comprender el funcionamiento y trabajo desempeñado en el intento por comunicar ideas a trabajo computacional: la computación y los lenguajes de programación evolucionan y se acercan mas a la comunicación directa hombre - máquina. Las Matemáticas discretas y la Teoría de Autómatas son antecedentes de esta asignatura cuyos conceptos y herramientas serán aplicables consecuentemente a la materia de Sistemas Operativos, Arquitectura de Computadoras y Lenguajes de Arquitecturas en Paralelo.

OBJETIVO DE LA ASIGNATURA El alumno diseñará un compilador que funcione completamente y con cada una de sus partes. Explicará las etapas de diseño y su trabajo respectivo en la traducción de un lenguaje de alto nivel hasta uno de bajo nivel.

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA

DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS

ASIGNATURA: Compiladores CLAVE: CLA028 HOJA: 3 DE 10

No. UNIDAD I NOMBRE: Introducción

OBJETIVOS PARTICULARES DE LA UNIDAD

El alumno describirá los elementos fundamentales para construir un compilador.

HORAS

No. TEMA

T E M A S

T P EC

CLAVE BIBLIOGRÁFICA

1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.8.1

Historia Programas relacionados con los compiladores Proceso de traducción Estructuras de datos principales en un compilador Otras cuestiones referentes a la estructura del compilador Arranque automático y portabilidad Lenguaje y compilador de muestra TINY Un lenguaje para un proyecto de compilador Ejercicios

Subtotal

1.5

1.5

1.5 1.5

6.0

1.5

1.5

3.0

6.0

6.0

1B, 4B, 2C,3C

ESTRATEGIA DIDÁCTICA

Preparación de los temas por parte del alumno antes de la clase bajo la guía del profesor. Desarrollo de trabajos extra clase y prácticas de laboratorio. Desarrollo de las definiciones formales y ejemplos de cada tema por parte del profesor.

PROCEDIMIENTO DE EVALUACIÓN La evaluación se hará de manera diagnóstica, formativa, de seguimiento y sumativa, considerando los siguientes aspectos para las unidades I y II:

- Participación de las actividades en clase. - Tareas extraclase. 10% - Examen Departamental 60%

- Prácticas de laboratorio 30%

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA

DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS

ASIGNATURA: Compiladores CLAVE: CLA028 HOJA: 4 DE 10

No. UNIDAD II NOMBRE: Análisis Léxico

OBJETIVOS PARTICULARES DE LA UNIDAD

El alumno construirá un analizador léxico para un Compilador basado en un autómata finito. Demostrará la primera parte de análisis del compilador.

HORAS

No. TEMA

T E M A S

T P EC

CLAVE BIBLIOGRÁFICA

2.1 2.2 2.3 2.4 2.5 2.6 2.6.1

El proceso de análisis léxico Expresiones regulares Autómatas finitos Desde las expresiones regulares hasta los DFA Implementación de un analizador léxico TINY (“Diminuto”) Uso de Lex para generar automáticamente un analizador léxico Ejercicios

Subtotal

1.5 1.5 1.5 1.5 1.5

3.0

1.5

12.0

1.5

1.5

1.5

4.5

6.0

6.0

1B, 4B,2C,3C,5C

ESTRATEGIA DIDÁCTICA Investigación de conceptos por parte del alumno. Desarrollar en clase las definiciones formales y ejemplos de cada tema por parte del profesor. Formación de grupos para la solución de ejercicios coordinados por el profesor. Realización de tareas y trabajos extra clase. Realización de prácticas de laboratorio.

PROCEDIMIENTO DE EVALUACIÓN La evaluación se hará de manera diagnóstica, formativa, de seguimiento y sumativa, considerando los siguientes aspectos para las unidades I y II:

- Participación de las actividades en clase. - Tareas extraclase 10% - Examen Departamental 60% - Prácticas de laboratorio. 30%

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA

DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS

ASIGNATURA: Compiladores CLAVE: CLA028 HOJA: 5 DE 10

No. UNIDAD III NOMBRE: Análisis Sintáctico

OBJETIVOS PARTICULARES DE LA UNIDAD El alumno diseñará el modulo de Análisis Sintáctico de un Compilador.

HORAS

No. TEMA

T E M A S

T P EC

CLAVE BIBLIOGRÁFICA

3.1 3.1.1 3.1.2 3.1.3 3.2 3.3 3.4 3.4.1 3.4.2 3.4.3 3.5 3.5.1 3.5.2 3.5.3 3.5.4

Proceso del análisis sintáctico Gramáticas libres de contexto Árboles de análisis gramáticas y árboles sintácticos abstractos Ambigüedad Notaciones extendidas: EBNF y diagramas de sintaxisSintaxis del lenguaje TINY Análisis sintáctico descendente mediante método descendente recursivo Análisis sintáctico LL(1) Un analizador sintáctico descendente recursivo para el lenguaje TINY Recuperación de errores en analizadores sintácticos descendentes Perspectiva general del análisis sintáctico ascendenteAutómatas finitos de elementos LR(0)y análisis sintáctico LR(0) Análisis sintáctico SLR(1) Yacc: un generador de analizadores sintácticos LALR(1) Recuperación de errores en analizadores sintácticos ascendentes

Subtotal

3.0

1.5 1.5 3.0

3.0

12.0

1.5

1.5

1.5

4.5

12.0 12.0

1B, 4B,2C,3C,5C

ESTRATEGIA DIDÁCTICA Preparación por parte de los alumnos, de los temas antes de la clase bajo la guía del profesor. Desarrollo en clase las definiciones formales y ejemplos de cada tema por parte del profesor. Desarrollo de trabajos extra clase con la finalidad de dominar cada tema. Realización de prácticas de laboratorio PROCEDIMIENTO DE EVALUACIÓN La evaluación se hará de manera diagnóstica, formativa, de seguimiento y sumativa, considerando los siguientes aspectos para la unidad III:

- Participación de las actividades en clase. - Tareas extraclase 10% - Examen departamental 60% - Prácticas de laboratorio 30%

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA

DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS

ASIGNATURA: Compiladores CLAVE: CLA028 HOJA: 6 DE 10

No. UNIDAD IV NOMBRE: Análisis Semántico

OBJETIVOS PARTICULARES DE LA UNIDAD El alumno diseñará el modulo de Análisis Semantico de un Compilador.

HORAS

No. TEMA

T E M A S

T P EC

CLAVE BIBLIOGRÁFICA

4.1 4.1.1 4.2 4.3 4.4 4.4.1

Atributos y gramáticas con atributos Algoritmos para cálculo de atributos La tabla de símbolos Tipos de datos y verificación de tipos Un analizador semántico para el lenguaje TINY Ejercicios

Subtotal

3.0

3.0 3.0 3.0

12.0

1.5

1.5 1.5 1.5

4.5

6.0

6.0

1B, 4B, 2C,3C

ESTRATEGIA DIDÁCTICA Preparación por parte de los alumnos de los temas antes de la clase bajo la guía del profesor. Desarrollo en clase las definiciones formales y ejemplos de cada tema por parte del profesor. Desarrollo de trabajos extra clase con la finalidad de dominar cada tema. Realización de prácticas de laboratorio PROCEDIMIENTO DE EVALUACIÓN La evaluación se hará de manera diagnóstica, formativa, de seguimiento y sumativa, considerando los siguientes aspectos:

- Participación de las actividades en clase. - Tareas extraclase 10% - Examen Departamental 60% - Prácticas de laboratorio. 30%

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA

DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS

ASIGNATURA: Compiladores CLAVE: CLA028 HOJA: 7 DE 10

No. UNIDAD V NOMBRE: Código Intermedio

OBJETIVOS PARTICULARES DE LA UNIDAD

El alumno diseñará las reglas y el Código Intermedio resultante de la etapa de análisis del Compilador.

HORAS

No.

TEMA

T E M A S

T P EC

CLAVE BIBLIOGRÁFICA

5.1 5.2 5.3 5.3.1

Código intermedio y estructuras de datos para generación de código Técnicas básicas de generación de código Técnicas de optimación de código Ejercicios

Subtotal

1.5

1.5 3.0

6.0

1.5

1.5 1.5

4.5

6.0

6.0

1B, 4B, 2C,3C

ESTRATEGIA DIDÁCTICA Preparación de los temas por parte de los alumnos antes de la clase bajo la guía del profesor. Desarrollo en clase las definiciones formales y ejemplos de cada tema por parte del profesor. Desarrollo de trabajos extra clase con la finalidad de dominar cada tema. Uso de recursos audiovisuales. Realización de prácticas de laboratorio PROCEDIMIENTO DE EVALUACIÓN La evaluación se hará de manera diagnóstica, formativa, de seguimiento y sumativa, considerando los siguientes aspectos para las unidades IV, V y VI:

- Participación de las actividades en clase. - Tareas extraclase 10% - Examen departamental 60% - Prácticas de laboratorio 30%

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA

DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS

ASIGNATURA: Compiladores CLAVE: CLA028 HOJA: 8 DE 10

No. UNIDAD VI NOMBRE: Generación de Código

OBJETIVOS PARTICULARES DE LA UNIDAD

El alumno diseñará una Máquina de Turing para funciones recursivas primitivas, explicará el problema del paro de una Máquina de Turing y los conceptos de Decidibilidad y Computabilidad.

HORAS

No.

TEMA

T E M A S

T P EC

CLAVE BIBLIOGRÁFICA

6.1 6.2 6.3 6.4 6.5

Generación de código de referencias de estructuras de datos Generación de código de sentencias de control y expresiones lógicas Generación de código de llamadas de procedimientos y funciones Generación de código en compiladores comerciales: dos casos de estudio TM: Una máquina objetivo simple

Subtotal

1.5

1.5

1.5

1.5

20.0

1.5

1.5

1.5

1.5

6.0

8.0

8.0

1B, 4B,2C,3C

ESTRATEGIA DIDÁCTICA Preparación de los temas por parte del alumno antes de la clase bajo la guía del profesor. Desarrollo en clase las definiciones formales y ejemplos de cada tema por parte del profesor. Formación de grupos para la discusión de resultados. Desarrollo de trabajos extra clase con la finalidad de dominar cada tema. Realización de prácticas de laboratorio PROCEDIMIENTO DE EVALUACIÓN La evaluación se hará de manera diagnóstica, formativa, de seguimiento y sumativa, considerando los siguientes aspectos para las unidades IV, V y VI:

- Participación de las actividades en clase. - Tareas extraclase 10% - Examen departamental 60% - Prácticas de laboratorio 30%

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA

DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS

ASIGNATURA: Compiladores CLAVE: CLA028 HOJA: 9 DE 10

RELACIÓN DE PRÁCTICAS

PRACT.

No.

NOMBRE DE LA PRÁCTICA

UNIDAD

DURACIÓN

LUGAR DE REALIZACIÓN

1 2 3 4 5 6

Introducción al diseño de

compiladores

Autómatas

Gramáticas

Parsers

Traductores

Compiladores e interpretes

I II

III

IV

V

VI

Total

3

4.5

4.5

4.5

4.5

6.0

27.0

Todas las prácticas se llevaran a cabo en el

Laboratorio de Computación.

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA

DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS

ASIGNATURA: Compiladores CLAVE: CLA028 HOJA: 10 DE 10

PERÍODO

UNIDAD

PROCEDIMIENTO DE EVALUACIÓN

1 2 3

I , II

III

IV , V

10% - Programas y ejercicios desarrollados en clase y extra clase. 60% - Examen del periodo. 30% - Prácticas de laboratorio

10% - Programas y ejercicios desarrollados en clase y extra clase. 60% - Examen del periodo. 30% - Prácticas de laboratorio 10% - Programas y ejercicios desarrollados en clase y extra clase. 60% - Examen del periodo. 30% - Prácticas de laboratorio

CLAVE B C BIBLIOGRAFÍA

1 2 3 4 5 6 7

X

X

X

X

X

X

X

Kenneth C. and Louden, Construcción de Compiladores Principios y Practica, Edit. Thomnson, México 2003. p. 446 Alfred V. Aho Compiladores Principios, Técnicas y Herramientas Edit. Addison-Wesley, U.S.A, Edic May 2000. p. 500 F. Sanchis Llorca Compiladores, Teoría y Construcción November 1991. p. 32-77 Kelley, Dean, Introducción a la Teoría de Autómatas y Lenguajes Formales, Edit. Prentice Hall, España, Edic. 1995. p. 380 Kimber, Efim., Theory of Computing, Edit.Prentice Hall, Inglaterra, Edic.2001. p. 1-88 Flynn, Ida M., McHoes, Ann M. Sistemas Operativos International Thomson Editores, Tercera Edición, 2003. p. 235-271 Hopcroft,John E. and Ullman Jefrey D. Introducción a la Teoría de Autómatas, Lenguajes y Computación Edit. Addison-Wesley, U.S.A, Edic. 2002. p. 91-233, p. 273-326

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA

DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS

PERFIL DOCENTE POR ASIGNATURA

1. DATOS GENERALES

ESCUELA: Escuela Superior de Ingeniería Mecánica y Eléctrica

CARRERA: Ingeniería en Computación, SEMESTRE Quinto

ÁREA: BÁSICAS C. INGENIERÍA D. INGENIERÍA C. SOC. y HUM.

ACADEMIA: Computación ASIGNATURA: Compiladores

ESPECIALIDAD Y NIVEL ACADÉMICO REQUERIDO: Ingeniería o Maestría

2. OBJETIVOS DE LA ASIGNATURA: El alumno diseñará un compilador que funcione completamente y con cada una de sus partes. Explicará las etapas de diseño y su trabajo respectivo en la traducción de un lenguaje de alto nivel hasta uno de bajo nivel.

3. PERFIL DOCENTE:

CONOCIMIENTOS EXPERIENCIA PROFESIONAL

HABILIDADES ACTITUDES

Experiencia en programación de alto y bajo nivel, conocimientos teóricos de teoría de Autómatas, Análisis de Algoritmos y Estructuras de Datos.

Haber Impartido clase en Nivel Superior. Formación pedagógica. Programación en algún lenguaje de computación.

Dominio de la asignatura. Manejo de grupos. Comunicación (Transmisión del conocimiento). Capacidades de análisis y síntesis. Motivación al alumno. Manejo de materiales didácticos.

Tener vocación por la docencia.

Honestidad. Ejercicio de la crítica fundamentada. Respeto (buena relación maestro-alumno). Tolerancia. Ética. Espíritu de colaboración. Superación docente y profesional.

ELABORÓ REVISÓ AUTORIZÓ

__________________________ __________________________ ________________________ Ing. Jorge Fernando Veloz Ortiz M. en C. Alberto Paz Gutiérrez Ing. Ernesto Mercado Escutia Presidente de la Academia Subdirector Académico Director de Computación

FECHA: Agosto 2005