En el desarrollo de compiladores, uno de los componentes esenciales es el analizador léxico, el cual se apoya en una tabla de símbolos para optimizar su funcionamiento. La tabla de símbolos puede preinicializarse con información relevante como constantes matemáticas, funciones de librería y palabras reservadas.
La sentencia evalúa una nueva expresión en la que interviene a y b , asignando su suma para la entrada de la tabla de símbolos.
El resultado se almacena en la entrada asociada a la b
La evaluación de la expresión necesita buscar en la tabla de símbolos para asignar el valor 21 y multiplicarlo por 3
Se modificará la entrada para asignarle el valor de 21 a la regla asociada
Lo creará inicializándolo a 0
Primero evalúa la expresión 7*3 al valor resultante 21 se analiza la tabla de símbolos para buscar el identificadora.
El programa Lex: si se encuentra un número lo convierte a int y devuelve el token Numero. Primero lo busca en la tabla de símbolos, Si lo encuentre entonces devuelve su valor si no lo encuentra, lo inserta
Consideraciones sobre la tabla de simbolos
La tabla de símbolos puede iniciarse con cierta información útil, tal como:
- Constantes: PI, E, etc.
- Funciones de librería: EXP, LOG, etc.
- Palabras reservadas. Esto facilita el trabajo al lexicográfico, que tras reconocer
un identificador lo busca en la tabla de símbolos, y si es palabra reservada
devuelve un token asociado. Bien estructurado puede ser una alternativa más
eficiente al lex tal y como lo hemos visto (hash perfecto).
Conforme van apareciendo nuevas declaraciones de identificadores, el analizador léxico,
o el analizador sintáctico según la estrategia que sigamos, insertará nuevas entradas en la
tabla de símbolos, evitando siempre la existencia de entradas repetidas.
Identificadores de usuarios
Información extra con objeto de obtener un resumen estadístico con la finalidad de tener mejores resultados.
El tipo de parámetros formales es el identificador a almacenar que pertenece a una procedimiento, es imprescindible almacenar los tipos de parámetros formales para así controlar que toda invocación sea hecha con coherencia.
El Numero de dimensiones es la variable a almacenar es decir un array donde se puede almacenar en sus dimensiones
La dirección de memoria es elemental porque las cuando las instrucciones que hacen referencia a la variable deben encontrar el valor de esa misma variable en función del tiempo de ejecución, para así generar código de maquina tanto si son variables globales o locales
El tipo de elemento en el cual se guardan variables que son resultado fundamental de los tipos de datos que pertenece cada una de ellas.
Nombre del elemento es un identificador el cual puede almacenarse impidiendo la longitud del mismo