Beruflich Dokumente
Kultur Dokumente
Frecuentemente el analizador lxico funciona como una subrutina del analizador sintctico.
Para el diseo de analizadores lxicos se utilizan los Autmatas finitos.
Anlisis sintctico.
El analizador sintctico, tambin llamado parser, recibe como entrada los tokens que
genera el analizador lxico y comprueba si estos tokens van llegando en el orden correcto.
Siempre que no se hayan producido errores, la salida terica de esta fase del compilador
ser un rbol sintctico. Si el programa es incorrecto se generarn los mensajes de error
correspondientes. Para el diseo de los analizadores sintcticos se utilizan los Autmatas de
pila.
Ejemplo:
1
Anlisis semntico.
El analizador semntico trata de determinar si el significado de las diferentes
instrucciones del programa es vlido. Para conseguirlo tendr que calcular y analizar
informacin asociada a las sentencias del programa, por ejemplo, deber determinar el tipo
de los resultados intermedios de las expresiones, comprobar que los argumentos de un
operador pertenecen al conjunto de los operandos posibles, comprobar que los operandos
son compatibles entre si, etc. La salida terica de esta fase ser un rbol semntico.
Generacin de cdigo intermedio.
Solo hay que construir m programas que traduzcan cada lenguaje fuente al cdigo
intermedio (front ends) y n programas que traduzcan del lenguaje intermedio a cada lenguaje
objeto (back ends). La utilizacin del lenguaje intermedio permite construir en menos tiempo
compiladores para nuevos lenguajes y para nuevos autmatas.
Optimizacin de cdigo.
La mayora de los compiladores suelen tener una fase de optimizacin de cdigo
intermedio (independiente de los lenguajes fuente y objeto), y una fase de optimizacin de
cdigo objeto (no aplicable a otros autmatas). Ejemplo de optimizacin:
Si un operador tiene igual o menor prioridad que un nodo se coloca como padre.
Un nodo puede contener como hijo otro subrbol que contiene una pequea
expresin.
En los rboles de expresin, la sucesin del preorden de etiquetas nos da lo que se conoce
como la forma prefijo de una expresin.
Anlogamente, la sucesin postorden de las etiquetas de un rbol expresin nos da lo que se
conoce como la representacin postfijo de una expresin.
Finalmente, el inorden de una expresin en un rbol de expresin nos da la expresin infijo
en s misma, pero sin parntesis.
Acceder a la tabla de smbolos (para hacer parte del trabajo del analizador semntico).
Indicar los errores de forma clara y precisa. Aclarar el tipo de error y su localizacin.
N = No terminales.
T = Terminales.
P = Reglas de Produccin.
S = Axioma Inicial.