TRADUCTORES
|
Objetivo: Estudiar la teoría, técnicas
y metodologías para el diseño y construcción de los traductores:
ensambladores, microprocesadores, intérpretes y compiladores, presentando
las principales herramientas para la generación automática de
traductores. Resaltar la importancia formativa de estos temas.
1 Traductores de bajo nivel
SB1 Ensambladores. Función de un ensamblador. Estructuras
de información necesarias. Procedimientos específicos para el
proceso de ensamble. Pasadas del texto fuente. Tablas previamente construidas
y tablas generadas en el ensamble. Tratamiento de operandos y modos de direccionamiento
de la máquina objeto. Ensambladores residentes y cruzados. Ensamble condicional
y su relación con el macroensamble.
SB2 Macroensambladores. Definición de macroinstrucciones
en ensamblador. Expansión de macroinstrucciones. Macroinstrucciones con
parámetros. Ensamble condicional. Macrollamadas. Tablas y pasos del macroensamblador.
Relación con el ensamblador.
SB3 Macroprocesadores. Macros: definición y expansión
simple, paramétrica, con anidamiento, etc. Tablas asociadas. Bibliotecas
de macros. Expansión condicional. Variables y operadores del proceso
de expansión. Pasadas del texto fuente (preprocesamiento).
2 Traductores de alto nivel
SB4 Intérpretes. Concepto y diferencia entre intérpretes
y traductores a código objeto. Interpretación directa o mediante
pseudocódigo. Ventajas y desventajas. Intérpretes conversacionales
y no conversacionales. Relación de costo y eficiencia entre interpretación
y traducción a código objeto. Lenguajes para aplicaciones específicas
susceptibles o idóneos para interpretación.
SB5 Compiladores. Tipos de gramáticas. Notación
formal de sintaxis. Análisis lexicográfico, tablas de símbolos.
Análisis sintáctico. Algoritmos de parsing descendente
(LL) y ascendente (LR). Generación de código, códigos intermedios.
Optimización. Detección de errores y recuperación. Generadores
de analizadores léxicos. Generadores de compiladores (compiler compiler).
SB6 Tópicos de compilación. Problemas complejos
en el tratamiento de lenguajes algorítmico. Estructuras de información
y su implantación en memoria. Variables estáticas y dinámicas.
Manejo dinámico de memoria. Persistencia. Bloques. Procedimientos, paso
de parámetros, retornos. Recursividad. Registros de activación.
Extensibilidad. Programación orientada a objetos. Definición de
clases. Herencia. Instanciamiento.
SB7 Ambientes integrados. Relaciones entre el compilador y el
editor. Interfaz gráfica. Comunicación con el usuario. Manejo
de errores. Depuración interactiva. Ayudas. Edición, compilación,
ensamble y ejecución. Manejo de archivos temporales. Buffers en
memoria.
|
|
| |