Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ANLISIS SINTCTICO
El analizador sintctico, tambin llamado parser, recibe como entrada los tokens que le pasa el
Analizador Lxico (el analizador sintctico no maneja directamente caracteres) y comprueba si
esos tokens van llegando en el orden correcto (orden permitido por el lenguaje). La salida
"terica" de la fase de anlisis sintctico sera un rbol sintctico.
As pues, sus funciones son:
Anlisis Lxico
El analizador lxico lee los caracteres del programa fuente, y verifica que
correspondan a una secuencia lgica (identificador, palabra reservada etc.). Esta
secuencia de caracteres recibe el nombre componente lxico o lexema. En este caso el
analizador lxico verifica si el identificador id1 (nombre interno para "suma")
encontrado se halla en la tabla de smbolos, si no esta produce un error porque todava
no fue declarado, si la preposicin hubiese sido la declaracin del identificador "suma"
en lenguajes C, C++ (int suma;) el analizador lxico agregaria un identificador en la
tabla de smbolos, y as sucesivamente con todos los componentes lxicos que
aparezcan.
id1= id2+ id3 * 10
Anlisis Sintctico
El analizador sintctico impone una estructura jerrquica a la cadena de componentes
lxicos, generada por el analizador lxico, que es representada en forma de un rbol
sintctico.
=
/ \
id1 +
/ \
id2 +
/ \
id3 10
Anlisis Semntico
El analizador semntico verificara en este caso que cada operador tenga los operandos
permitidos.
=
/ \
id1 +
/ \
id2 +
/ \
id3 tipo_ent
|
10
Generador de cdigo intermedio
En esta etapa se lleva la preposicin a una representacin intermedia como un
programa para una maquina abstracta.
temp1= tipo_ent(10)
temp2= id3 * temp1
temp3= id2 + tem2
id1= temp3
Optimizacin de cdigo