jueves, 28 de mayo de 2020

1.5 - Fases de un compilador

Los compiladores son programas de computadora que traducen de un lenguaje a otro. Un compilador toma como su entrada un programa escrito en lenguaje fuente y produce un programa equivalente escrito en lenguaje objeto.
• Un compilador se compone internamente de varias etapas, o fases, que realizan operaciones lógicas.

1.-Analizador léxico:

Lee la secuencia de caracteres de izquierda a derecha del programa fuente y agrupa las secuencias de caracteres en unidades con significado propio (componentes léxicos o “tokens” en ingles).

2.-Análisis sintáctico:Determina si la secuencia de componentes léxicos sigue la sintaxis del lenguaje y obtiene la estructura jerárquica del programa en forma de árbol, donde los nodos son las construcciones de alto nivel del lenguaje.



3.-Análisis semántico: 

Realiza las comprobaciones necesarias sobre el árbol sintáctico para determinar el correcto significado del programa.

4.-Generación y optimización de código intermedio: 
La optimización consiste en la calibración del árbol sintáctico donde ya no aparecen construcciones de alto nivel. Generando un código mejorado, ya no estructurado, más fácil de traducir directamente a código ensamblador o máquina, compuesto de un código de tres direcciones (cada instrucción tiene un operador, y la dirección de dos operándoos y un lugar donde guardar el resultado), también conocida como código intermedio.

5.-Generador de código objeto: 
Toma como entrada la representación intermedia y genera el código objeto. La optimización depende de la máquina, es necesario conocer el conjunto de instrucciones, la representación de los datos (número de bytes), modos de direccionamiento, número y propósito de registros, jerarquía de memoria, encauzamientos, etc.

6.-Tabla de Símbolos:
Es una estructura tipo diccionario con operaciones de inserción, borrado y búsqueda, que almacena información sobre los símbolos que van apareciendo a lo largo del programa como son: – los identificadores (variables y funciones) – Etiquetas – tipos definidos por el usuario (arreglos, registros, etc.)

7.-Gestor de errores: 
Detecta e informa de errores que se produzcan durante la fase de análisis. Debe generar mensajes significativos y reanudar la traducción.


No hay comentarios:

Publicar un comentario

Profesor

Aqui tiene mi Blog o Pagina con evidencias, ejercicios, teoría y ejemplos de lo que hemos hecho en este cierre de semestre. Como puede ver a...