Fases de un compilador
Las tres primeras fases de un compilador suelen agrupan en un sola fase llamada Análisis del programa a compilar y las tres últimas en una sola fase llamada Síntesis de unprograma en lenguaje máquina.
En la fase de análisis se encuentran:
Análisis Léxico: Esta fase se encarga de verificar si una cadena de entrada del código fuente pertenece o no al lenguaje,es decir se realiza un análisis símbolo a símbolo indicando el tóken para cada una de las cadenas reconocidas o un error en caso de no reconocer la cadena.
Análisis Sintáctico: En esta fase seanaliza la estructura de las expresiones en base a gramáticas en base a reglas que determinar si una cadena de entrada del código fuente es válida. El análisis que se realiza es jerárquico ya que seobtiene arboles de derivación de las mismas gramáticas especificadas en el lenguaje.
Análisis Semántico: Este análisis es mucho mas difícil de formalizar que el sintáctico ya que tiene queverificar que el árbol sintáctico tenga un significado valido dentro de las reglas especificadas en el lenguaje. El análisis semántico verifica que:
En una asignación, el tipo de la variable concuerdecon el tipo de la expresión asignada.
Que las variables estén declaradas antes de ser usadas.
En la fase de Síntesis se encuentran las siguientes:
Generación de código intermedio: Esta fasese ocupa de generar instrucciones para la máquina virtual genérica a partir del análisis de las primeras tres fases.
Ej.:
a=b+c
1: + b c T1
2: = a T1
Optimización: Se encarga de transformarel código intermedio en uno equivalente que tenga menos líneas de código de menor tamaño y menor tiempo de ejecución.
Ej,:
a=b+c
1: + b c a
Generación de código objeto: Es la fase final en laque se genera el código objeto el cual utiliza el conjunto de instrucciones especifico del CPU que por lo general es código maquina o código en lenguaje ensamblador.
Ej.:
a:=b+c
LOAD B
ADD C...
Regístrate para leer el documento completo.