Incorporación de una tabla de símbolos en las fases de un compilador.
El análisis Sintáctico. Se limita a comprobar,
mediante una GLC, que un identificador forma parte de una expresión. Una vez
comprobado que la sentencia es sintácticamente correcta, el Análisis Semántico.
Deberá verificar que el identificador empleado como parte de una expresión haya
sido declarado previamente. Para llevar a cabo esta tarea, es típica la
utilización de una estructura de datos adicional denominada tabla de símbolos.
Las Tablas de Símbolos son estructuras de datos que almacenan toda la
información de los identificadores del lenguaje fuente.
Objetivos de la
Tabla de Símbolos (TS): Colaborar con las comprobaciones semánticas y Facilitar
ayuda a la generación de código.
Los símbolos en la tabla de símbolos pueden referirse a constantes, a funciones o a tipos de datos en el código fuente de un programa.
Los símbolos en la tabla de símbolos pueden referirse a constantes, a funciones o a tipos de datos en el código fuente de un programa.
La tabla de símbolos se crea durante
el análisis léxico y sintáctico. En el análisis léxico se separa el programa
fuente en tokens que compara con las palabras reservadas. Si el token comparado
no es una palabra reservada se asume que es un identificador y durante el
sintáctico (fase sintáctica) se añade a ella. Si el token comparado se
encuentra en la tabla de símbolos, en el
Análisis Semántico se accede
directamente al índice que identifica a dicho identificador reconocido
anteriormente, si no, el análisis Semantico introduce dicho símbolo en la tabla
de símbolos.
v Interfaz de una tabla de símbolos
Las operaciones básicas que debe
poseer son:
- crear: crea una tabla vacía.
- insertar (símbolo): añade a la
tabla de símbolos dado.
- buscar (nombre): devuelve el
símbolo cuyo nombre coincide con el parámetro. Si el símbolo devuelve null.
- imprimir (): a efectos
informativos, visualiza por la salida estándar la lista de variables
almacenadas en la tabla de símbolos junto con sus valores asociados
v Administración de
Tabla de Símbolos
El administrador de
la tabla de símbolos se encarga de manejar los accesos a la tabla de símbolos,
en cada una de las etapas de compilación de un programa.
La Tabla de Símbolos interacciona con el analizador léxico y con el analizador sintáctico. Ambos introducen información o necesitan consultarla durante todo el proceso de la compilación.
La tabla almacena la información que en cada momento se necesita sobre las variables del programa, como: nombre, tipo, dirección de localización, tamaño, etc. La gestión de la tabla de símbolos es muy importante, ya que consume gran parte del tiempo de compilación. Aunque también sirve para guardar información de los tipos creados por el usuario.
Se examina la Tabla de Símbolos cada vez que se encuentra un identificador.
• La tabla de símbolos (TS) es una estructura de datos que usa un compilador para manipulas los identificadores que aparecen en un código fuente.
• Almacena todas las características necesarias de un identificador.
• La estructura y organización de las TS depende de las características del Lenguaje Fuente.
• La TS es consultada constantemente durante la compilación por lo que es importante que su organización sea eficiente.
La TS está vigente solo durante la compilación del programa fuente por lo que se ubica en la memoria principal.