Ensayo LenguajesFormales y compilador
Ensayo LenguajesFormales y compilador
Ensayo LenguajesFormales y compilador
Lenguajes y autómatas I
Introducción
Fases de un compilador
Un compilador va a operar en fases tales que como se menciono
anteriormente, van a transformar el programa o lenguaje fuente a otro
lenguaje de mayor nivel al de entrada.
Un compilador se puede clasificar de tipo de una pasada (una
revisión), de múltiples, de cargar y depurar, únicamente depuración y
de optimización. Pero a pesar de esto, el objetivo y tarea de cada
compilador es el mismo.
Las fases por las que pasa un compilador son las siguientes:
Un análisis Léxico
Durante esta fase el compilador busca en el código fuente la
secuencia de caracteres y la transforma en un lexema (un lexema se
le llama al significado que adquiere una palabra). En la programación
podemos encontrar ejemplos como el siguiente:
<token-name, attribute-value>
Un análisis de sintaxis
Adquiere el token (son símbolos o signos para este contexto de
programación) obtenido del análisis de léxico y comprueba si esta
expresión del token es correcta sintáctica.
Análisis semántico
En la fase anterior para comprobar que sea correcto el token se forma
todo un árbol, aquí se corrobora si el árbol sigue las reglas del
lenguaje.
El ejemplo más sencillo es cuando los tipos de valores que se
manejaran, al realizar operaciones entre ellos hay que corroborar que
sean del mismo tipo.
Optimización de código
Se limpia o depura partes del código intermedio que no son realmente
necesarias.
Tabla de símbolos
Es una estructura que puede almacenar y buscar operaciones,
direcciones de memoria y/o símbolos para las variables y etiquetas del
programa que se genera.
Gestor de errores
El compilador va a detectar errores que se produzcan para
posteriormente informarlos.
A pesar por lo general, de ocurrir un error, un compilador puede seguir
buscando en el programa más errores para informar, pero para ello va
de la mano con un traductor, ya que el compilador por si solo detecta
errores estáticos (no errores ya en tiempo de ejecución).
Conclusiones
Las máquinas, al igual que los humanos, necesitan un lenguaje para
comunicarse, pero no puede aplicarse el mismo lenguaje para la
creación de software, comunicar este mismo con otro o con el
hardware, por lo que el compilador actúa como un intermediario,
traduciendo de un lenguaje a otro, o creando un lenguaje intermedio
para que otras máquinas puedan interpretarlo.
matematicasxcomputacion.wordpress.com/2016/11/18/6-2-2-
clasificacion-de-las-gramaticas-chomsky/
sites.google.com/site/teoriadelenguajesformaless/1-7-fases-de-un-
compilador
tutorialspoint.com/es/compiler_design/
compiler_design_phases_of_compiler.htm