plan de estudios de compiladores




INSTITUTO POLITECNICO NACIONAL       

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA


UNIDAD CULHUACAN


ASIGNATURA: COMPILADORES


ALUMNO:                                                                                               GRUPO: 5CV34
                                                     
Pérez Rojas Bárbara Lizbeth                                                   


SEMESTRE 22-1

Agosto - Diciembre 2021


Profesor: Resendiz Colin Pilar







Programa sintético



CARRERA: Ingeniería en Computación

ASIGNATURA: Compiladores

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.


UNIDAD 1: Introducción

1.1 Historia

1.2 Programas relacionados con los compiladores

1.3 Proceso de traducción

1.4 Estructuras de datos principales en un compilador

1.5 Otras cuestiones referentes a la estructura del compilador

1.6 Arranque automático y portabilidad

1.7 Lenguaje y compilador de muestra TINY

1.8 Un lenguaje para un proyecto de compilador

1.8.1 Ejercicios


UNIDAD 2: Análisis Léxico

2.1 El proceso de análisis léxico

2.2 Expresiones regulares

2.3 Autómatas finitos

2.4 Desde las expresiones reulares hasta los DFA

2.5 Implementación de un analizador léxico TINY ("Diminuto")

2.6 Uso de Lex para generar automáticamente un analizador léxico

2.6.1 Ejercicios 

UNIDAD 3: Análisis Sintáctico

3.1 Procesos del análisis sintáctico

3.1.1 Gramáticas libres de contexto

3.1.2 Arboles de análisis gramáticas y árboles sintáctitos abtractos

3.1.3 Ambigüedad

3.2 Notaciones extendidas: EBNF y diagramas de sintaxis

3.3 Sintaxis del lenguaje TINY

3.4 Análisis sintáctico descendente mediante método descendente recursivo

3.4.1 Análisis sintáctico LL(1)

3.4.2 Un analizador sintáctico descendente recursivo para lenguaje TINY

3.4.3 Recuperación de errores en analizadores sintácticos descendentes

3.5 Perspectiva general del análisis sintáctico ascendente

3.5.1 Autómatas finitos de elementos LR (0) y análisis sintáctico LR(0)

3.5.2 Análisis sintáctico SLR(1)

3.5.3 Yacc un generador de analizadores sintácticos LALR(1)

3.5.4 Recuperación de errores en analizadores sintácticos ascendentes


UNIDAD 4: Análisis Semántico


4.1 Atributos y gramáticas con atributos

4.1.1 Algoritmos para cálculo de atributos

4.2 La tabla de símbolos

4.3 Tipos de datos y verificación de tipos

4.4 Un analizador semántico para el lenguaje TINY

4.4.1 Ejercicios

UNIDAD 5: Código Intermedio

5.1 Código intermedio y estructuras de datos para generación de código

5.2 Técnicas básicas de generación de código

5.3 Técnicas de optimación de código

5.3.1 Ejercicios


UNIDAD 6: Generación de Código

6.1 Generación de código de referencias de estructuras de datos

6.2 Generación de código de sentencias de control y expresiones lógicas

6.3 Generación de código de llamadas de procedimientos y funciones

6.4 Generación de código en compiladores comerciales dos casos de estudio

6.5 TM: Una máquina objetivo simple



BIBLIOGRAFIA


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

HORARIO

Lunes 19:00 - 20:30

Miércoles 17:30 - 19:00

Viernes 19:00 -  20:30

CALENDARIO ACADEMICO