Fases de La Compilación

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

Fases de un compilador

INDICE
Introducción...............................................................................................................................................3
Fases de la Compilación...............................................................................................................................3
1.-Analizador léxico.....................................................................................................................................3
2.-Análisis sintáctico....................................................................................................................................4
3.-Análisis semántico...................................................................................................................................4
4.-Generación y optimización de código intermedio...................................................................................4
5.-Generador de código objeto...................................................................................................................4
6.-Tabla de Símbolos...................................................................................................................................5
7.-Gestor de errores....................................................................................................................................5
8 final...........................................................................................................................................................5
Conclusión...................................................................................................................................................5
Introducción
En este trabajo veremos las fases de un compilador que es lo que hace en cada fase
de un compilador explicaremos cada fase de una forma que se entienda cuál es su
principal tarea en el compilador hasta que llega a su fase final ya que es donde se
terminan las fases de compilador pueda llevar a cabo su tarea para que el ordenador
entienda las instrucciones agregadas.

Fases de la Compilación
El objetivo es, básicamente es traducir un programa (o texto) escrito en un lenguaje
“fuente”, que llamaremos programa fuente, en un equivalente en otro lenguaje
denominado “objeto”, al que llamaremos programa o código objeto. Si el programa
fuente es correcto (pertenece al lenguaje formado por los programas correctos), podrá
hacerse tal traducción; si no, se deseará obtener un mensaje de error (o varios) que
permita determinar lo más claramente posible los orígenes de la incorrección
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
2.-Análisis sintáctico
3.-Análisis semántico
4.-Generación y optimización de código intermedio
5.-Generador de código objeto
6.-Tabla de Símbolos
7.-Gestor de errores
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 inglés).

Las palabras clave, identificadores, operadores, constantes numéricas, signos de


puntuación como separadores de sentencias, llaves, paréntesis, etc., son diversas
clasificaciones de componentes léxicos.

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.
Se determinan las relaciones estructurales entre los componentes léxicos, esto es
semejante a realizar el análisis gramatical sobre una frase en lenguaje natural. La
estructura sintáctica la definiremos mediante las gramáticas independientes
del contexto.

3.-Análisis semántico
Realiza las comprobaciones necesarias sobre el árbol sintáctico para determinar el
correcto significado del programa.
• Las tareas básicas a realizar son: La verificación e inferencia de tipos en asignaciones
y expresiones, la declaración del tipo de variables y funciones antes de su uso, el
correcto uso de operadores, el ámbito de las variables y la correcta llamada a
funciones.
• Nos limitaremos al análisis semántico estático (en tiempo de compilación), donde es
necesario hacer uso de la Tabla de símbolos, como estructura de datos para almacenar
información sobre los identificadores que van surgiendo a lo largo del programa. El
análisis semántico suele agregar atributos (como tipos de datos) a la estructura del
árbol semántico.

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.
Suelen implementarse a mano, y son complejos porque la generación de un buen
código objeto requiere la consideración de muchos casos particulares .

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.)
Además almacena el tipo de dato, método de paso de parámetros, tipo de retorno y de
argumentos de una función, el ámbito de referencia de identificadores y la dirección de
memoria. Interacciona tanto con el analizador léxico, sintáctico y semántico que
introducen información conforme se procesa la entrada. La fase de generación de
código y optimización también la usan.

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.
Encuentra errores: – En tiempo de compilación: errores léxicos (ortográficos),
sintácticos (construcciones incorrectas) y semánticos (p.ej. errores de tipo) – En tiempo
de ejecución: direccionamiento de vectores fuera de rango, divisiones por cero, etc. –
De especificación/diseño: compilan correctamente pero no realizan lo que el
programador desea.
Se trataran sólo errores estáticos (en tiempo de compilación). Respecto a los errores
en tiempo de ejecución, es necesario que el traductor genere código para la
comprobación de errores específicos, su adecuado tratamiento y los mecanismos de
tratamiento de excepciones para que el programa se continúe ejecutando.

8 final
Acaba el proceso de compilador
Conclusión
Como podemos concluir la tarea de un compilador es traducir el lenguaje para convertirlo en leguaje
fuente que a través de los procesos son necesarios para poder llevarla a cabo como por ejemplo en la
primera fase que es análisis léxico que se encarga de identificar las caracteres en secuencias con
significado colectivo y mínimo en el lenguaje en la segunda fase análisis sintáctico agrupa las palabras
para formar frases ,en la tercera fase análisis semántico se encarga de analizar los resultados de la 2 fase
,4fase ya con la información obtenido genera el código ,5fase se encarga de optimizar el código
obtenido ,6 fase se encarga de sacra el programa ,análisis de errores se encarga de evitar errores de
compilasen ,léxico. Para poder llevar a cabo la generación de programa década.

Bibliografía

Bibliografía
aldape, m. m. (14 de abril de 2010). webcindario. Obtenido de webcindario:
https://fragaitm.webcindario.com/arqui/Apuntes%20unidad%201a.pdf

Díaz*, M. L. (16 de julo de 2017). Universidad de Valladolid. Obtenido de Universidad de Valladolid:


https://www.infor.uva.es/~mluisa/talf/docs/aula/A7.pdf

fernandez, r. m. (19 de agosto de 2008). educasion edu. Obtenido de educasion edu:


http://www.exa.unicen.edu.ar/catedras/compila1/index_archivos/Introduccion.pdf

Tanenbaum, A. S., & García, R. E. (2003). Sistemas operativos modernos. En A. S. Tanenbaum, & R. E.
García, Sistemas operativos modernos (págs. 7-13). México : Pearson Educación.

También podría gustarte