Documento 495193

Anuncio
Asignatura
Créditos
Código
Pre-Requisito (s)
: Compiladores Digitales
:3
: INF-170
: INF-322
Objetivo General:

Conocer la estructura interna del proceso de compilación y los mecanismos
fundamentales de diseño de un compilador, ya sea en el ámbito específico de la
traducción de lenguaje de programación para preparar la ejecución de programas,
como en otros procesos de características similares.
TEMA I.- INTRODUCCION A LOS COMPILADORES
Objetivo.- Conocer qué es un compilador y su aplicación como utilitario de la programación.
1.1
1.2
1.3
1.4
1.5
1.6
1.7
Compiladores
Análisis del programa fuente
Las fases de un compilador
Programas de sistemas relacionados con un compilador
El agrupamiento de las fases
Herramientas para la construcción de compiladores
Intérpretes
TEMA II.- COMPONENTES DE UN COMPILADOR SENCILLO DE UN PASADA
Objetivo.- Describir a grandes rasgos los procesos de la compilación y las herramientas empleadas para el
manejo de los mismos.
2.1
2.2
2.3
2.4
2.5
2.6
2.7
Perspectivas
Definición de la sintaxis
Traducción dirigida por la sintaxis
Análisis sintáctico
Traductor de expresiones simples
Análisis léxico
Incorporación de la tabla de símbolos
TEMA III.- ANALISIS LEXICO
Objetivo.- Enfocar el analizador de léxico como herramienta básica de la programación y empleo de software de
soporte.
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
Función del analizador léxico
Manejo de los buffers de entrada
Especificación de los componentes léxicos
Reconocimientos de componentes léxicos
Un lenguaje para la especificación de analizadores léxicos
Autómatas finitos
Paso de una expresión regular a un AFN
Diseño de un generador de analizadores léxicos
Herramientas de generación de analizadores léxicos (LEX) y ejecicio
INF-170 Compiladores Digitales
Pág. # 1
TEMA IV.- ANALISIS SINTACTICO
Objetivo.- Enfocar el analizador sintáctico como herramienta básica de la programación y empleo de software
de soporte.
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
El papel del analizador sintáctico
Gramáticas independientes del contexto
Escritura de unA gramática
Análisis sintáctico descendente
Análisis sintáctico ascendente
Análisis sintáctico por precedencia de operadores
Análisis sintáctico LR
Uso de gramáticas ambiguas.
Generadores de analizadores sintácticos.
Herramienta para analizadores sintácticoS (YACC). Ejercicios
TEMA V.- TRADUCCION DIRIGIDA POR LA SINTAXIS
Objetivo.- Efectuar las evaluaciones de los análisis sintácticos como herramienta principal en la compilación .
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
Definiciones dirigidas por la sintaxis.
Construcción de árboles sintácticos
Evaluación ascendente de definiciones con atributos sintetizados
Definiciones con atributos por la izquierda
Traducción descendente
Evaluación ascendente de los atributos heredados
Evaluadores recursivos
Consideraciones de espacio para valores de atributos en el momento de la compilación
Asignación de espacio para valores de atributos en el momento de la compilación
Asignación de espacio en el momento de la construcción del compilador
TEMA VI.- COMPROBACION DE TIPOS
Objetivo.- Entender el desempeño de las definiciones de tipos de datos y su manejo en el proceso de
compilación.
6.1
6.2
6.3
6.4
6.5
Sistema de tipos
Especificación de un comprobador de tipos sencillos
Equivalencia de expresiones de tipos
Conversiones de tipos
Sobrecargas de funciones y operadores
INF-170 Compiladores Digitales
Pág. # 2
TEMA VII.- AMBIENTES PARA EL MOMENTO DE LA EJECUCION
Objetivo.- Mostrar los mecanismos empleados por el compilador para el manejo eficiente de memoria.
7.1
7.2
7.3
7.4
7.5
7.6
7.7
Aspectos del lenguaje fuente
Organización de la memoria
Estrategias para la asignación de memorias
Acceso a nombres no locales
Paso de parámetros
Tablas de símbolos
Instrumentos de los lenguajes para la asignación dinámica de la memoria
TEMA VIII.- GENERACION DE CODIGO INTERMEDIO
Objetivo.- Entender las herramientas auxiliares para la ejecucución de una compilación eficiente.
8.1
8.2
8.3
8.4
8.5
8.6
8.7
Lenguajes intermedios
Declaraciones
Proposiciones de asignación
Expresiones booleanas
Proposiciones CASE
Relleno de retroceso
Llamadas a Procedimientos
TEMA IX .- GENERACION DE CODIGO
Objetivo.- Presentar al estudiante el funcionamiento de un generador de códigos.
9.1
9.2
9.3
9.4
9.5
Aspectos del diseño de un generador de códigos
La máquina objeto
Administración de la memoria durante la ejecución
Un generador de códigos simple
Generadores de generadores de códigos
TEMA X.- OPTIMIZACION DE CODIGOS
Objetivo.- Comprender el proceso de optimización como herramienta final de la compilación.
10.1 Introducción
10.2 Principales fuentes para la optimización
10.3 Optimización de bloques básicos
INF-170 Compiladores Digitales
Pág. # 3
METODOLOGIA:




Audiovisuales
Exposición de ejemplos prácticos
Cátedras
Prácticas con sistemas de apoyo interactivos
EVALUACION:
Primer parcial
:
Prácticas 15 puntos
Examen 20 puntos
Segundo parcial
:
Prácticas 15 puntos
Examen 20 puntos
Final
: Examen 30 puntos
BIBLIOGRAFIA
COMPILADORES: PRINCIPIOS, TECNICAS Y HERRAMIENTAS
Autor: Aho Sethi Ullman
Addison wesley Iberoaméricana ( 1990 )
CRAFTING A COMPILER WITH C
Autor: Benjamín / Cummings
THE ART OF COMPILER DESIGN AND PRACTICE
Autor: Pittman, T. Peter
INF-170 Compiladores Digitales
Pág. # 4
Descargar