PARTES DEL COMPILADOR


Un compilador se divide en dos partes principalmente: Analisis y Sintesis, el analisis desglosa el programa fuente y forma una representacion intermedia, la sintesis requiere de tecnicas mas especialiadas. de los cuales se derivan las siguientes fases.


ANALISIS LEXICO


El analizador lexico opera bajo peticion del analizador sintactico con el fin de que este pueda avanzar en la gramatica. Tiene como proposito agrupar las expresiones en fichas.


Esta compuesto por 3 elementos:  Compornentes Lexicos (Token), Lexemas, Patron


distancia = velocidad + aceleracion  * 30


 FUNCIONES ANALISIS LEXICO


- Eliminacion de espacios en blanco
- Reconocimiento de identificadores y palabras clave
- Reconocimiento de constantes
- Mejorar la portabilidad del compilador


ANALISIS SINTACTICO

Esta fase se puede practicar, siempre y cuando la anterior haya sido realizada correctamente,  en este analizador se agrupan los componentes para construir frases, verifica que el lenguaje fuente cumpla con las especificaciones que necesita el compilador donde se va a ejecutar. Es la fase mas im portante en el proceso de compilacion.

FUNCIONES ANALISIS SINTACTICO

- El lenguaje se convierte en la gramatica, la cual ofrece ventajas a los programadores ya que es precisa y facil de entender.
- Comprueba si la cadena se puede generar por la gramatica del codigo fuente.
- Debe recuperarse de los errores para continuar con el resto de la entrada.

ANALISIS SEMANTICO

Determina si los componentes se esta usando correctamente, segun el contexto en el que aparecen, esta etapa cumple una funcion principal que es la de verificacion, para finalmente generar la salida (arbol semantico)con el fin de que se genere el codigo intermedio.

FUNCION ANALISIS SEMANTICO

- Dentro de sus funciones esta la de comprobar que el significado de lo que se va leyendo sea valido.
- Debe verificar que los caracteres sean compatibles con el operador que se va a utilizar.

GENERACION CODIGO INTERMEDIO

Los compiladores deben analizar y generar secuencias de isntrucciones iguales a un programa fuente con el fin de aprovechar mucho mas la memoria del equipo, en esta etapa se genera un codigo con el fin de que este sea optimizando en la siguiente etapa.

OPTIMIZACION DE CODIGO

Con esta fase se mejora el codigo fuente con el fin de mejorar en la velocidad de ejecucion y se aprovechen al maximo los recursos de la maquina, una vez se ha optimizado el codigo queda listo para ser entendible por la maquina