Sunteți pe pagina 1din 17

Tabla de Smbolos

Organizacin de Lenguajes y Compiladores 1 USAC


Guatemala, 2013

Tabla de Smbolos
Es una estructura de datos que usa el proceso de traduccin de un lenguaje de programacin, por un compilador o un intrprete, donde cada smbolo en el cdigo fuente de un programa est asociado con informacin tal como la ubicacin, el tipo de datos y el mbito de cada variable, constante o procedimiento.

Tabla de Smbolos
Permanece slo en tiempo de compilacin, no de ejecucin, excepto en aquellos casos en que se compila con opciones de depuracin. La tabla almacena la informacin que en cada momento se necesita sobre las variables del programa, informacin tal como: nombre, tipo, direccin de localizacin, tamao, etc.

Funcionamiento de la Tabla de Smbolos


Tabla de Smbolos Introducir_Identificador

Anlisis Lxico Anlisis Sintctico Anlisis Semntico

Completar_Atributo
Completar_Atributo

Obtener_Atributo
Obtener_Atributo Obtener_Atributo

Cdigo Intermedio
Optimizacin de Cdigo Generacin de Cdigo

Obtener_Atributo

Contenido de la Tabla de Smbolos


Nombre:
Se puede hacer con o sin lmite. Si lo hacemos con lmite, emplearemos una longitud fija para cada variable, lo cual aumenta la velocidad de creacin, pero limita la longitud en unos casos, y desperdicia espacio en la mayora.

Tipo:
Almacenara el tipo del identificador para poder ser utilizado en validaciones semnticas.

Contenido de la Tabla de Smbolos


Direccin de memoria en que se guardar:
Esta direccin es necesaria, porque las instrucciones que referencian a una variable deben saber donde encontrar el valor de esa variable en tiempo de ejecucin, tambin cuando se trata de variables globales. En lenguajes que no permiten recursividad, las direcciones se van asignando secuencialmente a medida que se hacen las declaraciones.

Contenido de la Tabla de Smbolos


Direccin de memoria en que se guardar:
En lenguajes con estructuras de bloques, la direccin se da con respecto al comienzo del bloque de datos de ese bloque, (funcin o procedimiento) en concreto.

mbito:
En los lenguajes orientados a objetos y con estructura de bloques pueden existir mltiples smbolos con el mismo identificador en mbitos distintos, sirviendo este atributo para determinar el mbito a que pertenecen.

Contenido de la Tabla de Smbolos


Guardar informacin de los nmeros de lnea y columna en que se declar. El nmero de dimensiones de una variable array, o el de parmetros de una funcin o procedimiento junto con el tipo de cada uno de ellos es til para el chequeo semntico.

Contenido de la Tabla de Smbolos


La tabla de smbolos puede iniciarse con cierta informacin til, tal como:
- Constantes: PI, E, etc.

- Funciones de librera. - Palabras reservadas:


Esto facilita el trabajo al lexicogrfico, que tras reconocer un identificador lo busca en la tabla de smbolos, y si es palabra reservada devuelve un token asociado.

Operaciones de la Tabla de Smbolos


Insercin:
Almacena informacin proporcionada por las declaraciones de nombre cuando estas son procesadas.

Bsqueda:
Recupera la informacin asociada con un nombre cuando este se utiliza en una declaracin o el cdigo asociado.

Operaciones de la Tabla de Smbolos


Modificacin:
Modifica informacin proporcionada por las declaraciones de nombre cuando estas son procesadas.

Eliminacin:
Elimina la informacin asociada con un nombre de la tabla de smbolos.

Compiladores de una pasada


Generan el cdigo maquina a partir de una nica lectura el cdigo fuente, es decir examina el cdigo fuente una vez, generando el cdigo o programa objeto.

Compiladores de una pasada


Ventajas
Fcil de implementar. Genera poca actividad de entrada/salida.

Desventajas
Limitaciones en la calidad del cdigo generado.
Mucha necesidad de memoria.

Compiladores de varias pasadas


En un compilador de varias pasadas, la Tabla de Smbolos se crea durante el anlisis lxico y sintctico.

Compiladores de varias pasadas


No es hasta las fases de anlisis semntico y de generacin de cdigo cuando vuelve a utilizarse la Tabla de Smbolos, pues en estas fases ocurre que alguno de los atributos asociados a un identificador se les pueda asignar un valor en la Tabla de Smbolos.

Estructura de una Tabla de Smbolos


Una Tabla de Smbolos se puede definir como una estructura de datos organizada en funcin de los identificadores que aparecen en el programa fuente.
Aunque su nombre parece indicar una estructuracin en una tabla no es necesariamente sta la nica estructura de datos utilizada, tambin se emplean rboles, pilas, tabla hash, etc.

Estructura de una Tabla de Smbolos

bit.ly/17734ha

S-ar putea să vă placă și